パラメタマーカ('?')を使用したSQL文でのデータ更新を行うサンプルコードについて説明します。
本サンプルコードは、UPDATE文実行後、影響を受けた行数をメッセージボックスで表示します。
アプリケーションの手順
コネクションを接続します。詳細は、“C.2.1 接続および切断”を参照してください。
rdoConnection.CreateQueryメソッドでrdoQueryオブジェクトを生成します。(SQLプロパティへUPDATE文を設定します)
rdoParameter.Valueプロパティへ値を設定します。
rdoQuery.ExecuteメソッドでUPDATE文を実行します。
rdoQuery.RowsAffectedプロパティで、Executeメソッドで影響を受けた行数を取得します。
コネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“C.2.9 エラー処理”を参照してください。
'オブジェクト宣言 Dim Env As rdoEnvironment Dim Con As rdoConnection Dim Qry As rdoQuery 'rdoEnvironmentオブジェクトの生成 Set Env = rdoEngine.rdoEnvironments(0) On Error GoTo ErrorProc '1. コネクション接続 Set Con = Env.OpenConnection("DSN01", rdDriverNoPrompt, _ False, "UID=USER01;PWD=PASS01;") '2. rdoQueryオブジェクトの生成 Set Qry = Con.CreateQuery("", _ "UPDATE TESTTBL SET DEC_C=?,DAT_C=?,CHA_C=? WHERE KEY_C=?") '3. rdoParameterオブジェクトへ値を設定 Qry.rdoParameters(0).Value = 22222.222 Qry.rdoParameters(1).Value = "2007/04/10" Qry.rdoParameters(2).Value = "UPDATE DATA" Qry.rdoParameters(3).Value = 200 '4. UPDATE文の実行 Qry.Execute 'メッセージボックスの表示 MsgBox Qry.RowsAffected & "行更新されました", _ vbOKOnly, "Normal End" '5. コネクション切断 Con.Close '6. オブジェクトの破棄 Set Qry = Nothing Set Con = Nothing Set Env = Nothing Exit Sub 'エラー処理 ErrorProc: 'エラー処理ルーチンを記述します