ページの先頭行へ戻る
Symfoware Server V12.7.0 アプリケーション開発ガイド(ODBCドライバ編)
FUJITSU Software

C.3.2 前方向読み取り専用での参照

OdbcDataReaderオブジェクトを使用して、前方向スクロール読み取り専用でデータ参照するサンプルコードについて説明します。

OdbcDataReaderオブジェクトでの参照方法では、参照レコードの取り出し方向はNEXTだけでカーソル位置づけによるデータ更新はできません。

本サンプルコードは、取得データをWebページ上に表示します。

アプリケーションの手順

  1. OdbcConnectionオブジェクトでコネクションを接続します。詳細は、“C.3.1 接続および切断”を参照してください。

  2. OdbcCommandオブジェクトを生成します。(CommandTextプロパティへSELECT文を設定します)

  3. OdbcCommand.ExecuteReaderメソッドでOdbcDataReaderオブジェクトを生成します。

  4. OdbcDataReaderオブジェクトよりデータを取得します。
    OdbcDataReader.Readメソッドで次の行へ位置づけます。
    OdbcDataReader.FieldCountプロパティで列数を取得します。
    OdbcDataReader.GetValueメソッドでデータを取得します。

  5. OdbcDataReader.CloseメソッドでOdbcDataReaderオブジェクトを閉じます。

  6. コネクションを切断します。

  7. オブジェクトを破棄します。

エラー処理については、“C.3.9 エラー処理”を参照してください。

Public Class _Default
    Inherits Page

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Load
        'オブジェクト宣言
        Dim con As System.Data.Odbc.OdbcConnection
        Dim com As System.Data.Odbc.OdbcCommand
        Dim drd As System.Data.Odbc.OdbcDataReader

        Dim i As Integer
        Dim msgstr As String

        'OdbcConnectionオブジェクトの生成
        con = New System.Data.Odbc.OdbcConnection("DSN=DSN01;UID=USER01;PWD=PASS01")

        Try

            '1. コネクション接続
            con.Open()

            '2. OdbcCommandオブジェクトの生成
            com = New System.Data.Odbc.OdbcCommand("SELECT * FROM TESTTBL", con)

            '3. OdbcDataReaderオブジェクトの生成
            drd = com.ExecuteReader

            '4. データの取得
            '行の位置づけ
            While drd.Read()
                '列数の取得
                For i = 0 To drd.FieldCount - 1
                    'データの取得
                    msgstr &= drd.GetValue(i) & " "
                Next
                msgstr &= "<br>"
            End While
            'メッセージ出力
            Label1.Text = "DataReader<br>" & msgstr

            '5. OdbcDataReaderオブジェクトを閉じる
            drd.Close()

            '6. コネクション切断
            con.Close()

            '7. オブジェクトの破棄
            con.Dispose()
            com.Dispose()

            'エラー処理
        Catch ex As System.Data.Odbc.OdbcException

            'エラー処理ルーチンを記述
            Label1.Text = "No Connect<br>▲▼  COMMUNICATION OFF LINE  ▲▼"
        End Try

    End Sub
End Class