我用ADOQuery查询得到一个结果,如何再对这个数据集进行二次查询?
由于得到数据集后仍需要进行较多后续操作,因此不可能一次查询到位。因为查询太耗时所以也不能进行多次查询。
我知道用Filter可以进行过滤,但如要再对ADOQuery中的数据集再次进行分类统计 即进行类似于“ select sum(aaa) from table group by bbb"这样的查询如何实现?不要告诉我再从数据库中进行查询,因为查询很耗时,我是为了提高效率才迫不得已想这么做的!
[解决办法]
添加一个TDataSouce和一个TADOQuery,命名为DataSource1和ADOQuery2(假设此时已有一个TADOQuery对象,名为ADOQuery1,并且已经从数据库筛选出某些记录)
首先设置:
DataSource1->DataSet = ADOQuery1;
再设置以下属性:
ADOQuery2->Connection = ADOQuery1->Connection;
ADOQuery2->DataSource = DataSource1;
然后在ADOQuery2中进行二次查询即可。
[解决办法]
也可以用临时表。或者视图。
[解决办法]
使用临时的表,再次查询就方便了啊
[解决办法]
自己做控件,或者找个支持分组的数据栅格控件.
如果像你所说的,只查询一边,要进行多次筛选结果集.
可以把下载的数据弄成一个文件(ADTG或XML).
然后你再ADOQUERY装载表,然后进行筛选,要几次随意.(关于ADOQUERY最好是自动生成呵呵,再自动关联)
这样,只要机器吃的消,你就能N次结果放在眼前.
[解决办法]
建个临时表,第一次查询的放到临时表里,第二次查询直接查询临时表,查询完后删除临时表
[解决办法]
1、建临时表
2、建存储过程,把先要查的条件做成存储过程,然后以这个存储过程做为表名,进行第二次查询。
3、如果对已经查出来的ADOQUERY做再次查询,如果查询条件简单的话可以用ADOQUERY->Filter对数据进行过滤。
[解决办法]
内存里建临时表,进行一次查询, 二次查询从临时表读取.
[解决办法]
遍一次,自行group by 代,生成新的集。