很久没有来了,这次有了问题.希望得到惊喜解决. ( 积分: 100 )

  • 主题发起人 主题发起人 crsoftware
  • 开始时间 开始时间
C

crsoftware

Unregistered / Unconfirmed
GUEST, unregistred user!
朋友们,用过 ClientDataset.StatusFilter := [usDeleted];这个功能吗?
这的确是可以过滤出已经被删除的记录。高兴之,惊喜之,没有想到系统日志删除功能
可以这样简单就实现了。
后来,结果有点坏,就是发现如果在执行 ClientDataset.StatusFilter := [usDeleted]这样的语话之前,用过Clientdataset.filter,无论你是不是已经还原Clientdataset.filter:='' 和Clientdataset.filtered:=false;再次执行ClientDataset.StatusFilter := [usDeleted]就已经失效了,数据集的记录条数仍然=recordcount。
很久很久没有来大富翁,真正碰到问题了,才想起我的背后原来有曾经帮助过我的大富翁。有碰到过这个朋友的朋友还请指教一下!谢谢!!
顺祝网友们国庆节快乐!
 
沒明白你想要表达的意思.
建议不要用StatusFilter,应该算是ClientDataSet的bug,建议你用这种方法,新建一个ClientDataSet为cdsTemp,然后再cdsTemp.Data := ClientDataSet.Delta,再根据cdsTemp.UpdateStatus判断是usInserted,usDeleted或usUnmodified来进行你自己的操作.
 
同意楼上的
 
感觉以上二位的回答。我回去再看看能否结合delta来解决这个问题。
一开始没有使用delta的原因,是因为数据集有内部字段,而delta中没有包含内部字段的信息,所以放弃delta的做法。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部