【发布时间】:2012-01-10 17:57:49
【问题描述】:
我有一个简单的 Delphi (2007) 过程,它给定一个 TDataSet 和一个(子)字段列表返回一个新的 TClientDataSet,它具有来自给定 TDataSet 的不同值。
这很好用。
在我的过程中,我使用 TClientDataSet 索引来填充不同的值。 它既快速又简单。
问题是TClientDataSet 索引支持最多16 个 字段。 如果您添加更多它们,它们将被静默忽略。
我在数据集中需要超过 16 个字段(因此在索引中)。
有什么解决办法吗?一些黑客? 也许一些开源库可以用作解决方法?
我正在离线工作,所以我必须在内存中完成。数据集的大小不是巨大
【问题讨论】:
-
在添加新索引之前,是否可以在处理后删除每个索引?
-
我想象的是您有一个 TDataset,并且您想要删除重复项。为此,您已经在 TClientDataset 中设置了一个索引,并且您只是复制所有内容,依靠索引来检测和丢弃重复的行。我对吗?联系
SELECT DISTINCT * FROM Table不是更简单更直接吗? -
@RobKennedy 是的,我想删除重复项。实际上创建一个没有重复和更少字段的新数据集。我与数据库分离。这就是为什么我不能运行 SELECT DISTINCT
-
@MikeW 我不明白你的问题。在我的过程中,我只需要创建一个索引。例如,我的初始数据集有 10 个字段。我需要对 5 个字段进行区分;所以我创建了一个包含 5 个字段和 5 个字段的索引的新数据集。
-
为什么投反对票?我对这个主题进行了研究。请告诉我你的理由
标签: delphi indexing delphi-2007 tclientdataset