我想问一下,用ADOQUERY查询出来的数据怎么样用事务处理,我原来是用BDE的QUERY
连的,用BDE连的时候不是可以将cachedupdata这个属性设为真,再连接一个UpdateSQL吗,这样就可以直接在query里面修改了吗,最后再用database的事务处理吗,
    现在我用ADOQUERY试了一下,如果查询出来的数据只是一个表的内容那他可以直接修改,但是如果查询出来的数据包含了多个表的数据,比如说我用一个dbgrid连接了这个ADO
query的话,那么直接在dbgrid中修改是会报错的。
    我现在是这样一个情况,我有一个主从表,当提交的时候必须两个表一起提交,否则就两个表都不提交,原来用DBE的query可以轻松的实现 ,但是现在改用ADOquery的话,不得行, 有什么办法可以解决吗?

解决方案 »

  1.   

    一般来说,我是用一个adoconnection,然后beginupdate,commitupdate…………
      

  2.   

    begin tran
    set  set nocount on
     set @re_message='插入状态主表成功'
       commit transaction
     goto   pover
    end
      

  3.   

    我是这样做的,用两个dbgrid连接主表和从表,在dbgrid中修改值后,写了下面的语句
      IF NOT ADOConnection1.InTransaction THEN ADOConnection1.BeginTrans ;
      TRY
        ADOConnection1.BeginTrans;
      except
        ADOConnection1.RollbackTrans;
      end;
    但是有错,是不是先要设置些什么参数吗?
      

  4.   

    怎樣設置ADOQUERY數據集是可讀和可寫
      

  5.   

    try
      adoconnection1.BeginTrans;//开始事务
      adoconnection1.CommitTrans;//提交事务
    except
      adoconnection1.RollBackTrans;//事务回滚
     end;