Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1267276
  • 博文数量: 788
  • 博客积分: 4000
  • 博客等级: 上校
  • 技术积分: 7005
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-19 15:52
文章存档

2017年(81)

2011年(1)

2009年(369)

2008年(337)

分类:

2008-10-20 10:36:23



我有一个存储过程,执行过程中要是@@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;

谢谢各位的捧场!



[新闻]硅谷VC过冬:屯现金 广节流 慎投资
博客园首页 社区 新闻频道 小组 博问 网摘 闪存
阅读(770) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~