怎么判断一个存储过程执行成功!

heaton0720 2003-12-25 03:35:45
假如存储过程很简单,就一句插入语句INSERT INTO。。。。。。。

iF ........(执行成功)

return 1

else
return 2
那我在ASP调用的时候就可以通过判断返回值来知道是否成功了!
(我还想返回一些信息,如return 3 表示服务器忙等)

问题就是IF 后面该怎么写,谢谢!
...全文
290 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wugw 2003-12-25
  • 打赏
  • 举报
回复
哦差点误人子弟,
1)这个objconn.errors.count<>0应该是objconn.errors.count=0,
在实际使用中这个条件还不够的,我曾做的判断并处理数据库连接错误的函数如下,希望你能用上吧。
2)adStoredProc 应为adCmdStoredProc 或者是&H004
sub m_oledberrnotice(xdobjconn)
dim xerrobj,oledberrstr,errcount,err0flag
err0flag = 0
errcount = xdobjconn.errors.count
if errcount > 0 then
oledberrstr = ""
oledberrstr = oledberrstr & "<table border=0 bgcolor=#0303a0 cellspacing=1 cellpadding=0 align=center style='position:relative;top:100;width:600;font-family:宋体;font-size:12px;'>"
oledberrstr = oledberrstr & "<tbody align=center>"
oledberrstr = oledberrstr & "<tr bgcolor=white height=25>"
oledberrstr = oledberrstr & "<td colspan=5 bgcolor=#3030a0 style='color:white;font-weight:bold;' align=left>"
oledberrstr = oledberrstr & "   "
oledberrstr = oledberrstr & "错误监测:"
oledberrstr = oledberrstr & "        "
oledberrstr = oledberrstr & "        "
oledberrstr = oledberrstr & "系统发生OLEDB错误"
oledberrstr = oledberrstr & "</td></tr>"
oledberrstr = oledberrstr & "<tr bgcolor=white>"
oledberrstr = oledberrstr & "<td height=40 width=70>错误号</td>"
oledberrstr = oledberrstr & "<td height=40 width=250>错误描述</td>"
oledberrstr = oledberrstr & "<td height=40 width=200>错误源</td>"
oledberrstr = oledberrstr & "<td height=40 width=70>SQL状态</td>"
oledberrstr = oledberrstr & "<td height=40 width=100>Native错误</td>"
for each xerrobj in xdobjconn.Errors
oledberrstr = oledberrstr & "</tr>"
oledberrstr = oledberrstr & "<tr bgcolor=white>"
oledberrstr = oledberrstr & "<td height=40>" & xerrobj.Number & "</td>"
oledberrstr = oledberrstr & "<td height=40>" & xerrobj.Description & "</td>"
oledberrstr = oledberrstr & "<td height=40>" & xerrobj.Source & "</td>"
oledberrstr = oledberrstr & "<td height=40>" & xerrobj.SqlState & "</td>"
oledberrstr = oledberrstr & "<td height=40>" & xerrobj.NativeError & "</td>"
oledberrstr = oledberrstr & "</tr>"
if xerrobj.Number=0 then
err0flag = err0flag + 1
end if
next
oledberrstr = oledberrstr & "<tr bgcolor=white height=25><td colspan=5 bgcolor=#3030a0> </td></tr>"
oledberrstr = oledberrstr & "</tbody>"
oledberrstr = oledberrstr & "</table>"
xdobjconn.errors.clear
if not (err0flag=1 and errcount=1) then
'关闭并撤消所有数据库对象
if IsObject(rst) then
if rst.State = adStateOpen then rst.Close()
set rst = nothing
end if
if IsObject(cmd) then
set cmd = nothing
end if
if IsObject(cnnLocal) then
if cnnLocal.State = adStateOpen then cnnLocal.Close()
set cnnLocal = nothing
end if
'显示错误信息
response.clear
response.write oledberrstr
response.end
end if
end if
end sub

不过以下的结构当然也可以判断VBS错误,教你的是判断数据库错误
if err.number=0 then
'no error occured
else
'error occured
end if


wugw 2003-12-25
  • 打赏
  • 举报
回复
我来帮你,以后不要问这么简单的问题了。
假定你有一个连接对象objconn
<%
dim objCmd,result
set objCmd = Server.CreateObject("ADODB.Command")
with objCmd
.ActiveConnection = objconn
'你为什么非要用存储过程呢,以下是来用存储过程的方法
' .CommandText = "insert into tablename values(fieldvalue)"
' .Execute
'此为用存储过程的
.CommandType = adStoredProc
.CommandText = "YourStoredProcName"
'存储过程中的参数存取方向,此为向存储过程输入的参数
.Parameters.Append .CreateParameter("param1",adInteger,adParamInput,,param1val)
'存储过程中的参数存取方向,此为向存储过程输出的参数
.Parameters.Append .CreateParameter("param2",adVarChar,adParamOutput,32)
'存储过程中的参数存取方向,此为向存储过程输出的参数
.Parameters.Append .CreateParameter("result",adInteger,adParamOutput)
'执行
.Execute

if objconn.errors.count<>0 then
result = Parameters("result")
end if

end with
set objCmd = nothing
if result="你在存储过程中判断执行成功与否的值" then
'你的代码
else
'你的代码
end if

%>
老刘ai分享 2003-12-25
  • 打赏
  • 举报
回复
up
ShiningstarHu 2003-12-25
  • 打赏
  • 举报
回复
if err.number <> 0 then

response.write "error"
else

response.write "success"

end if
heaton0720 2003-12-25
  • 打赏
  • 举报
回复
怎么没人啊, 帮帮小弟啊!!!!!!

28,407

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧