请问如何获得存储过程中错误后的数据!谢谢

本文探讨了在Delphi中使用Tadoquery控件执行存储过程时如何处理错误情况,特别是在存储过程返回错误信息作为结果集时的处理方法。作者分享了一种通过try-catch结构来捕获并处理SQL Server中重复键插入错误的技巧。
请问如何获得存储过程中错误后的数据!谢谢 Delphi / Windows SDK/API
http://www.delphi2007.net/DelphiDB/html/delphi_20061223113858148.html
我有一个存储过程,执行过程中要是@@error不为0的时候会返回一个错误信息的结果集.例如不能插入重复键的时候,我会:  
  select   -1,'已经有相同的用户注册了!请重选择另外一个用户名!'  
  我在查询分析器里面执行完这个存储过程,如果真出现这个错误,它是有这个结果集产生的,同时它也会抛出异常.在delphi中用Tadoquery控件执行这个存储过程,系统会检测出这个错误,同时在那里停止,不再执行下一步了.我如何才能让它不出错,而且获取到那个存储过程返回的错误集合:  
  "-1,'已经有相同的用户注册了!请重选择另外一个用户名!'"  
  ,并对那个集合进行判断,来做我应该做的事?

2000里面无法屏蔽掉sql自己抛出的错误.  
   
  2005可以用try   catch,   这样可以自己来决定错误处理方式  
   
   
  无论是2000还是2005,   严重的错误始终会终止处理

我是这样处理的可以有效地干掉你说的重复键这样的问题:  
  N1:=0;  
  TRY  
      <执行插入语句>  
  EXCEPT  
      N1:=1;  
  END;  
  IF   N1=1   THEN  
        BEGIN  
              <这里表示出出错的信息>  
        END;

谢谢各位的捧场!

转载于:https://www.cnblogs.com/delphi2007/archive/2008/10/20/1314916.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值