Adoconnection连接MS SQL Server2000数据库,有一段程序代码如下: Adoconnection.beginTrans;
...(表记录增删命令)
try
Adoconnection.comitTrans;
except
Adoconnection.RollbackTrans;
Showmessage('提交事务出错');
end
当多个用户连接运行这个程序时,有时会出现“事务(进程 ID 68)与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。”的错误,程序下面的代码就被中止,也就是Adoconnection没有回滚事务,也没有运行下面的Showmessage('提交事务出错')这一行。
请问大家,当出现上面的错误时如何能够回滚事务,并继续运行下面的代码?
...(表记录增删命令)
try
Adoconnection.comitTrans;
except
Adoconnection.RollbackTrans;
Showmessage('提交事务出错');
end
当多个用户连接运行这个程序时,有时会出现“事务(进程 ID 68)与另一个进程已被死锁在 lock 资源上,且该事务已被选作死锁牺牲品。”的错误,程序下面的代码就被中止,也就是Adoconnection没有回滚事务,也没有运行下面的Showmessage('提交事务出错')这一行。
请问大家,当出现上面的错误时如何能够回滚事务,并继续运行下面的代码?
解决方案 »
- 如何实现如QQ在屏幕右下角弹出的通知窗口,
- 窗口贴边(靠边)是怎么实现的?想QQ一样,当窗口快接触显示区的边上时,就自动的隐藏,当鼠标过去时又显示.
- Edit关联DBGrid时,如何动态刷新?
- 中国程序员真是贱价呀,极度郁闷,散分!!!!!!!!!!!!!!!!!!!!!
- 如何將DBImager中的圖片保存到婁據庫再顯示出來。專家請出招!!!!!
- 给点建议!UP有分
- 高手回头看,上CSDN的理由有很多。。。。。。
- 我做个单机版的数据库(用Paradox建的表),想让别人用。除了拷贝exe和.db文件外,还要一些什么文件?这些文件在哪里?
- 小弟初入门,请高手帮忙,全局变量的定义和引用?
- VB下载开奖数据代码,能帮我转换成delphi吗?
- 如何由指定月末日期得到月初日期(类似财务上的结算日期)?急!急!急!急!
- 80分求一段代码(好象我只有80分了)有没有好心人啊!!!!!!!
请参考可以解决
这里提点建议:
1,你这样处理,根据你提供的信息,你的并发事务很容易引起死锁,建议对锁进行操作或者对程序进行优化处理
2,http://walkdan.cnblogs.com/archive/2006/01/19/320401.aspx对于你为什么不执行到下一步,不清楚
Adoconnection.beginTrans;
try
...(表记录增删命令)
Adoconnection.comitTrans;
except
Adoconnection.RollbackTrans;
Showmessage('提交事务出错');
end
这样才会执行except后的代码。