如何过滤2个ClientDataset中的不同数据?
有2个ClientDataSet,都只有一个字段。假设ClientDataSet1中的数据为:1、2...9。ClientDataSet2的数据为:3、4、5。
现在要把ClientDataSet1中的1、2、6、7、8、9过滤出来,有什么好的解决办法?因为数据量比较大,所以需要高效的方法。
请各位大虾们指教!!!
[解决办法]
用哈希表,就是先建立一个合适的内存空间,从ClientDataSet1里把1、2、6、7、8、9取出放入这个空间里。
[解决办法]
ClientDataSet1.Filtered := true;ClientDataSet1.Filter := ' a not in (''x'',''x'',''x'',''x'')';用for循环拼接下
[解决办法]
或者将两个ClientDataSet导入数据库两个临时表,用数据进行比对
[解决办法]
直接用SQL查询,如
select ... from t not exists(...)