我將多條 Insert 寫入  adoquery
然後執行
如果其中一條出錯
事務會回滾所有已經執行過的insert嗎

解决方案 »

  1.   

    只要在begin事务跟提交事务之内,都可以
      

  2.   

    是這樣的
    我有一個普通的 adocon1 , adocon2adocon1.begintrans ;
     adocon1下屬的dataset applybatch...   adoconn2 .betintrans 
       adoconn2 下屬的adoquery 裏面有執行很多的insert openquery(.....)
    因為在不同的伺服器.
       adoconn2.commitadoconn1.commit 
    這樣的事務可以嗎?
      

  3.   

    你可以改下执行结构看看
    try
     adocon1.begintrans
     adocon2.begintrans
     //服务器1的数据更改操作
     //服务器2的数据更改操作
     adocon1.commit
     adocon2.commit
    except
     adocon1.RollbackTrans
     adocon2.RollbackTrans
    end
    要么都提交,出了异常都回滚
      

  4.   

    我測試了
       try 
          adocon1.betintrans
          adoquery1.sql.text ;='insert into openquery(oracle,'......')'
          adoquery1.exec.... 
          
          adocon1.commit
       except
          adocon1.rollbacktrans
       end
    他報無法執行交易
    oledb不提供什麽什麽的.看了連接伺服器也沒有什麽地方可以設置的. 能true的都true 了. 估計是沒辦法事務.