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

努力偷懒 2006-12-23 11:38:58
我有一个存储过程,执行过程中要是@@error不为0的时候会返回一个错误信息的结果集.例如不能插入重复键的时候,我会:
select -1,'已经有相同的用户注册了!请重选择另外一个用户名!'
我在查询分析器里面执行完这个存储过程,如果真出现这个错误,它是有这个结果集产生的,同时它也会抛出异常.在delphi中用Tadoquery控件执行这个存储过程,系统会检测出这个错误,同时在那里停止,不再执行下一步了.我如何才能让它不出错,而且获取到那个存储过程返回的错误集合:
"-1,'已经有相同的用户注册了!请重选择另外一个用户名!'"
,并对那个集合进行判断,来做我应该做的事?
...全文
165 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
努力偷懒 2007-01-01
  • 打赏
  • 举报
回复
谢谢各位的捧场!
cowboy_tt 2006-12-25
  • 打赏
  • 举报
回复
我是这样处理的可以有效地干掉你说的重复键这样的问题:
N1:=0;
TRY
<执行插入语句>
EXCEPT
N1:=1;
END;
IF N1=1 THEN
BEGIN
<这里表示出出错的信息>
END;
zjcxc 2006-12-23
  • 打赏
  • 举报
回复
2000里面无法屏蔽掉sql自己抛出的错误.

2005可以用try catch, 这样可以自己来决定错误处理方式


无论是2000还是2005, 严重的错误始终会终止处理

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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