main.ADOConnection1.BeginTrans; //开始一个事务
……………………// 我的一些处理,包括几个查询和数据插入,更新,删除等
with ADOQuery1 do
begin
//…………update 1
try
ADOQuery1.open ;
Except
MessageDlg('无法打开数据库!',mtWarning, [mbYes], 0)
end; //try
//…………delete 2
try
ADOQuery1.open ;
Except
MessageDlg('无法打开数据库!',mtWarning, [mbYes], 0)
end; //try
//…………delete 3
try
ADOQuery1.open ;
Except
MessageDlg('无法打开数据库!',mtWarning, [mbYes], 0)
end; //try
end;
try
main.ADOConnection1.CommitTrans; //结束事务
except
main.ADOConnection1.RollbackTrans; //出错回滚
MessageDlg('读写数据库出错,记录已回滚!',mtInformation, [mbYes], 0);
exit;
end;
如果我在 2 的地方出错了,结束事务这一块就不做了,当我第二次运行这段程序的时候就报错,说无法开始一个事务。我的写法错在哪里?应该怎么写? 问题点数:20、回复次数:3Top
1 楼blackfiles(一个和尚挑水喝)回复于 2002-04-25 16:36:53 得分 10
try
ADOConnection.BeginTrans;
//Delete 1;
//Delete 2;
ADOConnection.CommitTrans;
except
ADOConnection.RollbackTrans;
end;