パラメタマーカ('?')を使用した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:
'エラー処理ルーチンを記述します