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

D.4.7 ストアドプロシジャの実行

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

本サンプルコードは、ストアドプロシジャを実行し結果をWebページ上に表示します。

アプリケーションの手順

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

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

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

  4. ParametersコレクションにParameterオブジェクトを追加します。SQL文中のパラメタマーカ('?')の出現順に追加してください。

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

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

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

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

<%@ language="vbscript" %>
<!-- #include file = "adovbs.inc" -->
<html>
<head>
<title>ストアドプロシジャの実行</title>
</head>
<body bgcolor="White">
<b>ストアドプロシジャの実行</b>

<hr>

<%
'宣言
Dim OBJdbConnection
Dim OBJdbCommand
Dim OBJdbParameter1,OBJdbParameter2,OBJdbParameter3,OBJdbParameter4

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

'1. コネクション接続
OBJdbConnection.Open

'2. Commandオブジェクトの生成と設定

Set OBJdbCommand = Server.CreateObject("ADODB.Command")
OBJdbCommand.ActiveConnection = OBJdbConnection
OBJdbCommand.CommandText = "COUNTPRC"
OBJdbCommand.CommandType = adCmdStoredProc

'3. Parameteオブジェクトの生成と設定
Set OBJdbParameter1 = OBJdbCommand.CreateParameter
OBJdbParameter1.Name = "DAT_P"
OBJdbParameter1.Type = adDate
OBJdbParameter1.Value = "2007/04/10"
OBJdbParameter1.Direction = adParamInput

Set OBJdbParameter2 = OBJdbCommand.CreateParameter
OBJdbParameter2.Name = "OUT_P"
OBJdbParameter2.Type = adInteger
OBJdbParameter2.Direction = adParamOutput

Set OBJdbParameter3 = OBJdbCommand.CreateParameter
OBJdbParameter3.Name = "PRCSTATE"
OBJdbParameter3.Type = adChar
OBJdbParameter3.Size = 5
OBJdbParameter3.Direction = adParamOutput

Set OBJdbParameter4 = OBJdbCommand.CreateParameter
OBJdbParameter4.Name = "PRCMSG"
OBJdbParameter4.Type = adChar
OBJdbParameter4.Size = 255
OBJdbParameter4.Direction = adParamOutput

'4. ParametersコレクションにParameterオブジェクトを追加
OBJdbCommand.Parameters.Append OBJdbParameter1
OBJdbCommand.Parameters.Append OBJdbParameter2
OBJdbCommand.Parameters.Append OBJdbParameter3
OBJdbCommand.Parameters.Append OBJdbParameter4

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

'結果を表示
Response.Write "PROCEDURE DATA<br>"
Response.Write "COUNT: " & OBJdbCommand.Parameters(1).Value & "<br>"
Response.Write "PRCSTATE: " & OBJdbCommand.Parameters(2).Value & "<br>"
Response.Write "PRCMSG: " & OBJdbCommand.Parameters(3).Value & "<br>"

'6. コネクション切断
OBJdbConnection.Close

'7. オブジェクトの破棄
Set OBJdbParameter1 = Nothing
Set OBJdbParameter2 = Nothing
Set OBJdbParameter3 = Nothing
Set OBJdbParameter4 = Nothing
Set OBJdbCommand = Nothing
Set OBJdbConnection = Nothing

%>

<hr>

</body>
</html>