首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何运行用于多个TZquery的Zeos过滤器代码?

如何运行用于多个TZquery的Zeos过滤器代码?
EN

Stack Overflow用户
提问于 2013-11-05 17:06:00
回答 1查看 2.3K关注 0票数 0

我过去常常使用单个代码来查询筛选器,并使用多个TZquery尝试它,但它无法工作。所有的表都包含client_id列,我希望代码能够使用TEdit上的客户端id搜索信息,它只适用于单个TZquery,但只适用于多个TZquery。谢谢。

下面是我使用的代码:

代码语言:javascript
复制
zquery1.FilterOptions:=[foCaseInsensitive]; 
zquery1.Filtered := Length(Edit1.Text) > 0; 
if zquery1.Filtered then 
  zquery1.Filter := 'client_id like ' + 
       QuotedStr('' + Edit1.Text + '') // Zeos- Syntax 
else 
  zquery1.Filter := '';

zquery2.FilterOptions:=[foCaseInsensitive]; 
zquery2.Filtered := Length(Edit1.Text) > 0; 
if zquery2.Filtered then 
  zquery2.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax 
else 
  zquery2.Filter := '';

zquery3.FilterOptions:=[foCaseInsensitive]; 
zquery3.Filtered := Length(Edit1.Text) > 0; 
if zquery3.Filtered then 
  zquery3.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax 
else 
  zquery3.Filter := '';

zquery4.FilterOptions:=[foCaseInsensitive]; 
zquery4.Filtered := Length(Edit1.Text) > 0; 
if zquery4.Filtered then 
  zquery4.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax 
else 
  zquery4.Filter := '';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-06 05:38:34

只有当筛选为假时,我才会更改筛选条件。所以我将按照以下方式编写您的代码

代码语言:javascript
复制
zquery1.FilterOptions:=[foCaseInsensitive]; 
zquery1.Filtered := false;
if Length(Edit1.Text) > 0 then
begin
  zquery1.Filter := 'client_id like ' +  QuotedStr(trim(Edit1.Text)) ;
  zquery1.Filtered := true;
end;

zquery2.FilterOptions:=[foCaseInsensitive]; 
zquery2.Filtered := false;
if Length(Edit1.Text) > 0 then
begin
  zquery2.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax 
  zquery2.Filtered := true;
end;

zquery3.FilterOptions:=[foCaseInsensitive]; 
zquery3.Filtered := false;
if Length(Edit1.Text) > 0 then
begin
  zquery3.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax 
  zquery3.Filtered := true;
end;

zquery3.FilterOptions:=[foCaseInsensitive]; 
zquery3.Filtered := false;
if Length(Edit1.Text) > 0 then
begin
  zquery3.Filter := 'client_id like ' + QuotedStr('' + Edit1.Text + '') // Zeos- Syntax 
  zquery3.Filtered := true;
end;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19794664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档