- 締切済み
ストアドプロシージャの処理終了を判定
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() 次の処理....
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- utugi_taro
- ベストアンサー率73% (19/26)
MsgBox strCommand.Parameters("retuen").Value かな? MsgBox dr(0) とかかしら?
- utugi_taro
- ベストアンサー率73% (19/26)
> strCommand.Parameters.Add(New ADODBParameter("@戻り値", SqlDbType.Int, 4, "結果"))の記述でエラー(コンパイルエラー)となってしまいます。 strCommand.Parameters.Add(New ADODBParameter("@戻り値", SqlDbType.Int, 4, "結果")) は、環境に合わせてみて下さい。 たぶん、SqlDbType.Int でひっかかってると思うので ADODBType.Int とかみたいなのがあるのかな。
お礼
回答、ありがとうございます。 色々と試してみて、 strCommand.Parameters.Append strCommand.CreateParameter("結果", adSmallInt, adParamReturnValue) Set RS = strCommand.Execute() MsgBox 結果 でコンパイルエラーに成らず、処理は正常に終了しましたが、"結果"の 終了判定がうまく表示されませんでした。
- utugi_taro
- ベストアンサー率73% (19/26)
失礼。記事訂正。 MsgBox(drNewProduct.Item("結果")) じゃなくて MsgBox(RS.Item("結果")) かな。
お礼
ありがとうございます。 早速試してみたのですが、 strCommand.Parameters.Add(New ADODBParameter("@戻り値", SqlDbType.Int, 4, "結果")) の記述でエラー(コンパイルエラー)となってしまいます。
- utugi_taro
- ベストアンサー率73% (19/26)
その書き方でいくなら、例えば strCommand.Parameters.Add(New ADODBParameter("@戻り値", SqlDbType.Int, 4, "結果")) strCommand.Parameters("@戻り値").Direction = ParameterDirection.ReturnValue ...処理 MsgBox(drNewProduct.Item("結果")) こんな感じかな? 試したわけじゃないので参考程度に。
お礼
回答、ありがとうございました。 回答を参考にさせてもらいながら、色々と試行錯誤を繰り返しましたが、最終的には希望する結果は得られませんでした。 ストアドプロシージャ処理終了後の処理(考え方)を修正して、対応してみようと思います。 色々とありがとうございました。