- ベストアンサー
VBScriptからストアドプロシージャのOUT変数の取得について
SQLServer2000上でOUT変数によって戻り値を呼び出し元に返すストアドプロシージャを作成し、VBScriptから実行したいと思っていますが、OUT変数上の戻り値を取得する方法がわかりません。 ADO経由でselect文の結果をrecordsetとして取得するメソッドは用意されているようなのですが、OUT変数として取得する適当なメソッドがVBScriptには見つかりませんでした。 同じようなことを行ったことのある方がいらっしゃいましたらやり方を教えて頂けますでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
実行環境が無いため未確認ではあるのですが、以下の方法でできないかやってみてください。 Dim objConnect Dim objCommand set objConnect=CreateObject("ADODB.Connection") set objCommand=CreateObject("ADODB.Command") '※接続です。接続するDB環境に合わせてください。 objConnect.Open "Provider=SQLOLEDB;Data Source=(local);Initial Catalog=pubs;", "sa", "" '※使用するコネクションを指定 objCommand.ActiveConnection = objConnect '※testプロシージャを実行します。(引数が1つ) objCommand.CommandText = "test ?" objCommand.Execute '※1つめの引数の値をひろう Msgbox objCommand.Parameters(0).Value いかがでしょうか?
お礼
コメントが遅れてしまい、すみませんでした。 ご回答頂いた方法では、エラーになってしまいました。が、CreateParameterを使用して明示的にOUTパラメータであることを指定することで、実現することができました。 set objCommand = CreateObject("ADODB.Command") With objCommand .ActiveConnection = objConnection .CommandText = "プロシージャ名" .CommandType = adCmdStoredProc ' ストアドプロシージャにOUT変数パラメータを設定 .Parameters.Append .CreateParameter("@outparameter",adInteger,adParamOutput) .Execute ln, , adExecuteNoRecords ' プロシージャからの戻り値を変数に格納 outParameter = .Parameters("@outparameter").Value End With ご協力頂きありがとうございました。 また分らないことがあったらご教授いただきたいと思います。