执行多条sql语句如何保证完整性。
如果我要按一个按钮要执行几个sql操作。1.update ....2.update ....3.delete ....如果执行到3,出现意外情况,导致3没执行,可是1和2都执行了.
有没办法如果到出错了,就放弃前面执行的??
如果我要按一个按钮要执行几个sql操作。1.update ....2.update ....3.delete ....如果执行到3,出现意外情况,导致3没执行,可是1和2都执行了.
有没办法如果到出错了,就放弃前面执行的??
调试欢乐多
try
ADOConnection1.BeginTrans;
\\Do Update
ADOConnection1.CommitTrans;
except
ADOConnection1.RollbackTrans;
end;
說的對。就是利用事物了。提交一起提交、要不就是一起回滾
sql1 := '...';
ADOQuery1.SQL.Clear;
ADOQuery1.Close;
ADOQuery1.SQL.Add(sql) ;
ADOQuery1.ExecSQL; sql2 := '...';
ADOQuery2.SQL.Clear;
ADOQuery2.Close;
ADOQuery2.SQL.Add(sql) ;
ADOQuery3.ExecSQL; sql3 := '...';
ADOQuery3.SQL.Clear;
ADOQuery3.Close;
ADOQuery3.SQL.Add(sql) ;
ADOQuery3.ExecSQL;
try
ADOConnection1.BeginTrans;
ADOConnection2.BeginTrans; \\Do Update
ADOConnection1.CommitTrans;
ADOConnection2.CommitTrans;except
ADOConnection1.RollbackTrans;
ADOConnection2.RollbackTrans;end;