我已经编写的应用程序,其允许用户定义查询,使用TADOQuery部件运行它,以及它们的PC保存报告作为XML文档(SaveAsFile传递pfXML作为格式参数)进行离线观看。这工作得很好。

我现在需要做的就是将结果连接。我的意思是,我需要获得至少两个报告(具有相同的领域,因为它们使用相同的查询),并加入他们一起做一个报告。例如: 说我有检索用户的列表查询。我跑的“系统A”和“B系统”,其中系统A和系统B是两个独立的系统这个查询。有一次,我已经运行在两个系统上查询,我有两个独立的报表文件,这一点我可以加载回一个TADOQuery组件,然后在屏幕上查看。我需要做虽然是参加报告放在一起,这样反而有两个报告之间进行切换,我可以在同一时间看到所有在屏幕上的结果。

有人告诉我,我可以用一个TClientDataSet做到这一点,但我是比较新的数据库编程,而且不知道从哪里开始与此有关。我在 http://delphi.about.com/签出的文章OD / usedbvcl / A / tclientdataset.htm 但我仍然在黑暗中似乎没有什么做的正是我需要做的。

因此,我有两个问题: 1.使用的TClientdataSet的最佳方式,采取两个不同的结果集,将它们连接起来?如果有更好的方式来做到这一点,是什么呢? 2.如果使用的TClientdataSet是做到这一点的最好办法,究竟我会去这样做?你如何从一个TADOQuery传输数据到一个TClientDataSet,然后再回来?的处理的基本流程需要去是这样的:

报告1(LoadFromFile) - > TADOQuery \

                                  ClientDataSet -> TADOQuery -> SaveToFile

报告2(LoadFromFile) - > TADOQuery /

所有帮助将在此可以理解的。我真的不知道从哪里开始!

有帮助吗?

解决方案

我刚刚谈完了寻找到这一点。我的应用程序允许用户生成通过查询他们的数据库报告。我能得到这个工作,它是小型的结果集非常有效的 - 但是,因为这是一个报告应用程序,这是完全有可能是几十万的记录可以被返回,使用的ClientDataSet给人巨大的性能问题。一旦你得到上述约50,000条记录(合理的,考虑到客户群),处理开始成倍增加,所以这是现在基本上没有实际意义。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top