希望当更新或插入操作不成功的时候,SQLSERVER的存储过程能返回一个信息 ( 积分: 50 )

  • 主题发起人 主题发起人 aabb_1980
  • 开始时间 开始时间
A

aabb_1980

Unregistered / Unconfirmed
GUEST, unregistred user!
论坛上的各位朋友,小弟总共有4个问题,都写在存储过程里面了,希望有朋友能帮忙解决小弟的问题,谢谢!!!<br><br>ALTER&nbsp;&nbsp;&nbsp;&nbsp;procedure&nbsp;KaoQinInsertUpdateEmployee<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@emp_id&nbsp;nvarchar(50),@card_id&nbsp;nvarchar(20),@insert_update&nbsp;varchar(10)<br><br><br>as<br><br>if&nbsp;@insert_update='insert'<br>&nbsp;&nbsp;begin<br>&nbsp;&nbsp;&nbsp;/*&nbsp;&nbsp;&nbsp;问题1:想先对传进来的@emp_id作一个SELECT(select&nbsp;*&nbsp;from&nbsp;表&nbsp;where&nbsp;emp_id=@emp_id),如果SELECT的结果不为空(因为表的emp_id字段不能重复)就将返回值赋值为:&nbsp;“emp_id这个字段不能重复,请注意”<br>然后不继续执行后面的语句,直接退出这个存储过程,并将返回值带出<br>*/<br>&nbsp;&nbsp;&nbsp;&nbsp;insert&nbsp;into&nbsp;employee&nbsp;(emp_id,card_id,)&nbsp;values&nbsp;(@emp_id,@card_id)<br><br>/*&nbsp;问题2:如果插入成功,则将返回值赋值为“成功”,然后不继续执行后面的语句,直接带出返回值*/<br><br>&nbsp;&nbsp;end<br><br>if&nbsp;@insert_update='update'<br>&nbsp;&nbsp;begin<br>&nbsp;/*&nbsp;&nbsp;&nbsp;问题3:想先对传进来的@card_id作一个SELECT(select&nbsp;*&nbsp;from&nbsp;表&nbsp;where&nbsp;card_id=@card_id),如果SELECT的结果不为空(因为表的card_id字段不能重复)就将返回值赋值为:&nbsp;“card_id这个字段不能重复,请注意”<br>然后不继续执行后面的语句,直接退出这个存储过程,并将返回值带出<br>*/<br><br>&nbsp;&nbsp;&nbsp;&nbsp;update&nbsp;employee&nbsp;set&nbsp;card_id=@card_id,&nbsp;where&nbsp;emp_id=@emp_id<br><br>/*&nbsp;&nbsp;问题4:如果更新成功,则将返回值赋值为“成功”&nbsp;*/<br>&nbsp;&nbsp;end
 
我是这样做的:<br>1.在sql&nbsp;server自定义错误信息代码<br>2.用raise的方法把错误发送出去<br>3.在客户端得到相应的错误代码,作提示
 
存储过程本身就可以建OUTPUT参数做输出的。你先建一个参数做输出。<br>create&nbsp;p.....<br>@ok_err&nbsp;int&nbsp;output&nbsp;<br>--这个是输出参数,0成功,&lt;&gt;0失败(你也可以写成Varchar型,自定义输出内容。)<br>Begin&nbsp;Tran&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;--开始事务<br>.....--这里可以放中间的事务处理过程<br>select&nbsp;@ok_err=@@Error<br>&nbsp;&nbsp;--如果定义为Varchar型,可放在@@error&lt;&gt;0中做Select&nbsp;@VrOK='处理过程发生错误...'<br>IF&nbsp;@@Error&lt;&gt;0&nbsp;&nbsp;&nbsp;&nbsp;--结束时(或一个事务处理完时)判断错误。<br>begin<br>&nbsp;rollback&nbsp;tran&nbsp;&nbsp;&nbsp;--产生了错误,回滚事务<br>&nbsp;return&nbsp;-1&nbsp;&nbsp;--不成功<br>end<br>Commit&nbsp;Tran&nbsp;&nbsp;&nbsp;&nbsp;--无错误就提交事务<br><br>在DELPHI中,通过参数返回值@ok_err来判断是否成功及错误代码。
 
谢谢楼上的各位朋友!
 

Similar threads

S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
911
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部