解决方案 »
- 真是服了DELPHI了,谁能解决这个问题,不知道是不是SQL的问题,我折腾了两天了!
- 主窗口是 MAIN 登陆窗口是LOGIN 怎么样让程序一启动,就运行 LOING?
- 求多线程存取记录的算法
- 为什么要使用面向对象的方法?(why use OO methodology?)
- treeview各节点是通过打开数据库后显示,如何使treeview刷新?
- 请问adoquery1中的要找记录怎么写?很急,帮帮我,一定给分!
- 请问reportbuilder中如何控制换页
- 诚征调试存储过程终极解决方案!
- 如何用视图将多表查询的结果显示在DBGrid中?(需具体步骤)没办法,为什么只让给25分?
- 88分抢答,Dbgrid里能不能实现自动换行?或者有没有实现该功能增强的控件。
- 问一个算法的问题,请朋友们帮忙
- 求助: 我用Opendialog打开的图片在image中不显示,怎么破
CommitUpdates在applyUpdates成功后,清除缓存,具体看看帮助,写的很清楚
这两个是数据集的方法Commit是数据库连接的方法,和StartTransaction,Rollback一起使用,就是事务提交更新,保证此事务更新的一致性和完整性(此事务内只要有一个更新异常,将导致此事务所有更新无效,就是回滚rollback),和 ADOConnection.BeginTrans;
try
//update
ADOConnection.CommitTrans;
except
ADOConnection.RollbackTrans
end类似post就是普通的将数据集修改提交到数据库
with CustomerQuery do
begin
Database1.StartTransaction;
try
ApplyUpdates; {try to write the updates to the database};
Database1.Commit; {on success, commit the changes};
except
Database1.Rollback; {on failure, undo the changes};
raise; {raise the exception to prevent a call to CommitUpdates!}
end;
CommitUpdates; {on success, clear the cache}
end;end;这个是帮助里面的
资料什么时候在本地客户端的缓存中,何时会在DB端的缓存中,何时又会提交到数据库文件中。
我之前的理解是:
post只是把数据提交到本地的内存中。
applyUpdates 是把数据提交到数据库的缓存中。
Commit是提交到资料库中。如果在ApplyUpdates后并没有commit,资料是否会丢失呢?
CommitUpdates 我很少使用到。今天学习了谢谢sparklerl在请教一下CommitUpdates 在什么样的时机下使用呢?如果我不用使用CommitUpdates 最程序会造成什么样的影响?
applyUpdates//用于数据批量提交更新,单独用的时候,不用commit,如果结合食物的话,需要commit
CommitUpdates//在applyUpdates之后,清空缓存
Commit//是用在食物中的一种方法例子
adoconnection.BeginTrans;//事物开始
adoquery.post;//提交更改
adodataset.applyupdates;//提交更新
adoconnection.CommitTrans;//确认更新,在这一步之前,post,applyupdates提交的数据还没有保存到数据库,只有这一步执行了,才保存到数据库
adodataset.CommitUpdates;//清空缓存~~