关于事务的问题

ricleon 2009-10-28 01:55:54
我的语句:
try
ADOConnection.BeginTrans;

ADOCommand.CommandText:='INSERT INTO AA SELECT * FROM BB';
ADOCommand.Execute;

ADOConnection.CommitTrans;
except
ADOConnection.RollbackTrans;
end;

报错:其他会话正在使用事务的上下文

什么原因?谢谢!
...全文
41 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ricleon 2009-10-28
  • 打赏
  • 举报
回复
算了,不加事务了!
火龙岛主 2009-10-28
  • 打赏
  • 举报
回复
还有可能原因是数据过大,造成事务过大,超出了系统的负荷!
ricleon 2009-10-28
  • 打赏
  • 举报
回复
没有啊,之前我就没写,这个是单个过程,就这么一个事务
huangheguyun 2009-10-28
  • 打赏
  • 举报
回复
ADOConnection.BeginTrans;
ADOConnection.CommitTrans;
不配对,你查看一下你前面是不是打开事务了。
火龙岛主 2009-10-28
  • 打赏
  • 举报
回复
事务不能嵌套,你只能在一个会话中使用事务!
也就是说:

try
ADOConnection.BeginTrans;

ADOCommand.CommandText:='INSERT INTO AA SELECT * FROM BB';
ADOCommand.Execute;

ADOConnection.CommitTrans;
except
ADOConnection.RollbackTrans;
end;
之前和之后都不能有类似ADOConnection.BeginTrans;的语句!
风之谷 2009-10-28
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 bdmh 的回复:]
一个事务没有结束,再次开启所致,检查所有事务使用的地方,确保打开或关闭是配对的
[/Quote]
------
upup
bdmh 2009-10-28
  • 打赏
  • 举报
回复
一个事务没有结束,再次开启所致,检查所有事务使用的地方,确保打开或关闭是配对的
Harryfin 2009-10-28
  • 打赏
  • 举报
回复
你之前beginTrans过一次,然后这里又再次beginTrans吧?

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧