C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 19 を表示中)
■7500 / )  Re[2]: VBSでストアドの戻り値
□投稿者/ 酒井 (3回)-(2007/09/07(Fri) 11:11:32)
2007/09/07(Fri) 11:17:01 編集(投稿者)

No7499 (魔界の仮面弁士 さん) に返信
> ■No7497 (酒井 さん) に返信

早速の返信ありがとうございます。

>>上手くいかないようです。
> 具体的にはどうなってしまうのでしょう?
⇒ストアドプロシージャ自体が実行されず、データが作成されません。クエリアナライザから単発でストアドを流す限りはデータが作成されます。

また、最後に以下の記述を追記しましたが、メッセージボックスが表示されません。
このことから、パラメータの引渡しが上手くいっていないのではないかと思っています。

'// 取得結果を表示
MsgBox cmd.Parameters("@DATE_S").Value
MsgBox cmd.Parameters("@ret").Value



>>DAICHOU_EXPORTのパラメータはinが2つ、outが1つです。
> そのプロシージャの、具体的な定義を提示してください。
create procedure DAICHOU_EXPORT
@v_staDate varchar(20), --開始日付
@v_endDate varchar(20), --終了日付
@iReturn int output
AS
                      ・
                      ・
                      ・
return @iReturn


>>タイトル: VBSでストアドの戻り値
> 受け取りたい値は out パラメータなのでしょうか。それとも戻り値なのでしょうか。
⇒上記のように戻り値にもoutパラメータにも同じ値をセットしているので、どちらか取得できる方で構いません。


>>Set param = cmd.CreateParameter("@DATE_S", adVarChar, adParamInput, 20)
>>Set param = cmd.CreateParameter("@DATE_E", adVarChar, adParamInput, 20)
>>Set param = cmd.CreateParameter("@ret", adInteger, adParamOutput)
> in/out 引数の指定はあるようですが、戻り値(adParamReturnValue) の指定が抜けているようです。
⇒追加してみましたが、状況は変わらずです。


> もし、パラメータ定義に不安があるのなら、cmd.Parameters.Append で定義するのではなく、
> cmd.Parameters.Refresh を使って、サーバ側にパラメータ定義を問い合わせるのも手です。
> (ただし Refresh すると、Append で自己管理するよりも実行コスト面で若干不利になります)
>
>
> それと一応念のため、out パラメータにも任意の初期値を入れておいた方が良いかも。
⇒cmd.Parameters.Refreshについて、ちょっと調べてみます。
返信 編集キー/


管理者用

- Child Tree -