ページの先頭行へ戻る
Symfoware Server V10.0.0/V10.0.1 アプリケーション開発ガイド(ODBCドライバ編)

C.3.6 カーソル位置づけでのデータ更新

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

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

アプリケーションの手順

  1. コネクションを接続します。詳細は、“C.3.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. オブジェクトを破棄します。

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

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

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

On Error GoTo ErrorProc

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

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

'3. Recordsetオブジェクトを開く
Rst.Open "SELECT * FROM TESTTBL", Con, _
         adOpenStatic, _
         adLockPessimistic, _
         adCmdText

'4. データの編集(Recordsetに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

'メッセージボックスの表示
MsgBox "行を更新しました", vbOKOnly, "Normal End"

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

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

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

Exit Sub

'エラー処理
ErrorProc:

'エラー処理ルーチンを記述します