// ADODataSet_Main.LockType := ltBatchOptimistic;
// ADODataSet_Detail.LockType := ltBatchOptimistic;
try
ADOConnection1.beginTran;
ADODataSet_Main.Insert;
// Insert Main data
ADODataSet_Main.Post;
for i := 0 to n begin
ADODataSet_Detail.Insert;
// Insert Detail data
ADODataSet_Detail.Post;
end;
ADOConnection1.commitTran;
except
ADOConnection1.RollBack;
end;
构建T_SQL事务
try //在第一个SQL语句前增加一句:
adoqry1.sql.add('begin transaction');
A
B
//成功,埸交事务。要注意对应关系,Commit总是各最近一次Begin Transaction相对应的。
with adoqry1 do
begin
sql.add('Commit');
execsql;
end;
except //回滚
with adoqry1 do
begin
sql.add('RollBack');
execsql;
end;
end;
// ADODataSet_Detail.LockType := ltBatchOptimistic;
try
ADOConnection1.beginTran;
ADODataSet_Main.Insert;
// Insert Main data
ADODataSet_Main.Post;
for i := 0 to n begin
ADODataSet_Detail.Insert;
// Insert Detail data
ADODataSet_Detail.Post;
end;
ADOConnection1.commitTran;
except
ADOConnection1.RollBack;
end;
构建T_SQL事务
try //在第一个SQL语句前增加一句:
adoqry1.sql.add('begin transaction');
A
B
//成功,埸交事务。要注意对应关系,Commit总是各最近一次Begin Transaction相对应的。
with adoqry1 do
begin
sql.add('Commit');
execsql;
end;
except //回滚
with adoqry1 do
begin
sql.add('RollBack');
execsql;
end;
end;