Filter中可否实现模糊查询。(50分)

  • 主题发起人 主题发起人 zmj99
  • 开始时间 开始时间
Z

zmj99

Unregistered / Unconfirmed
GUEST, unregistred user!
Query中用%变量%可以实现模糊查询。
而在Table.Filter中只有‘变量*’可以实现右模糊查询,无左模糊。
不知Filter中可否实现模糊查询。
 
不能左模糊查询。
 
估计不行
 
LiuYangCD 说得对,不过你可以在OnFilterRecord事件来做
 
>>Query中用%变量%可以实现模糊查询。
>>而在Table.Filter中只有‘变量*’可以实现右模糊查询,无左模糊。
>>不知Filter中可否实现模糊查询。

Filter中也可以实现模糊查找的,应采用如下形式
name like "%tom%"
name 是字段名。
 
不过我觉得还是用sql语句要好点。
 
用sql语句灵活且不易造成死锁.
 
写SQL语句
 
没有,改用别的方式
 
table1.filtered:=true;//设置使打开。
table1.close;
table1.open;

table1.onFilterRecord中加入以下代码:
begin
with table1 do
begin
if fieldByName('myField').asString= 'myCondition' then accept:=true
else accept:=false;
end;
end;

即可。然后当你浏览table的时候,都是与'myCondition‘有关的记录。
我觉得filter比sql好用。
 
tab:
我试过了,怎么好像不行,我的D4

glink:
要求的是模糊查询,改一下你的程序如下
var p:pchar;
p:=strpos(pchar(fieldbyname('myfield').asstring),pchar('mycondition'));
if p=nil then accept:=false
else accept:=true
 
同意dedman,可以简化:
procedure tform1.table1onfilter;
begin
accept;=false;
if pos(‘condition’,fieldbyname(‘myfield’).asstring)<>0 then
accept;=true;
end;

 
多人接受答案了。
 
后退
顶部