アプリケーションの手順
OdbcConnectionオブジェクトでコネクションを接続します。詳細は、“B.5.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プロパティで結果が参照できます。
このサンプルコードでは、出力パラメタごとに改行し表示します。
コネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“B.5.10 エラー処理”を参照してください。
Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load 'オブジェクト宣言 Dim con As System.Data.Odbc.OdbcConnection Dim com As System.Data.Odbc.OdbcCommand Dim msgstr As String 'OdbcConnectionオブジェクトの生成 con = New System.Data.Odbc.OdbcConnection("DSN=DSN01;UID=USER01;PWD=PASS01") Try '1. コネクション接続 con.Open() '2. OdbcCommandオブジェクトの生成 com = New System.Data.Odbc.OdbcCommand("CALL SAMPLE1.COUNTPRC(?,?,?,?)", con) '3. OdbcParameterオブジェクトの生成と設定 com.Parameters.Add("DAT_P", System.Data.Odbc.OdbcType.Date) com.Parameters("DAT_P").Direction = ParameterDirection.Input com.Parameters("DAT_P").Value = "2007 - 4 - 10" com.Parameters.Add("OUT_P", System.Data.Odbc.OdbcType.Int) com.Parameters("OUT_P").Direction = ParameterDirection.Output com.Parameters.Add("PRCSTATE", System.Data.Odbc.OdbcType.Char) com.Parameters("PRCSTATE").Direction = ParameterDirection.Output com.Parameters("PRCSTATE").Size = 5 com.Parameters.Add("PRCMSG", System.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 & ControlChars.Cr msgstr &= "PRCSTATE: " & com.Parameters("PRCSTATE").Value & ControlChars.Cr msgstr &= "PRCMSG: " & com.Parameters("PRCMSG").Value MessageBox.Show(msgstr, "PROCEDURE DATA", MessageBoxButtons.OK, MessageBoxIcon.None) '6. コネクション切断 con.Close() '7. オブジェクトの破棄 con.Dispose() com.Dispose() 'エラー処理 Catch ex As System.Data.Odbc.OdbcException 'エラー処理ルーチンを記述 msgstr = "▲▼ COMMUNICATION OFF LINE ▲▼" MessageBox.Show(msgstr, "!ERROR!", MessageBoxButtons.OK, MessageBoxIcon.None) End Try End Sub End Class