アプリケーションの手順
コネクションを接続します。詳細は、“B.3.1 接続および切断”を参照してください。
Commandオブジェクトを生成します。
Command.ActiveConnectionプロパティに1で生成したConnectionオブジェクトを設定します。
Command.CommandTextプロパティにUPDATE文を設定します。
Command.CommandTypeプロパティにadCmdTextを設定します。
Parameterオブジェクトの生成と設定をします。
Parameter.Nameプロパティには、オブジェクト名を任意で設定します。
Parameter.Typeプロパティには、データ型を設定します。
Parameter.Directionプロパティには、パラメタが入力パラメタ(adParamInput)であることを設定します。
文字列型のParameter.Sizeプロパティには、データの最大サイズをバイト数で設定します。
Parameter.Valueプロパティには、値を設定します。
Parameter.Precisionプロパティには、精度を設定します。
Parameter.NumericScaleプロパティには、値の小数点以下の桁数を設定します。
ParametersコレクションにParameterオブジェクトを追加します。SQL文中のパラメタマーカ('?')の出現順に追加してください。
Command.ExecuteメソッドでINSERT文を実行します。
引数RecordsAffectedを指定しExecuteメソッドで影響を受けた行数を取得します。
コネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“B.3.11 エラー処理”を参照してください。
'オブジェクト宣言
Dim Con As Connection
Dim Com As Command
Dim Par1 As Parameter, Par2 As Parameter, Par3 As Parameter, Par4 As Parameter
Dim ra As Long
'Connectionオブジェクトの生成
Set Con = New Connection
Con.ConnectionString = "DSN=DSN01;UID=USER01;PWD=PASS01;"
On Error GoTo ErrorProc
'1. コネクション接続
Con.Open
'2. Commandオブジェクトの生成と設定
Set Com = New Command
Com.ActiveConnection = Con
Com.CommandText = "UPDATE TESTTBL SET DEC_C=?,DAT_C=?,CHA_C=? WHERE KEY_C=?"
Com.CommandType = adCmdText
'3. Parameterオブジェクトの生成と設定
Set Par1 = Com.CreateParameter("DEC_C", adDecimal, adParamInput, , 2000.222)
Par1.Precision = 10
Par1.NumericScale = 3
Set Par2 = Com.CreateParameter("DAT_C", adDate, adParamInput, , "2007/04/10")
Set Par3 = Com.CreateParameter("CHA_C", adChar, adParamInput, 250, "UPDATE DATA")
Set Par4 = Com.CreateParameter("KEY_C", adInteger, adParamInput, , 100)
'4. ParametersコレクションにParameterオブジェクトを追加
Com.Parameters.Append Par1
Com.Parameters.Append Par2
Com.Parameters.Append Par3
Com.Parameters.Append Par4
'5. UPDATE文実行
Com.Execute ra
'メッセージボックスの表示
MsgBox ra & "行更新されました", vbhOKOnly, "Normal End"
'6. コネクション切断
Con.Close
'7. オブジェクトの破棄
Set Par1 = Nothing
Set Par2 = Nothing
Set Par3 = Nothing
Set Par4 = Nothing
Set Com = Nothing
Set Con = Nothing
Exit Sub
'エラー処理
ErrorProc:
'エラー処理ルーチンを記述します