关于filter 复杂过滤的问题 ( 积分: 50 )

  • 主题发起人 主题发起人 xuzhic2001
  • 开始时间 开始时间
X

xuzhic2001

Unregistered / Unconfirmed
GUEST, unregistred user!
with adoqryallpj do
begin
close;
sql.Clear;
sql.add('select * from 员工表');
open;
end;
adoqryallpj.Filtered:=false;
adoqryallpj.Filter:='地区 like '''+edit7.Text+'%'' and 姓名=''张三'''
adoqryallpj.Filtered:=true;
可是总是出现在对应所需名称或序数的集合中未找到项目 的错误,请高手说说这是什么原因,怎么解决,谢谢了,
 
var
sqlStr:String;
begin
sqlStr:='select * from 员工表 where 1=1'
if edit7.Text<>'' then
sqlStr:=sqlStr+'and 地区 like '''+edit7.Text+'%'' and 姓名=''张三''';
with adoqryallpj do
begin
close;
sql.Clear;
sql.add(sqlStr);
open;
end;
end;
 
楼上的方法不能满足我的要求,我只想从数据库里面读一次数据,然后根据不同的条件进行过滤,把满足条件的内容给显示出来
 
把filter用inputbox('','',filter)显示出来,在数据库环境下改成WHERE语句测试
 
测试过了,直接放在sql语句里面就么有任何问题,不知道是什么原因
 
adoqryallpj.Filter:='地区 like '''+edit7.Text+'%'' and 姓名=''张三''';

adoqryallpj.Filter:='地区 like '''+edit7.Text+'*'' and 姓名=''张三''';
 
怎么能和通配符有关?楼上说的没用
 
这个错应该是filter中的字段名没写对
 
adoqryallpj.Filter:='地区 like '+quotedstr(edit7.Text+'%')+' and 姓名='
+quotedstr('张三')
 
adoqryallpj.Filter:='(地区 like '''+edit7.Text+'%'') and (姓名=''张三'')'
 
多人接受答案了。
 
后退
顶部