ページの先頭行へ戻る
Symfoware Server V12.4.0 アプリケーション開発ガイド(ODBCドライバ編)
FUJITSU Software

B.4.8 ストアドプロシジャの実行

ストアドプロシジャを実行するサンプルコードについて説明します。

本サンプルコードは、ストアドプロシジャを実行し結果をメッセージボックスで表示します。

アプリケーションの手順

  1. コネクションを接続します。詳細は、“B.4.1 接続および切断”を参照してください。

  2. Commandオブジェクトを生成します。
    Command.ActiveConnectionプロパティに手順1で生成したConnectionオブジェクトを設定します。
    Command.CommandTextプロパティにストアドプロシジャ名を設定します。
    Command.CommandTypeプロパティにCommandTypeEnum. adCmdStoredProcを設定します。

  3. Parameterオブジェクトの生成と設定をします。
    Parameter.Nameプロパティには、オブジェクト名を任意で設定します。
    Parameter.Typeプロパティには、データ型を設定します。
    Parameter.Directionプロパティには、入力パラメタ“adParamInput”、出力パラメタ“adParamOutput”のいずれかであることを設定します。
    入力パラメタのParameter.Valueプロパティには値を設定します。
    文字列型のParameter.Sizeプロパティには、データの最大サイズをバイト数で設定します。

  4. ParametersコレクションにParameterオブジェクトを追加します。

  5. Command . Executeメソッドでストアドプロシジャを実行します。
    ストアドプロシジャの結果を、出力パラメタのParameter.Valueプロパティで結果を取得します。

  6. コネクションを切断します。

  7. オブジェクトを破棄します。

エラー処理については、“B.4.10 エラー処理”を参照してください。

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        'オブジェクト宣言
        Dim Con As ADODB.Connection
        Dim Com As ADODB.Command
        Dim Par1, Par2, Par3, Par4 As ADODB.Parameter

        Dim msgstr As String

        'Connectionオブジェクトの生成と設定
        Con = New ADODB.Connection()
        Con.ConnectionString = "DSN=DSN01;UID=USER01;PWD=PASS01;"

        On Error GoTo ErrorProc

        '1. コネクション接続
        Con.Open()

        '2. Commandオブジェクトの生成と設定
        Com = New ADODB.Command()
        Com.ActiveConnection = Con
        Com.CommandText = "COUNTPRC"
        Com.CommandType = ADODB.CommandTypeEnum.adCmdStoredProc
        '3. rameteオブジェクトの生成と設定
        Par1 = Com.CreateParameter("DAT_P", ADODB.DataTypeEnum.adDate, 
         ADODB.ParameterDirectionEnum.adParamInput, , "2018-08-07")
        Par2 = Com.CreateParameter("OUT_P", ADODB.DataTypeEnum.adInteger, 
         ADODB.ParameterDirectionEnum.adParamOutput)
        Par3 = Com.CreateParameter("PRCSTATE", ADODB.DataTypeEnum.adChar, 
         ADODB.ParameterDirectionEnum.adParamOutput, 5)
        Par4 = Com.CreateParameter("PRCMSG", ADODB.DataTypeEnum.adChar, 
         ADODB.ParameterDirectionEnum.adParamOutput, 255)

        '4. rametersコレクションにParameterオブジェクトを追加
        Com.Parameters.Append(Par1)
        Com.Parameters.Append(Par2)
        Com.Parameters.Append(Par3)
        Com.Parameters.Append(Par4)

        '5. ストアドプロシジャの実行
        Com.Execute()

        'メッセージボックスで結果を表示
        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. オブジェクトの破棄
        Par1 = Nothing
        Par2 = Nothing
        Par3 = Nothing
        Par4 = Nothing
        Com = Nothing
        Con = Nothing

        Exit Sub

        'エラー処理
ErrorProc:

        'エラー処理ルーチンを記述
        MessageBox.Show("▲▼  COMMUNICATION OFF LINE  ▲▼", "No Connect", 
         MessageBoxButtons.OK, MessageBoxIcon.None)

    End Sub
End Class