如何为多个TZquery运行Zeos过滤器代码?

时间:2013-11-05 17:06:00

标签: delphi zeos

我曾经使用单个代码进行过滤查询,并尝试使用多个TZquery,但它不起作用。所有表都包含client_id列,我希望代码在TEdit上搜索具有客户端ID的信息,它适用于单个TZquery,但不适用于多个。感谢。

以下是我使用的代码:

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 := '';

1 个答案:

答案 0 :(得分:0)

我只在filter为false时更改过滤条件。所以我会按如下方式编写代码

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;