怎么在ADO数据集中实现象WORD一样实现模糊查询?请高手给出源代码 (100分)

  • 主题发起人 学海小妹
  • 开始时间

学海小妹

Unregistered / Unconfirmed
GUEST, unregistred user!
怎么在ADO数据集中实现象WORD一样实现模糊查询?查询字段是选择(我已实现),
要查询的字符串由用户输入,实现向下,向上分别模糊查询!
 
select * from XXX where XXX like '????'
 
select * from atable
where afield like "%Keyword%"
 
SELECT YP_Name, YP_PYM2, YP_Unit FROM YP_YKStock WHERE YP_PYM2 LIKE ''%' + edtPYM.Text + '%'' ;
 
补充:实现象WORD一样,可以输入想查询的字段,实现向下,向上模糊查询!
 
用LOCATE函数:
function Locate
(const KeyFields: string;const KeyValues: Variant; Options: TLocateOptions)
: Boolean; override;

KeyFields:字段名(可以多个)
const以:字段值(可以是精确或模糊)
Options:(loCaseInsensitive, loPartialKey)
loCaseInsensitive不分大小写
loPartialKey 局部匹配 和 like '%key%'作用一样

该函数适合一个个的查找数据!!
 
用户由 Edit1 输入
Query.SQL.Add('select * from TABLENAME where XXXX like '+'''%'+Edit1.Text+'%''');
 
不过,这也有一个问题,如果用户输入了引号,就会出现问题
 
infopower4000
看他的源代码 wwfltdlg.pas 部分,支持全文模糊检索
 
顶部