- PR -

ストアドのエラーをレコードセットで取得したい

1
投稿者投稿内容
hidemura
会議室デビュー日: 2007/08/09
投稿数: 1
投稿日時: 2007-08-09 11:34
VBよりストアドを実行し、@@error内容をレコードセットにセットした際
レコードセットが設定されていないとエラーが発生しました。
どうやら、insert文に対してレコードセットを定義しているようでした。
(adoRS.NextRecordsetとやった場合、@@errorの内容が見えました。)
NextRecordsetを行なわないで、Select文のレコードセットの結果のみ
取得する方法はないでしょうか?
また、他にエラー状況を知る方法はないでしょうか?

以下現状のソースです
<VB>
Dim adoCon As ADODB.Connection
Dim adoRs As ADODB.Recordset

Set adoCon = New ADODB.Connection
adoCon.ConnectionString = "Provider=SQLOLEDB" _
& ";Data Source=サーバー名" _
& ";Initial Catalog=DB名" _
& ";User ID=ユーザーID" _
& ";Password=パスワード"
adoCon.Open

Set adoRs = New ADODB.Recordset

adoCon.BeginTrans

Set adoRs = adoCon.Execute("EXEC sp_user_toroku '100','abc','XXX'")

If adoRs(0) <> 0 Then ←ここでエラー
adoCon.RollbackTrans
MsgBox "失敗"
Else
adoCon.CommitTrans
MsgBox "成功"
End If

adoRs.Close
adoCon.Close
Set adoRs = Nothing
Set adoCon = Nothing

<ストアド>
CREATE proc sp_user_toroku @uid char(10),@pwd char(12),@nm char(40)
as
begin
insert into m_user
values (@uid,@pwd,@nm)
select @@error
end

環境
WindowsXP SP2 + VB6.0 + ADO2.8 + SQLServer2000
nakaP
大ベテラン
会議室デビュー日: 2005/09/27
投稿数: 138
お住まい・勤務地: 高知
投稿日時: 2007-08-09 22:07
今試せる環境でない&うろ覚えで申し訳ないですが・・・。

ストアドプロシジャ側でReturnもしくはOutputパラメタで戻り値を取得することは可能なはずです。
1

スキルアップ/キャリアアップ(JOB@IT)