用下面的like语句查询数据库,只能查出第一个like的数据,以后的like都起不到查询效果,但也不报错。       with qryTjJhmx do
      begin
        Close;
        SQL.Clear;
        SQL.Text:='select * from Spjinhuo where czdate between :a and :b and (gys_name like :spname) or (jhdh=:spname) or (sp_Name like :spname) or (SP_NameJp like :spname) order by id desc';
        Parameters.ParamByName('spname').Value:='%'+Edit3.Text+'%';
        Parameters.ParamByName('a').Value:=Formatdatetime('yyyy-mm-dd',DateTimePicker5.Date);
        Parameters.ParamByName('b').Value:=Formatdatetime('yyyy-mm-dd',DateTimePicker6.Date+1);
        Open;
      end;

解决方案 »

  1.   

    SQL.Text:='select * from Spjinhuo where czdate between :a and :b and ((gys_name like :spname) or (jhdh=:spname) or (sp_Name like :spname) or (SP_NameJp like :spname)) order by id desc';多加括号试试, 你最好是在SQL查询分析器里写好语句,再放到Delphi中
      

  2.   

    between and要单加括号,后面的也要总括到一起
      

  3.   

    多个模糊查询是可以的,我看应该是括号的问题,把跟踪一下,把语句粘到sql语句查询器中试一下.或者在查询器中写好.再改参数.