关于缓存更新的小问题,100分(100分)

  • 主题发起人 主题发起人 xgydelphi
  • 开始时间 开始时间
X

xgydelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
在麻木的重复劳动中,程序写着写着,忽然间想起:
用query缓存更新数据库,applyupdate,commitupdate
间的关系是什麽,applyupdate后必须用commitupdate吗?
不用有什么后果?为什麽只用commitupdate数据也写到数据库了呢?
(sql 6.5,delphi3.0 c/s)
 
只用applyupdate不会出错.
 
区别:applyupdate不清空cache, 而commitupdate清空。
另外,如果有database1.starttransaction的话,applyupdate后
还可以rollback, 而commitupdate则不能。
 
两者的用法一般是什麽样的?
能不能只用applyupdate或commitupdate?
 
我知道的别人都说了。只有听了 。
 
xgydelphi老兄,把100分给我吧。
APPLYUPDATES是更新后不清除CACHE,如更新错误,还可以重试,因为APPLYUPDATES
就是用CACHE的数据更新的。而COMMITUPDATES,不管更新正确不正确,都清空CACHE
,重试时,CACHE为空,重试更新成了什么都不做。
COMMITUPDATES是在更新是一旦出错,继续执行下一条,Resync([]),只要上一条
记录,下一条记录在CACHE中,就清除CACHE,即全部清除,ROLLBACK也没用。
 
二者最主要的区别是在事务处理中的应用。
开一个事务,applyupdate后,可以用commit写入数据库,也可以用rollback
回滚
 
接受答案了.
 
后退
顶部