with query1 do 
close;
sql.clear;
sql.select a1,b1,c1 from table1 where number = 1;
open;第一次,我要显示number=1 的各个字段;第二次,我想同时在DBgrid中显示number=1和number=5 的各个字段,怎么实现?

解决方案 »

  1.   

    你的意思是query还是只select 5的而dbgrid同时显示1和5的?数据感知的空间都不能这么做,数据量不大的话listview和stringgrid都可以
      

  2.   

    第二次with query1 do 
    close;
    sql.clear;
    sql.add(select a1,b1,c1 from table1 where number = 1 union select a1,b1,c1 from table1 where number = 5);
    open;
      

  3.   

    还是这样好第二次with query1 do 
    close;
    sql.clear;
    sql.add(select a1,b1,c1 from table1 where number = 1 or number = 5 order by number);
    open;
      

  4.   

    比如,要显示若干个电机的数据,数据包括电流、电压、功率因数、有用功、无用功等等,对于1号电机的数据用上述程序(select MAX(电流)、MAX(电压)... where number = 1 )显示在DBgrid中。再输入要查询的电机号(加入为5),将上述字段添加到DBgrid中,而number=1的电机数据并不消失,依次显示各个电机的数据...兄弟们,如果DBgrid不能实现,那怎样才能实现上述功能呢?先谢了!
      

  5.   

    将SQL语句作成动态的字符串
    没输入一次条件就在后面加上一个条件字符串
    sql.add( 'or number=:vnumber');
    parameters.paramByname('vnumber').value:=yourNumber;最后加上
    sql.add('order by number');
      

  6.   

    可以实现,用一个变量记录查询的次数
    var 
      K := 0 
    if k = 0 then 
    begin
      sql.add(select a1,b1,c1 from table1 where number = 1);
    end
    else
    begin 
      sql.add(select a1,b1,c1 from table1 where number = 1 union all select a1,b1,c1 from table1 where number = 5);
      K = K + 1; end;
      

  7.   

    这在dbgrid好象不行,如果改用clientdataset作为数据的存放就可以,方法:把dbgrid连接到clientdataset,然后调用clientdataset的appenddata就可以把新的数据添加进数据集。
      

  8.   

    标准答案:
    where Number in(1,5)