对下面这样的循环结构,如何实现原子操作。 for i=0 to 11 do begin with query1 do begin 通过循环对多个table进行的写入操作 end; with query2 do begin 通过循环对多个table进行的写入操作 end; end; 当query1中的有一次异常情况发生或者query2有异常发生,那么就把此次循环中的对数据库的操作全部回滚,也就是相当是原子操作,要么全做,要么不做。 在delphi中如何实现呢??
Database1.StartTransaction;
try
for i=0 to 11 do
begin
with query1 do
begin
通过循环对多个table进行的写入操作
end;
with query2 do
begin
通过循环对多个table进行的写入操作
end;
end;
except
Database1.Rollback;
exit;
end;
Database1.Commit;