在Delphi中locate不能实现模糊查询定位,请各位大哥、大姐们教我怎样才能实现模糊查询定位呢?要比较简单的方法噢。

解决方案 »

  1.   

    用findnearest方法,或用ADOQUERY执行sql语句,在查询值前后加%号:
    例:
    var key:string
    begin
    ADoQuery1.close;
         AdoQuery1.SQL.Clear;
         AdoQuery1.Sql.Add('select * from ' +Table+ ' where ' + key +' like "%'+edit1.Text+'%"');
         AdoQuery1.open;
      

  2.   

    indnearest方法要知道一个ID值做参数
      

  3.   

    locate中的参数没有不完全匹配吗?
      

  4.   

    Locate只支持Table呢,对于TQuery好象无效呢!试试Gotonearest或者干脆一个个查!
      

  5.   

    你非要用LOCATE定位的话,换个思路,另外用一个QUERY使用模糊查询得到KEY值
    ,然后再用LOCATE定位。当然,就存在匹配条数的问题了
      

  6.   

    用locate没有问题的,最后一个参数用loPartialKey,如果没有定位到,那就是程序其他方面的问题,比如主键索引之类的
    function Locate(const KeyFields: String; const KeyValues: Variant; Options: TLocateOptions
    ): Boolean;loPartialKey
      

  7.   

    用adoquery多好呀
    for example:
    adoquery1.sql.clear;
    adoquery1.sql.add('select * from bbb where xxx like xxx');
    adoquery1.open;
    ok!!!