如何检查存储过程是否成功执行

时间:2015-10-21 14:00:45

标签: stored-procedures vb6 ado

如果你有一个存储过程执行多个查询,不返回值并且没有错误处理,那么如何确定从VB代码调用时存储过程是否成功结束?

例如,如果存储过程类似于:

create stored procedure some_procedure
    Insert  into ...
    delete ...
    update ... 
end

... VB代码是这样的:

Cmd.ActiveConnection = cn
Cmd.CommandText = "some_procedure"
Cmd.CommandType = adCmdStoredProc
Set rs = Cmd.Execute
Debug.Print rs(0)

...那么如何获得成功0或失败1的返回值?

1 个答案:

答案 0 :(得分:0)

我相信使用Execute语句传递可选的RecordsAffected参数对您有用。由于您在细节上如此稀缺,您必须尝试它,但这对我和SQL以及FoxPro OLEDB提供商起作用。另外,为什么没有错误处理?恕我直言,在代码中没有错误处理程序,很可能会产生错误。

...
Dim lngRecsAffctd As Long

Cmd.ActiveConnection = cn
Cmd.CommandText = "some_procedure"
Cmd.CommandType = adCmdStoredProc
Cmd.Execute lngRecsAffctd, ,adCmdStoredProc   'why set to a recordset when the sproc doesn't return anything?
Debug.Print lngRecsAffctd
...

可以在msdn.microsoft.com/en-us/library/ms681559%28v=vs.85%29.aspx

找到执行命令和RecordsAffected参数的完整详细信息。