我不停的点击Button1,会报错:无法在此会话中启动更多的事务。
请帮忙解释,并如何该错,万分感谢!
希望在按钮代码中添加检测代码,控制无限制的BeginTrans。附:
测试环境:D5 + Access2000 + ADOButton1的代码:
procedure TForm1.btnBeginTransClick(Sender: TObject);
begin
ADOConnection1.BeginTrans;
end;
请帮忙解释,并如何该错,万分感谢!
希望在按钮代码中添加检测代码,控制无限制的BeginTrans。附:
测试环境:D5 + Access2000 + ADOButton1的代码:
procedure TForm1.btnBeginTransClick(Sender: TObject);
begin
ADOConnection1.BeginTrans;
end;
ADOConnection1.BeginTrans;//开始一个事务
.
.
.
ADOConnection1.CommiTrans;当出现问题时Rollback.
上面这条语句最好写在数据集的BeforePostPost事件中
level: Integer;
begin
ADOConnection1.BeginTrans;//这就是事务的嵌套层数
end;一般来说
一个事务没有完成前
是不应该再其他启动事务的
用ADOConnection1.InTransaction判断
数据库 SQL Server 2000,
程序中用 ADOConnection1 处理事务,当事务嵌套时就出错,这是为啥阿?
ADO好像本来就不可以嵌套
所以要
if not ADOConnection1.InTransaction then
ADOConnection1.BeginTrans;
在SQL中事务
showmessage('尚有未完成事务,请稍侯!')
else
ADOConnection1.BeginTrans;
那我执行是什么,是嵌套吗?
BeginTrans; //(b); // 这就嵌套了
CommitTrans; //(b);
CommitTrans; //(a);
try
ADOConnection1.BeginTrans;
......
ADOConnection1.CommitTrans;
except
ADOConnection1.RollBack;
end;