有两个edit5,edit10输入框  名称是job_id,job_name  现在要查找,可以查id,也可以找job_name,只有一个查找按钮

解决方案 »

  1.   

    用模糊查询,根据两个text中是否有值,去组合sql 语句
      

  2.   

    adoquery1.sql.text:= 'select * from table1 where job_id like ''%'+trim(edit5.text)+
                        '%'' and job_name like ''%'+trim(edit10.text)+'%''';
      

  3.   

    帖子重复了~~
    with qry1 do
          Qry1.Close;
          Qry1.SQL.Clear;
          Qry1.SQL.Add('SELECT * FROM table where job_id= '+QuotedStr(edit5.text)+' or job_name= '+QuotedStr(edit10.text));
          Qry1.Open;
      

  4.   

    借用2楼的!
    adoquery1.sql.text:= 'select * from table1 where job_id like ' + QuotedStr('%'+trim(edit5.text)+
                   '%') + ' or job_name like ' + QuotedStr('%'+trim(edit10.text)+'%');
      

  5.   


    with aodquery1 do
    begin
        close;
        sql.Clear;
        sql.add('SELECT * FROM table where job_id=:tmpjob_id or job_name=:tmpjob_name');
        parameters.parabyname('tmpjob_id').value:=trim(edit5.text;
        parameters.parabyname('tmpjob_id').value:=trim(edit10.text;
        open;
    end;
      

  6.   

    模糊的就这样:
    with aodquery1 do
    begin
        close;
        sql.Clear;
        sql.add('SELECT * FROM table where job_id like :tmpjob_id or job_name ike :tmpjob_name');
        parameters.parabyname('tmpjob_id').value:='%'+trim(edit5.text)+'%';
        parameters.parabyname('tmpjob_id').value:='%'+trim(edit10.text+'%';
        open;
    end;
      

  7.   

          Qry1.SQL.Clear;
          Qry1.SQL.Add('SELECT * FROM table WHERE 1=1 ');
        if trim(edit5.text)<>'') then
          Qry1.SQL.Add(' and job_id= '+QuotedStr(edit5.text));
         if trim(edit10.text)<>'') then  
          Qry1.SQL.Add(' and job_name= '+QuotedStr(edit10.text));
          Qry1.Open;