我将一个2.8 MB的XML文件转换为Delphi XE中的ClientDataSet。 XML文件经常更改,我基本上每次XML更改时都以编程方式构建一个新的CDS文件。它不仅是内容的变化,也是实际的结构。
问题是:是否可以在ClientDataSet1上使用简单的SQL在内存中创建第二个带有结果表的ClientDataSet?如果答案是肯定的,那么基本机制是什么?目前我只使用TClientDataSet和TDataSource使数据库可用于数据感知组件。
答案 0 :(得分:5)
不,当用作内存数据集时,您无法在TClientDataSet
上运行SQL语句,因为没有关联的SQL提供程序。您最好的选择是使用TClientDataSet中包含的过滤功能。为此,您可以使用Ranges
或Filters
,然后将结果克隆到辅助TClientDataSet中。有关过滤的详细信息,请尝试使用此文章Filtering ClientDataSets
答案 1 :(得分:5)
TxQuery可以做你想要的。它是一个TDataSet后代组件,可用于使用SQL语句查询一个或多个TDataSet后代组件。它位于http://code.google.com/p/txquery/