2

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

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

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

4

3 回答 3

0

我使用 dbExpress 时不使用 TADOQuery,但我想需要使用相同的技术。将更改发布到 TClientDataSet 后,调用“ApplyUpdates (0)”,它将数据从客户端数据集传输到其提供者。

于 2009-12-07T13:19:01.120 回答
0

您总是可以将数据集写回临时表,然后查询它。哎哟!!

于 2009-12-07T16:17:29.903 回答
0

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

于 2009-12-07T17:21:14.737 回答