如何捕获SQLServer的异常,并获取错误信息?
时间:2011-12-09
来源:互联网
请问:
如何取出SQL Server异常中的相关信息,如错误号,或者raiserror中的state,用以
精确定位错误原因?
我想用若是通过异常的描述文字来判断应该不是很准确吧。
我试着捕获ado异常,发现有两种:EDataBaseError和EOleException,但翻看帮助,
它们的属性中都没有错误号之类的信息,而AdoConnection中的Errors.Item[]的Number
属性也不知道返回的数字是什么意义(Delphi帮助里找不到相关信息)?
所以对于SQL Server异常的处理,我真是一头雾水,请高手指教。
如何取出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种,若一个个译成中文,还不如把程序写好点,让它出错的机率低点
Source 来源
Description 描述
SQLState 状态
Number 代码
NativeError 本地错误
不过错误原因有成千上W种,若一个个译成中文,还不如把程序写好点,让它出错的机率低点
作者: kaikai_kk 发布时间: 2011-12-09
多kaikai_kk提供帮助,我是把抛出异常作为程序的执行逻辑的。
在SQLServer的存储过程中或触发器中也会以抛出异常的方式来阻止代码的执行并通知应用程序,
如果没有它则需要在每个SQL语句执行时都写入判断数据完整性的代码,那样就很麻烦了。
当然特殊问题要特殊对待,不过像对在非空字段中写入空值这种检查我还是喜欢交给数据库去处理。
希望大家都提供一个比较好的解决方案。
在SQLServer的存储过程中或触发器中也会以抛出异常的方式来阻止代码的执行并通知应用程序,
如果没有它则需要在每个SQL语句执行时都写入判断数据完整性的代码,那样就很麻烦了。
当然特殊问题要特殊对待,不过像对在非空字段中写入空值这种检查我还是喜欢交给数据库去处理。
希望大家都提供一个比较好的解决方案。
作者: xuleitz 发布时间: 2011-12-09
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28