我想更新SQL Server和Oracle中的表,又需要保证两个表要么都更新,要么都不更新,就象事务一样,该怎么做?谢谢,麻烦说的详细一些。

解决方案 »

  1.   

    用一个嵌套应该可以了吧,两个ADOCONNECT,当内部哪个更新不成功时,直接跳出嵌套,不执行外面的SQL语句
      

  2.   

    try 
      adoquery1 command;
       try
        adoquery2 command;
        adoquery1.post;
        adoquery2.post;
       except
         showmessage('adoquery2 不通') 
         close; 
    except
    showmessage('提交数据不成功')
    end;
      

  3.   

    AdoConnection1.BeginTrans;
    try
        ...    //数据操作1    ...    //数据操作2  AdoConnection1.CommitTrans;     //提交事务
    except
      AdoConnection1.RollbackTrans;   //异常,事务回滚
    end;
      

  4.   

    AdoConnection1.BeginTrans;
    try
        ...    //数据操作1
        AdoConnection12.BeginTrans
        try
        ...    //数据操作2
       AdoConnection2.CommitTrans;  
       except
         AdoConnection2.RollbackTrans;   //异常,事务回滚
        ...直接跳出整个Try
        end;
      AdoConnection1.CommitTrans;     //提交事务
    except
      AdoConnection1.RollbackTrans;   //异常,事务回滚
    end;
      

  5.   

    adoConnection1.beginTrans;
    try
      .... 
      adoConnection2.beginTrans;
      try
        ...
        adoConnection2.committrans;
      except
        adoConnection2.rollbackTrans;
        adoConnection1.rollbackTrans;  //回滚事务1
        exit;
      end;
      adoConnection1.commitTrans;
    except
      adoConnection1.rollbacktrans;
    end;