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

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

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

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

アプリケーションの手順

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

  2. rdoConnection.OpenResultsetメソッドでrdoResultsetオブジェクトを生成します。

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

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

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

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

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

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

'オブジェクト宣言
Dim Env As rdoEnvironment
Dim Con As rdoConnection
Dim Rst As rdoResultset

'rdoEnvironmentオブジェクトの生成
Set Env = rdoEngine.rdoEnvironments(0)

On Error GoTo ErrorProc

'1. コネクション接続
Set Con = Env.OpenConnection("DSN01", rdDriverNoPrompt, _
                             False, "UID=USER01;PWD=PASS01;")

'2. rdoResultsetオブジェクトの生成
Set Rst = Con.OpenResultset("SELECT * FROM TESTTBL", _
                        rdOpenStatic, _
                        rdConcurLock, _
                        rdExecDirect)

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

Rst.rdoColumns("KEY_C").Value = 300
Rst.rdoColumns("DEC_C").Value = 4444.444
Rst.rdoColumns("DAT_C").Value = "2007/04/10"
Rst.rdoColumns("CHA_C").Value = "UPDATE DATA"

'4. INSERT文/UPDATE文の実行
Rst.Update

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

'5. rdoResultsetオブジェクトを閉じる
Rst.Close

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

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

Exit Sub

'エラー処理
ErrorProc:

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