哪位老大能不能告之:ODAC怎么进行事务控制?Insert ,Update,Delete都是自动提交的,如果要往几个表里写数据,但有一个表执行失败,怎么进行全部Rollbak?在网上找了半天也没有找到相关资料!

解决方案 »

  1.   

    adoConnection1.BeginTrans;
      try
        {...}
        AdoConnection1.CommitTrans;
      except
        AdoConnection1.RollbackTrans;
      end;
      

  2.   

    老大:我不是用ADO连的数据库,我用ODAC的Net连的Oracle
      

  3.   

    try
        OraSession1.StartTransaction;
        OraQuery1.ApplyUpdates;
        OraQuery1.CommitUpdates;
        OraSession1.Commit;
        ShowMessage('成功!');
      except
        OraSession1.Rollback;
        ShowMessage('失败!');
        Exit;
      end;
      

  4.   

    就是楼上的楼上那样,注意把OraSession,OraQuery的AutoCommit属性全部设成false。
      

  5.   

    jinjazz(近身剪(N-P攻略))  按你的方法编译能通过,但运行程序后报Database is closed
    如果不加这段代码,并把OraSession,OraQuery的AutoCommit属性全部设成True,就能正常运行,是什么问题呢?