アプリケーションの手順
OdbcConnectionオブジェクトでコネクションを接続します。詳細は、“D.3.1 接続および切断”を参照してください。
OdbcCommandオブジェクトを生成します。(CommandTextプロパティへCALL文を設定します)
CommandTextプロパティへ設定したパラメタマーカ('?')に対応するOdbcParameterオブジェクトの生成と設定をします。
OdbcCommand.Parameters.AddメソッドでOdbcParameterオブジェクトを生成します。SQL文中のパラメタマーカ('?')の出現順に生成してください。
OdbcParameter.ParameterNameプロパティには、オブジェクト名前を任意で設定します。
OdbcParameter.Directionプロパティへ入力(Input)、出力(Output)、入出力(InputOutput)を設定します。
OdbcParameter.Valueプロパティへパラメタの値を設定します。
文字列型の出力パラメタおよび入出力パラメタのOdbcParameter.Sizeプロパティには、最大サイズをバイト数で設定します。
OdbcCommand.ExecuteNonQueryメソッドでCALL文を実行します。
出力および入出力パラメタの結果をメッセージボックスで表示します。
OdbcParameter.Valueプロパティで結果が参照できます。
このサンプルコードでは、出力パラメタごとに改行し表示します。
コネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“D.3.9 エラー処理”を参照してください。
'オブジェクト宣言
Dim con As Microsoft.Data.Odbc.OdbcConnection
Dim com As Microsoft.Data.Odbc.OdbcCommand
Dim msgstr As String
'OdbcConnectionオブジェクトの生成
con = New Microsoft.Data.Odbc.OdbcConnection("DSN=DSN01;UID=USER01;PWD=PASS01")
Try
'1. コネクション接続
con.Open()
'2. OdbcCommandオブジェクトの生成
com = New Microsoft.Data.Odbc.OdbcCommand("CALL COUNTPRC(?,?,?,?)", con)
'3. OdbcParameterオブジェクトの生成と設定
com.Parameters.Add("DAT_P", Microsoft.Data.Odbc.OdbcType.Date)
com.Parameters("DAT_P").Direction = ParameterDirection.Input
com.Parameters("DAT_P").Value = "2007/04/10"
com.Parameters.Add("OUT_P", Microsoft.Data.Odbc.OdbcType.Int)
com.Parameters("OUT_P").Direction = ParameterDirection.Output
com.Parameters.Add("PRCSTATE", Microsoft.Data.Odbc.OdbcType.Char)
com.Parameters("PRCSTATE").Direction = ParameterDirection.Output
com.Parameters("PRCSTATE").Size = 5
com.Parameters.Add("PRCMSG", Microsoft.Data.Odbc.OdbcType.Char)
com.Parameters("PRCMSG").Direction = ParameterDirection.Output
com.Parameters("PRCMSG").Size = 255
'4. CALL文実行
com.ExecuteNonQuery()
'5. 結果の表示
msgstr = "COUNT: " & com.Parameters("OUT_P").Value & "<br>"
msgstr &= "PRCSTATE: " & com.Parameters("PRCSTATE").Value & "<br>"
msgstr &= "PRCMSG: " & com.Parameters("PRCMSG").Value
Label1.Text = "PROCEDURE DATA<br>" & msgstr
'6. コネクション切断
con.Close()
'7. オブジェクトの破棄
con.Dispose()
com.Dispose()
'エラー処理
Catch ex As Microsoft.Data.Odbc.OdbcException
'エラー処理ルーチンを記述
End Try