DM:=trim(inputbox('输入名称','请输入名称',''));    //输入要查询的名称 
      {with table1 do 
            begin 
                filtered:=false; 
                filter:=''; 
                filter:='charnam like '+QuotedStr('%'+Edit1.Text +'%'); 
                filtered:=true;}     with Table1 do 
    begin 
        if(not Table1.Locate('CHARNAM',DM,[loCaseInsensitive])) Then 
            ShowMessage('无符合条件的记录'); 不知道怎么做成近似查询,不太懂TABLE 请高手指点下!!!谢谢

解决方案 »

  1.   

    改用Query,写sql语句,还是用like进行模糊查找,filter中不支持复杂的查询及筛选
      

  2.   

    adoquery.close;adoquery.sql.clear;adoquery.sql.test:='select * from xxx where charnam like '+''''+'%'+quotedstr(edit1.text)+'%'+'''';
    adoquery.open;
      

  3.   

    这个效率太低了
    用SQL语句好得多。
    var
      SQL : string;
    begin
      adoquery.active := False;
      sql := 'select * from xxx where chrname like '+quotedstr(edit1.text)+'%'+''''; 
      adoquery.sql.text := sql;
      try
        adoquery.open;
      except
        showmessage('打开失败');
      end;
    end;