【发布时间】:2014-03-06 02:11:35
【问题描述】:
默认情况下,TClientDataSet 跟踪在 DataSet 中所做的所有更改(插入、更新、删除)。有没有办法告诉数据集接受当前的更改(比方说,在使用 insert/post 进行一系列插入之后)而不实际调用数据库来保存任何内容?
我想到的一个想法是使用 TDataSetProvider 并实现 BeforeUpdateRecord 事件并将 Applied 参数设置为 true。我不喜欢这两个方面。我必须再添加两个对象(TDataSetProvider 和 TSQLQuery 对象),并且 ApplyUpdates 启动一个事务。有没有更简单的方法?
如果我没有在 TClientDataSet 上设置 ProviderName,ApplyUpdates 会失败。
谢谢
【问题讨论】:
-
在插入之前将 LogChanges 设置为 false,或者调用 MergeChangeLog。或者我没看懂..
-
@SertacAkyuz:就是这样。请回答,以便我接受您的回答作为解决方案。
-
@Sertac:看起来你真的打败了我。如果您发布包含该信息的答案,我将删除我的。 (我看到了这个问题和唯一的答案,但在发布之前没有读过 cmets。答案是你的。)
-
@Ken - 完成。谢谢你,实际上你不必在回答之前看cmet。
标签: delphi dbexpress tclientdataset