使用TADOQuery查询TClientDataSet

时间:2009-12-07 11:15:05

标签: delphi ado tclientdataset

我的问题非常简单。我有一个TClientDataSet通过TDataSetProvider链接到TADOQuery。我可以从TADOQuery将数据放入TClientDataSet,但是如何将TClientDataSet中的数据反馈回TADOQuery?

当我运行查询然后将TClientDataSet的Active属性设置为True时,数据会自动从TADOQuery传输到TClientDataSet,但是如果我停用TADOQuery然后再次激活它,我怎样才能从TClientDataSet获取数据?

我在几个数据库上运行相同的查询,并使用TClientDataSet连接结果。这工作正常。我现在的问题是我需要将连接的结果集从TClientDataSet返回到TADOQuery,以便我可以使用TADOQuery的SaveToFile过程(出于兼容性原因)。我怎么能这样做?

3 个答案:

答案 0 :(得分:0)

我不使用TADOQuery,因为我使用dbExpress,但我想这需要使用相同的技术。将更改发布到TClientDataSet后,调用'ApplyUpdates(0)',它将数据从clientdataset传输到其提供者。

答案 1 :(得分:0)

您始终可以将数据集写回临时表,然后进行查询。哎哟!!

答案 2 :(得分:0)

我刚刚看完这个。我的应用程序允许用户通过查询其数据库来生成报告。我可以使用它,这对于小型结果集非常有效 - 但是,因为这是一个报告应用程序,并且完全有可能返回数十万条记录,使用ClientDataSet会产生大量性能问题。一旦你获得大约50,000条记录(合理的,给定客户群),处理开始呈指数级增长,所以现在基本上没有实际意义。