Office中国论坛/Access中国论坛

标题: [求助]存储过程的状态返回值有何作用,及如何使用它? [打印本页]

作者: zyp    时间: 2005-9-27 17:49
标题: [求助]存储过程的状态返回值有何作用,及如何使用它?
书中说,在存储过程中,可以用return (整数)来取得一个状态返回值,以确定存储过程调用状态,一般用0表示调用成功,用-1~-99表示系统调用错误。

不知这个值能起什么作用?

在VBA代码中,用currentproject.connection.execute("exec 存储过程")调用存储过程,无论是存储过程中的T-SQL语句成功执行与否,均无法显示相关的信息。是不是用这个状态返回值就可以判定存储过程是成功执行所有的T-SQL代码,或是中途发生错误。

如果真是这样就好了,我们可以在VBA中用msgbox来提醒用户程序是否成功完成,可出现了错误,请检查错误发生的原因。

在VBA中又是如何调用这个状态返回值的呢?

请各位高手多多指教!谢谢!
作者: 徐阿鹏    时间: 2005-9-28 03:52
Dim cmd As New ADODB.Command

Dim Par As New ADODB.Parameter

Set cmd.ActiveConnection = CurrentProject.Connectioncmd.Parameters.Append cmd.CreateParameter("@return_value", adInteger, adParamReturnValue)'(必须的,可以返回执行的状态的)Set Par = cmd.CreateParameter("@备注" & I, adVarChar, adParamInput, 50, rss("备注"))

cmd.Parameters.Append Par

Set Par = cmd.CreateParameter("@错误", adVarChar, adParamInputOutput, 100, "")'(系统返回的参数值)

cmd.Parameters.Append Parcmd.CommandText = "销售_增加新销售记录"

cmd.CommandType = adCmdStoredProc

cmd.ExecuteIf cmd.Parameters("@return_value").Value <> 0 Then   '当返回值是不成功时

MsgBox Par.Value, vbInformation, "系统提示"

Elseend

[em01][em01]
作者: 徐阿鹏    时间: 2005-9-28 04:04
后台的服务器同样用判断语句declare @err intset @err=@@errorif @err<>0 select @错误=‘。。。。。。。。。’。。。。。
作者: zyp    时间: 2005-9-28 18:50
謝謝徐阿鵬,我試一下先




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3