• 締切済み

ストアドプロシージャの処理終了を判定

OS:windowsXP Pro Access Version:ACCESS2000 AccessVBAでストアドプロシージャを呼び出し処理をしていますが、ストアドプロシージャでの処理終了を判定して、次のステップに移るような処理を考えています。 SQLServerには、ODBC経由で接続しています。 ストアドプロシージャの呼び出しは巧く行くのですが、処理終了が判定できません。 具体的にはどうすればストアドプロシージャの処理の終了を判定することができるのでしょうか?      Dim adoCN As ADODB.Connection Dim str_adoCN As String Dim strCommand As ADODB.Command Dim RS As New ADODB.Recordset str_adoCN = "Data Source='SQL_XXXX'; User ID='XX';Password='XXXXXXXX';" Set adoCN = New ADODB.Connection adoCN.Open str_adoCN Set strCommand = New ADODB.Command Set strCommand.ActiveConnection = adoCN strCommand.CommandText = "Procedure_XXXX" strCommand.CommandType = adCmdStoredProc Set RS = strCommand.Execute() 次の処理....

みんなの回答

回答No.4

MsgBox strCommand.Parameters("retuen").Value かな? MsgBox dr(0) とかかしら?

fu_atari
質問者

お礼

回答、ありがとうございました。 回答を参考にさせてもらいながら、色々と試行錯誤を繰り返しましたが、最終的には希望する結果は得られませんでした。 ストアドプロシージャ処理終了後の処理(考え方)を修正して、対応してみようと思います。 色々とありがとうございました。

回答No.3

> strCommand.Parameters.Add(New ADODBParameter("@戻り値", SqlDbType.Int, 4, "結果"))の記述でエラー(コンパイルエラー)となってしまいます。 strCommand.Parameters.Add(New ADODBParameter("@戻り値", SqlDbType.Int, 4, "結果")) は、環境に合わせてみて下さい。 たぶん、SqlDbType.Int でひっかかってると思うので ADODBType.Int とかみたいなのがあるのかな。

fu_atari
質問者

お礼

回答、ありがとうございます。 色々と試してみて、    strCommand.Parameters.Append strCommand.CreateParameter("結果", adSmallInt, adParamReturnValue)  Set RS = strCommand.Execute()  MsgBox 結果 でコンパイルエラーに成らず、処理は正常に終了しましたが、"結果"の 終了判定がうまく表示されませんでした。

回答No.2

失礼。記事訂正。 MsgBox(drNewProduct.Item("結果")) じゃなくて MsgBox(RS.Item("結果")) かな。

fu_atari
質問者

お礼

ありがとうございます。 早速試してみたのですが、 strCommand.Parameters.Add(New ADODBParameter("@戻り値", SqlDbType.Int, 4, "結果")) の記述でエラー(コンパイルエラー)となってしまいます。

回答No.1

その書き方でいくなら、例えば strCommand.Parameters.Add(New ADODBParameter("@戻り値", SqlDbType.Int, 4, "結果")) strCommand.Parameters("@戻り値").Direction = ParameterDirection.ReturnValue ...処理 MsgBox(drNewProduct.Item("結果")) こんな感じかな? 試したわけじゃないので参考程度に。

関連するQ&A

専門家に質問してみよう