AdoConnection+AdoQuer+DataSource+dbGrid
按一下添加按钮,在表格里添加记录,连续添加三条记录,然后按保存按钮才真正把添加的记录写回到表里去,如果按取消按钮则不写回表里去,请问应如何实现?急。

解决方案 »

  1.   

    保存:AdoQuer.Post;
    取消:AdoQuer.CancelUpdates;
      

  2.   

    用事务吧,取消时rollback, 保存时commit,问题是何时开始事务(begintrans/starttrans)要好好设计。
      

  3.   

    如果你没有post过,是不会保存进去的,因此在取消按钮里,你只要不post就行了。
      

  4.   

    adoquery1.LockType:=ltBatchOptimistic;
    adoquery1.open;
    adoquery1.append
    ..
    adoquery1.append
    ...
    adoquery1.append
    ....
    adoquery1.UpdateBatch()//save
    adoquery1.CancelBatch()//canel
      

  5.   

    adoquery1.LockType:=ltBatchOptimistic;
    adoquery1.open;
    adoquery1.append
    ..
    adoquery1.append
    ...
    adoquery1.append
    ....
    adoquery1.UpdateBatch()//save
    adoquery1.CancelBatch()//canel
    用该方法可以取消,但是还有错误提示:“给定hrow涉及到一硬删除或软删除行”请问应如何解决,急.......
      

  6.   

    to grgz(尼采) 
    你的方法好象只能针对一条记录把。如果是一批呢,最好还是用Adoconnection来操作。
      

  7.   

    xiaoqlj(我独我孤) 就算你不用POST,一旦你修改一行数据然后转入下一行,数据库就会更新