就是
Database1.StartTransaction;//第一层
try
//*****执行外围
Database1.StartTransaction;//第二层
try
//**执行
Database1.Commit;
except
on e:Exception do
begin
Database.Rollback;
end;//第二层结束 Database1.Commit;
except
on e:Exception do
begin
Database.Rollback;
end;//第一层结束
其实我就是想问,怎么才能随意的定义事务,使得可以“任意”回到出发点
而且数据库是同一个,不能把事务并在一个里面
比如,
吃一顿饭//第一层
吃第一碗饭
有虫//exp
吐出来
吃第一份菜
有虫//exp
吐出来
.....
吃得不开心//exp
全吐出来 //第一层结束 例子举得不好,能看懂就好,有什么办法做到呢?
因为没有上述的嵌套事务吧??
Database1.StartTransaction;//第一层
try
//*****执行外围
Database1.StartTransaction;//第二层
try
//**执行
Database1.Commit;
except
on e:Exception do
begin
Database.Rollback;
end;//第二层结束 Database1.Commit;
except
on e:Exception do
begin
Database.Rollback;
end;//第一层结束
其实我就是想问,怎么才能随意的定义事务,使得可以“任意”回到出发点
而且数据库是同一个,不能把事务并在一个里面
比如,
吃一顿饭//第一层
吃第一碗饭
有虫//exp
吐出来
吃第一份菜
有虫//exp
吐出来
.....
吃得不开心//exp
全吐出来 //第一层结束 例子举得不好,能看懂就好,有什么办法做到呢?
因为没有上述的嵌套事务吧??
try
//*****执行外围
try
Database1.StartTransaction;//第2层
...
DataBase1.Commit;
Except
DataBase1.Rollback;
end;
DataBase1.Commit;
Except
DataBase1.Rollback;
end;
=按你所说的想法不行:因为只要提交了就无法回滚了! 比如,
吃一顿饭//第一层
吃第一碗饭
有虫//exp {如果没有虫,你就咽了,结果就全吐不出来了!}
吐出来 ===========================================
吃第一份菜
有虫//exp
吐出来
.....
吃得不开心//exp
全吐出来 //第一层结束
我不会,关注