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('提交事务出错')这一行。
请问大家,当出现上面的错误时如何能够回滚事务,并继续运行下面的代码?
解决方案 »
- 注入DLL程式到程序,如何加载
- 高分查错!TMemoryStream对象赋给TStream对象出错!
- 关于SPCOmm的问题:自动侦测波特率的相关问题
- 请问怎么样,读取的SQL中的binary到TmemorySTream.先谢了
- 数据库连接的问题!
- 在数据表格控件中,想将选中的记录整条都加亮反显,或是用其它色彩显示,应该怎么做?
- 请问borland pascal for windows的最高版本是多少?在哪里可以下载?
- 谁有DELPHI6 的 SP1
- .rar文件用什么解压?
- 急!急!急! 紧急求救,给出我的最高限56分
- 如何由指定月末日期得到月初日期(类似财务上的结算日期)?急!急!急!急!
- 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后的代码。