ストアドプロシジャを実行するサンプルコードについて説明します。
本サンプルコードは、ストアドプロシジャを実行し、結果をWebページ上に表示します。事前にフォームへラベルコントロール(Label1)を追加してください。
アプリケーションの手順
SymfowareConnectionオブジェクトでコネクションを接続します。詳細は、“A.3.1 接続および切断”を参照してください。
SymfowareCommandオブジェクトを生成します。(CommandTextプロパティへCALL文を設定します)
CommandTextプロパティへ設定したパラメタマーカ('?')に対応するSymfowareParameterオブジェクトの生成と設定をします。
SymfowareCommand.Parameters.AddメソッドでSymfowareParameterオブジェクトを生成します。SQL文中のパラメタマーカ('?')の出現順に生成してください。
SymfowareParameter.ParameterNameプロパティには、オブジェクト名を任意で設定します。
SymfowareParameter.Directionプロパティへ入力(Input)、出力(Output)、入出力(InputOutput)を設定します。
SymfowareParameter.Valueプロパティへパラメタの値を設定します。
文字列型の出力パラメタおよび入出力パラメタのSymfowareParameter.Sizeプロパティには、最大サイズをバイト数で設定します。
SymfowareCommand.ExecuteNonQueryメソッドでCALL文を実行します。
出力パラメタの結果をメッセージでWebページ上に表示します。
SymfowareParameter.Valueプロパティで結果が参照できます。
このサンプルコードでは、出力パラメタごとに改行し、表示します。
コネクションを切断します。
オブジェクトを破棄します。
エラー処理については、“A.3.8 エラー処理”を参照してください。
Try 'SymfowareConnectionオブジェクトの生成 Dim connection1 As New SymfowareConnection("DATA SOURCE=127.0.0.1;PORT=26551;INITIAL CATALOG=TEST;USER ID=USER01;PASSWORD=PASS01") '1.コネクション接続 connection1.Open() '2.SymfowareCommandオブジェクトの生成 Dim command1 As New SymfowareCommand("CALL SAMPLE1.COUNTPRC(?,?,?,?)", connection1) '3.SymfowareParameterオブジェクトの生成と設定 command1.Parameters.Add("DAT_P", SymfowareDbType.Date) command1.Parameters.Item("DAT_P").Direction = ParameterDirection.Input command1.Parameters.Item("DAT_P").Value = "2007/04/10" command1.Parameters.Add("OUT_P", SymfowareDbType.Int) command1.Parameters.Item("OUT_P").Direction = ParameterDirection.Output command1.Parameters.Add("PRCSTATE", SymfowareDbType.Char) command1.Parameters.Item("PRCSTATE").Direction = ParameterDirection.Output command1.Parameters.Item("PRCSTATE").Size = 5 command1.Parameters.Add("PRCMSG", SymfowareDbType.Char) command1.Parameters.Item("PRCMSG").Direction = ParameterDirection.Output command1.Parameters.Item("PRCMSG").Size = 255 '4.CALL文実行 command1.ExecuteNonQuery() '5.結果の表示 Dim text1 As String = ("COUNT: " & command1.Parameters.Item("OUT_P").Value & "<br>") Dim obj1 As Object = text1 text1 = String.Concat(New Object() {obj1, "PRCSTATE: ", command1.Parameters.Item("PRCSTATE").Value, "<br>"}) text1 = (text1 & "PRCMSG: " & command1.Parameters.Item("PRCMSG").Value) Me.Label1.Text = ("PROCEDURE DATA<br>" & text1) '6.コネクション切断 connection1.Close() '7.オブジェクトの破棄 connection1.Dispose() command1.Dispose() 'エラー処理 Catch exception1 As Exception 'エラー処理ルーチンを記述 End Try