我设置了DBGrid中的某个字段的readonly为false,并将DBEdit与DBGrid建立关联,这样,当我查询出结果时,若改变DBEdit中的值后选择当前DBGrid中的某行记录时,此时DBEdit中的数值便对数据库中的表进行更新,我如何控制这种更新,利用messagedialog等进行更新或者回滚?
请各位帮忙!!

解决方案 »

  1.   

    BDE有个 Database.rollback, commit等支持数据操作事务,用 ADOConnection 有。只要加控件上去,然后调用一下就可以了
      

  2.   

    正如楼上所说
    commitupdate;
    cancelupdate;
      

  3.   

    若用ADOQuery,设其LockType为ltBatchOptimistic,若要提交则ADOQuery.Post; ADOQuery.UpdateBatch();取消就用ADOQuery.Cancel;ADOQuery.CancelBatch()就OK了;若一定要用事务,则下面代码就可以实现:
      ADOConnection1.BeginTrans;
      try
        //操作代码
        ADOConnection1.CommitTrans;
      except
        ADOConnection1.RollbackTrans;
      end;
    用BDE可试上面所说方法,我没用BDE批量操作过