- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在使用 ClientDataSet.StatusFilter := [usDeleted]
时遇到一些困难。
它没有任何作用。我正在将我的 ClientDataSet 连接到 Provider。
应用 StatusFilter 时,DataSet 不会显示已删除的记录。
它仅显示应用 StatusFilter 之前的记录。
另一方面。如果我使用未连接到提供程序的 ClientDataSet.CreateDataSet
且仅使用 ClientDataSet 作为内存中的数据集,则 StatusFilter 的工作方式如文档中所述。
DataSet仅显示已删除的记录。
ClientDataSet.UpdateStatus 还显示正确的状态 usDeleted。
获得连接到提供程序以显示已删除记录的第一个 ClientDataSet 的唯一方法是使用 ClientDataSet.Delta 属性。但这不允许我恢复已删除的记录。
//Note: cds.LogChanges = true
cds := TClientDataSet.Create(nil);
cds.Data := MyClientDataSet.Delta;
cds.First;
while not cds.eof do
begin
case cds.UpdateStatus of
usModified:
begin
ShowMessage('Modified');
cds.RevertRecord;
end;
usInserted: ShowMessage('Inserted');
usDeleted: ShowMessage('Deleted');
end;
cds.Next;
end;
cds.Free;
我做错了什么?
最佳答案
您描述的代码
ClientDataSet1.StatusFilter := [usDeleted];
是在当前 ClientDataSet View 中仅包含那些已删除的记录的正确方法。我不明白为什么它不适合你,因为我一直在我的代码中使用这种方法并且它从未失败过。我唯一能想到的是,您可能在设置 StatusFilter 属性之前调用了 ApplyUpdates 或 CancelUpdates,或者您可能将 LogChanges 设置为 False(默认值为 True)。
顺便说一句,要取消状态过滤器,请将其设置为空集,如下所示:
ClientDataSet1.StatusFilter := [];
这将包括您 View 中插入、修改和未修改的记录。删除的记录不会出现在当前 View 中。
关于delphi - ClientDataSet 上的 StatusFilter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7671205/
我在使用 ClientDataSet.StatusFilter := [usDeleted] 时遇到一些困难。 它没有任何作用。我正在将我的 ClientDataSet 连接到 Provider。 应
我是一名优秀的程序员,十分优秀!