+ -
当前位置:首页 → 问答吧 → 如何捕获SQLServer的异常,并获取错误信息?

如何捕获SQLServer的异常,并获取错误信息?

时间:2011-12-09

来源:互联网

请问:
  如何取出SQL Server异常中的相关信息,如错误号,或者raiserror中的state,用以
精确定位错误原因?

  我想用若是通过异常的描述文字来判断应该不是很准确吧。

  我试着捕获ado异常,发现有两种:EDataBaseError和EOleException,但翻看帮助,
它们的属性中都没有错误号之类的信息,而AdoConnection中的Errors.Item[]的Number
属性也不知道返回的数字是什么意义(Delphi帮助里找不到相关信息)?

  所以对于SQL Server异常的处理,我真是一头雾水,请高手指教。

作者: xuleitz   发布时间: 2011-12-09

可以获取ADO的返回错误的原生编码,然后自己显示出中文。

作者: milunhailili   发布时间: 2011-12-09

Errors.Item[i];有下列这些属性信息,已经够你分析错误原因的了

Source 来源
Description 描述
SQLState 状态
Number 代码
NativeError 本地错误

不过错误原因有成千上W种,若一个个译成中文,还不如把程序写好点,让它出错的机率低点

作者: kaikai_kk   发布时间: 2011-12-09

多kaikai_kk提供帮助,我是把抛出异常作为程序的执行逻辑的。
在SQLServer的存储过程中或触发器中也会以抛出异常的方式来阻止代码的执行并通知应用程序,
如果没有它则需要在每个SQL语句执行时都写入判断数据完整性的代码,那样就很麻烦了。
当然特殊问题要特殊对待,不过像对在非空字段中写入空值这种检查我还是喜欢交给数据库去处理。
希望大家都提供一个比较好的解决方案。

作者: xuleitz   发布时间: 2011-12-09

热门下载

更多