就是
      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
            全吐出来 //第一层结束  例子举得不好,能看懂就好,有什么办法做到呢?
  因为没有上述的嵌套事务吧??

解决方案 »

  1.   

    可以试试看有没有冲突Database1.StartTransaction;//第一层
    try
      //*****执行外围 
      try
        Database1.StartTransaction;//第2层
        ...
        DataBase1.Commit;
      Except
        DataBase1.Rollback;
      end;
      DataBase1.Commit;
    Except
      DataBase1.Rollback;
    end;
      

  2.   

    浏览器没有显示全!痛苦。
    =按你所说的想法不行:因为只要提交了就无法回滚了!   比如,
                吃一顿饭//第一层
                  
                   吃第一碗饭
                      有虫//exp   {如果没有虫,你就咽了,结果就全吐不出来了!}
                   吐出来         ===========================================
                   吃第一份菜 
                      有虫//exp
                   吐出来
                    .....
                 
                  吃得不开心//exp
                全吐出来 //第一层结束  
      

  3.   

    things(平)是个大骗子。。
    我不会,关注