カーソル位置づけでのデータ更新を行うサンプルコードについて説明します。
本サンプルコードは、Recordsetオブジェクトを使用してデータ更新を行います。Recordsetオブジェクトに行が1行もない場合には行を挿入し、1行以上ある場合には1行目を更新します。
アプリケーションの手順
コネクションを接続します。詳細は、“D.2.1 接続および切断”を参照してください。
Recordsetオブジェクトを生成します。
Recordset.OpenメソッドでRecordsetオブジェクトを開きます。
データを編集します。(行がない場合は行を挿入します)
Recordset.BOFプロパティでカレント行がBOFかを確認します。
Recordset.EOFプロパティでカレント行がEOFかを確認します。
Recordset.AddNewメソッドでRecordsetオブジェクトに新しい行を作成します。
Field.Valueプロパティへ値を設定します。
Recordset.UpdateメソッドでRecordsetオブジェクトの編集内容によりINSERT文かUPDATE文を実行します。
Recordset.CloseメソッドでRecordsetオブジェクトを閉じます。
コネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“D.2.9 エラー処理”を参照してください。
'オブジェクト宣言 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. データの編集(rdoResultsetに1行もデータがない場合は行を追加する) If Rst.BOF And Rst.EOF Then Rst.AddNew() End If Rst.Fields("KEY_C").Value = 200 Rst.Fields("DEC_C").Value = 11111.111 Rst.Fields("DAT_C").Value = "2007/04/10" Rst.Fields("CHA_C").Value = "UPDATE DATA" '5. INSERT文/UPDATE文の実行 Rst.Update() 'メッセージの表示 Label1.Text = "Normal End<br>行を更新しました" '6. Recordsetオブジェクトを閉じる Rst.Close() '7. コネクション切断 Con.Close() '8. オブジェクトの破棄 Rst = Nothing Con = Nothing Exit Sub 'エラー処理 ErrorProc: 'エラー処理ルーチンを記述