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

B.4.6 カーソル位置づけでのデータ更新

カーソル位置づけでのデータ更新を行うサンプルコードについて説明します。

本サンプルコードは、Recordsetオブジェクトを使用してデータ更新を行います。Recordsetオブジェクトに行が1行もない場合には行を挿入し、1行以上ある場合には1行目を更新します。

アプリケーションの手順

  1. コネクションを接続します。詳細は、“B.4.1 接続および切断”を参照してください。

  2. Recordsetオブジェクトを生成します。

  3. Recordset.OpenメソッドでRecordsetオブジェクトを開きます。

  4. データを編集します。(行がない場合は行を挿入します)
    Recordset.BOFプロパティでカレント行がBOFかを確認します。
    Recordset.EOFプロパティでカレント行がEOFかを確認します。
    Recordset.AddNewメソッドでRecordsetオブジェクトに新しい行を作成します。
    Field.Valueプロパティへ値を設定します。

  5. Recordset.UpdateメソッドでRecordsetオブジェクトの編集内容によりINSERT文かUPDATE文を実行します。

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

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

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

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

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load


        'オブジェクト宣言
        Dim Con As ADODB.Connection
        Dim Rst As ADODB.Recordset

        'Connectionオブジェクトの生成と設定
        Con = New ADODB.Connection()
        Con.ConnectionString = "DSN=DSN01;UID=USER01;PWD=PASS01;"

        On Error GoTo ErrorProc

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

        '2. Recordsetオブジェクトの生成
        Rst = New ADODB.Recordset()

        '3. Recordsetオブジェクトを開く
        Rst.Open("SELECT * FROM TESTTBL", Con,
         ADODB.CursorTypeEnum.adOpenStatic,
         ADODB.LockTypeEnum.adLockPessimistic,
         ADODB.CommandTypeEnum.adCmdText)

        '4. データの編集(Resultsetに1行もデータがない場合は行を追加する)
        If Rst.BOF And Rst.EOF Then
            Rst.AddNew()
        End If

        Rst.Fields("KEY_C").Value = 301
        Rst.Fields("DEC_C").Value = 11111.111
        Rst.Fields("DAT_C").Value = "2018-08-07"
        Rst.Fields("CHA_C").Value = "UPDATE DATA2"

        '5. INSERT文/UPDATE文の実行
        Rst.Update()

        'メッセージボックスの表示
        MessageBox.Show("行を更新しました", 
         "Normal End", MessageBoxButtons.OK, MessageBoxIcon.None)

        '6. Recordsetオブジェクトを閉じる
        Rst.Close()

        '7. コネクション切断
        Con.Close()

        '8. オブジェクトの破棄
        Rst = Nothing
        Con = Nothing

        Exit Sub

        'エラー処理
ErrorProc:

        'エラー処理ルーチンを記述
        MessageBox.Show("▲▼  COMMUNICATION OFF LINE  ▲▼", "No Connect", 
         MessageBoxButtons.OK, MessageBoxIcon.None)

    End Sub
End Class