如果你有一个存储过程执行多个查询,不返回值并且没有错误处理,那么如何确定从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
的返回值?
答案 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参数的完整详细信息。