Date: Mon, 21 May 2001 00:02:39 +0900
From: "Akira Horikawa" <who@example.ne.jp>
堀川です、こんばんは
最近忙しい状態がずーっと続いて皆様のメールをゆっくり読んで
回答する時間がとれずに申し訳ありません。
時期の遅れたレスポンスになりました。
-----Original Message-----
From: who@sub.example.jp [mailto:who@sub.example.jp]
Sent: Wednesday, May 02, 2001 5:05 PM
To: who@example.ne.jp
Subject: [ml-msde:00551] ストアドが Recordset を作成するときの VBの
Return 値について
CommandオブジェクトのRefreshメソッドを使えば、ストアドプロシージャの
引数に対応するパラメータオブジェクトが自動的に作成されます。
Dim cn As ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As ADODB.Recordset
Dim pm As Variant
Set cn = CurrentProject.Connection
Set cmd.ActiveConnection = cn
cmd.CommandText = "my_proc"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Refresh
For Each pm In cmd.Parameters
MsgBox pm.Name
Next
このようなプログラムを実行すればストアドプロシージャの引数に
対応するParameterオブジェクトの名前が判明します。
例えばストアドプロシージャの戻り値は、RETURN_VALUE とわかります。
#SQLServer7で確認済み。2000では未確認。
レコードセットを返すストアドプロシージャでも
Dim cn As ADODB.Connection
Dim cmd As New ADODB.Command
Dim rs As ADODB.Recordset
Dim vl As Variant
Set cn = CurrentProject.Connection
Set cmd.ActiveConnection = cn
cmd.CommandText = "my_proc"
cmd.CommandType = adCmdStoredProc
cmd.Parameters.Refresh
cmd.Parameters("@param").Value = 受け渡す値
Set rs = cmd.Execute
ret = cmd.Parameters("RETURN_VALUE")
で、戻り値が得られます。
また、CreateParameterメソッドを使うときは
Dim pminp As ADODB.Parameter
Dim pmret As ADODB.Parameter
Set pmret = cmd.CreateParameter("RETURN_VALUE", adInteger,
adParamReturnValue)
Set pminp = cmd.CreateParameter("@param", adVarChar, adParamInput, 4,
受け渡す値)
cmd.Parameters.Append pmret
cmd.Parameters.Append pminp
Set rs = cmd.Execute
ret = pmret.Value
のようにします。
戻り値のパラメータを最初にAppendしてください。
Appendの順番を逆にするとストアドプロシージャの実行でcmd.Executeで
エラーが発生します。
たぶんこれでストアドプロシージャの戻り値が得られると思います。
---------------------------------------------------
(株)日本技術ソフト開発 堀川 明
mailto:who@example.ne.jp
mailto:who@sub.example.jp
http://www.horikawa.ne.jp/msde/
http://www.kt.rim.or.jp/~pwp/
05月21日(月曜日) 00時01分記
[MSDE/SQLServerに関して、今、どんなことにお困りですか?] |
よろしければお困りの内容を、電子メールで教えて下さい。 |
質問を電子メールで作成する
|
[ウィンドを閉じる][MSDE/SQLServer FAQ ][MSDE / MSDE2000 技術サポート情報一覧]
|