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

B.5.2 前方向読み取り専用での参照

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

OdbcDataReaderオブジェクトでの参照方法では、参照レコードの取り出し方向はNEXTだけでカーソル位置づけによるデータ更新はできません。
本サンプルコードは、取得データをメッセージボックスで表示します。

アプリケーションの手順

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

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

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

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

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

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

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

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

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.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 SAMPLE1.TESTTBL", con)
            '3. OdbcDataReaderオブジェクトの生成
            drd = com.ExecuteReader

            '4. データの取得
            '行の位置づけ
            While drd.Read()
                'データ取得文字列の初期化
                msgstr = ""
                '列数の取得
                For i = 0 To drd.FieldCount - 1
                    'データの取得
                    msgstr &= drd.GetValue(i) & " "
                Next
                'メッセージボックス出力
                MessageBox.Show(msgstr, "DataReader", MessageBoxButtons.OK, 
                                              MessageBoxIcon.None)
            End While

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

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

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

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

            'エラー処理ルーチンを記述
            msgstr = "▲▼接続不可▲▼"
            MessageBox.Show(msgstr, "▲▼接続不可▲▼", MessageBoxButtons.OK, 
                                              MessageBoxIcon.None)
        End Try


    End Sub
End Class