怎么做到N个EDIT随意结合查询
每个都有可能是空的
SELECT * FROM ??? WHERE A LIKE EDIT1。TEXT+‘%’ AND B LIKE EDIT2。TEXT+‘%‘AND AND N LIKE EDITN-1。TEXT+‘%‘’
我想这样不行的吧

解决方案 »

  1.   

    with adoquery1 do
        begin
           close;
           sql.clear;
           sql.add('select * from ???');
           if trim(edit1.text)<>'' then
              sql.add('where a like ')+trim(edit1.text)+'%';
           if ......    //where在什么地方加可以用一个布尔值来判断!
              .....
            open;
         end;
      

  2.   

    组合查询主要是SQL语句的where的书写。
    你必须考虑多方的因素。
    上面的就不错
      

  3.   

    建议你用一常字符串来记录条件
    我不是发给你了吗?
    为了省去判断是否为第一个条件,这么写吧
    with adoquery1 do
        begin
           close;
           sql.clear;
           sql.add('select * from where 字段名<>...');//第一个条件在任何情况下都是满足的,这里为的是不用在后面有那么多判断。
           if trim(edit1.text)<>'' then
             begin
              sql.add('and a like:bs1');
              parameters.parabyname('bs1').value=trim(edit1.text);
             end;
    ..........
         end;
      

  4.   

    建议使用WNQueryEx控件,告诉我你的信箱,发一个给你
      

  5.   

    with adoquery1 do
        begin
           close;
           sql.clear;
           sql.add('select * from ??? where 1=1');
           if trim(edit1.text)<>'' then
              sql.add(' and a like ''%'+trim(edit1.text)+'%''');
           if ......   
              .....
            open;
         end;