5

我在 Delphi XE 中将 2.8 MB XML 文件转换为 ClientDataSet。XML 文件更改非常频繁,我基本上是在每次 XML 更改时以编程方式构建一个新的 CDS 文件。变化的不仅仅是内容,还有实际的结构。

问题是:是否可以在 ClientDataSet1 上使用简单的 SQL 在内存中创建第二个带有结果表的 ClientDataSet?如果答案是肯定的,那么基本机制是什么?目前我只使用 TClientDataSet 和 TDataSource 使数据库可用于数据感知组件。

4

2 回答 2

6

不,您不能在TClientDataSetwhen 用作内存数据集时运行 SQL 语句,因为没有关联的 SQL 提供程序。您最好的选择是使用 TClientDataSet 中包含的过滤功能。为此,您可以使用RangesorFilters然后将结果克隆到辅助 TClientDataSet 中。有关过滤的更多详细信息,请尝试这篇文章Filtering ClientDataSets

于 2012-04-07T10:18:44.740 回答
5

TxQuery 可以做你想做的事。它是一个 TDataSet 后代组件,可用于使用 SQL 语句查询一个或多个 TDataSet 后代组件。可在http://code.google.com/p/txquery/ 获得

于 2012-04-08T02:05:30.440 回答