对ADOQuery1进行二次查询.十万火急……(200)

  • 主题发起人 主题发起人 lbt
  • 开始时间 开始时间
L

lbt

Unregistered / Unconfirmed
GUEST, unregistred user!
各位高手,怎么才能对:ADOQuery1的查询结果的某个字段如:字段B,进行二次查询。在线等候……
 
你把结果放到DataClientSet中后用过滤条件
 
主要是对adoquery1的某个字段查询的结果,进行求合。
 
那你的结果是放到grid里的吧?对它循环处理就是了,想对哪列求和就处理哪列。或者你在查询的时候就Sum出结果,用个Union连起来,把结果一起Show出来即可。
 
TO:szhcracker有1万行给是要循环1万次?
 
把第一次的数据集放到临时表中.第二次查的时候直接Sql 语句,这样能不能达到你的目的呢?
 
adoquery1.filter:='字段B=123';adoquery1.filted:=true;好象是这样写的,具体命令看看帮助。
 
看来LZ想当然了,一万行的数据进行求和会需要很多时间吗?我想不会比你show出这些数据所花的时间长吧?再说了,你若真的不想二次处理,你就直接select sum(aa) .... 出结果就是,不必再进行二次查询,那样岂非更快?
 
zbdzjx方法可行。或者,还可以这样:添加 TDataSetProvider、TClientDataSet各一个,DataSetProvider1.dataset:=ADOQuery1;ClientDataSet1.ProviderName:=DataSetProvider1;
 
各位:ADOQuery1查询出来的结果,是从多表中查出来的,如果能用SUM来实再,我来问你们做什么。放在临时表我要想过,我只是来问问大家就没有比放在临时表更好的办法?
 
用cxgrid,一般的效果都可以实现。
 
var Str:String;begin ADOQuery1.Close; ADOQuery1.SQL.TEXT:='SELECT 字段B FROM TableName'; ADOQuery1.Open; Str:=ADOQuery1.Fields[0].AsString; ADOQuery1.Close; ADOQuery1.SQL.TEXT:=Str; ADOQuery1.Open;end;
 
多人接受答案了。
 
后退
顶部