作者:Pissa_lo | 来源:互联网 | 2023-05-18 14:10
1.如何能够抓取到sql查询分析器里面产生的那种完整出错信息???(如:对employee表插入数据时发生#¥%%约束错误……)注意:这里的错误信息里面是动态包括出错表的,而我现在只能获取@@err
1. 如何能够抓取到sql查询分析器里面产生的那种完整出错信息???(如:对employee表插入数据时发生#¥%%约束错误……)注意:这里的错误信息里面是动态包括出错表的,而我现在只能获取@@error,从sysmessages表里去取出对应当记录里面是包含变量的,我现在就是没有办法把这个变量动态度换成当前操作的对象。
2. 如何检测链接服务器是否链接正常??现在只能让sql程序去执行sql语句,在长时间链接后才能报链接错误,而且程序执行到这里结束,不执行以后的sql语句,不能记录本次错误信息
3. @@error在每条sql语句执行完后就改变值,可否对某一段sql语句整体判断它执行后的@@error值?
4. SET XACT_ABORT ON|OFF选项在对链接服务器操作时必须设置为ON;这样一旦报错时将自动回滚,后面的处理错误语句根本就不执行,因为也就无法纪录错误信息
sql里面报以下错误:
”无法为 OLE DB 提供程序 'SQLOLEDB' 启动嵌套事务。之所以需要嵌套事务是因为 XACT_ABORT 选项已设置为 OFF。
[OLE/DB provider returned message: Cannot start more transactions on this session.]”[/color]
7 个解决方案
我回答第三个问题好了,可以自己定义变量获得执行结果返回值,结合这个值以及@@Error就可以了。
第2个问题:错误是可以捕获的,怎么会退出呢?有人用dos下的ping命令来检测网络连接是否正常,在程序中执行ping命令,检测返回的字符数,大于210个字符则表示ping通了,否则没有通。
"第2个问题:错误是可以捕获的,怎么会退出呢?"
在一个GO语句段里,确实是这样的,你可以试试看,当网络链接不通时,本语句段中止执行,跳至下一Go语句段
但是在SP里是不能包含Go的
在sp里面如何用ping命令来检测网络??
其实,现在最头疼的问题是第四个!一对矛盾!
我试试第一个问题:
如果你用的是vb,你可以使用msgbox err.Description,
它能捕获后台的出错信息,看看行不!
祝你好运!