我在一本书上看到这段代码,大家发表以下意见啊
先设定adotable为缓存更新模式
他结合了adoconnection的事务处理
adoconnection1.begintran;
adotable.updatebatch;
当结束更新时,接受更新,
adotable1.post;
adotable1.committrans;
放弃更新时
adotable1.cancel;
adoconnection1.rollbacktran;
这里的adotable1.post和adotable1.cancel有什么用啊
当它处于缓存更新时,adotable1.post和adotable1.cancel没什么用吧。

解决方案 »

  1.   

    缓存更新也要post呀,只不过这个post不是提交给数据库,是提交给缓存,
    没有这个post,后面怎么利用缓存的数据真正更新数据库呀!
      

  2.   

    更新緩存,有一個用處就是可以使與adotable綁定的數據庫瀏覽組件裡面的值變化.
      

  3.   

    但是adotable1.updatebatch()已经将它提交给数据库了 吗/那还要它干什么啊/
      

  4.   

    adotable1.cancel;
    adoconnection1.rollbacktran;呢?;(这段代码前面的操作全部取消,为什么 还加adotable1.cancel;)
      

  5.   

    取消隻是取消數據庫的事務裡面的操作,但是,如果程序出錯後,你的表單沒有關閉的話,上面的數據瀏覽組件,如tdbedit,tdbgrid等,上面顯示的數據還是事務最後一步出錯時的數據,雖然並不會影響到數據庫裡面的內容,但是容易給用戶造成錯覺.