有一张表aaa,
adoquery1.sql.clear;
adoquery1.sql.add('select '' as count ,* from aaa ');
adoquery1.open;
adoquery1.first;
while not adoquery1.eof do 
begin
.......
adoquery1.filedbyanme('count').asstring:=...  //在一定条件下对count赋值;
adoquery1.post
adoquery1.next
end;
现在有一个adoquery2
我想把adoquery1的集合作为adoquery2的输入
把count<>''的数据在adoquery2中select出来。怎么办?

解决方案 »

  1.   

    不明白你上面的意思,
    我基本理解是这样,看是不是:
    adoquery1.sql.clear;
    adoquery1.sql.add('select * from aaa ');
    adoquery1.open;
    adoquery1.first;
    while not adoquery1.eof do 
    begin
       adoquery2.sql.close;
       adoquery2.sql.add(insert into table2(field21,field22,...) values ('''+adoquery1.fieldbyname('field11')+''','''+adoquery1.fieldbyname('field12')+''')...);
       adoquery2.ExecSQL;
       adoquery1.next;
    end;
      

  2.   

    为什么要把adoquery1的集合作为adoquery2的输入呢?直接用adoquery2对数据库进行操作就可以了,
    在adoquery1的sql语句后面加个count<>'' 的条件就可以了。
      

  3.   

    当然不行,因为count是新加的
      

  4.   

    adoquery2.clone(adoquery1)
    后怎么样把count='' 的过滤掉后在dbgrid中显出?
      

  5.   

    把adoquery1的输出到一个datasource中在用adoquery2在这个datasource中查询!