一个关于d6的filter的问题(也许有点难)(200分)

  • 主题发起人 主题发起人 nids
  • 开始时间 开始时间
N

nids

Unregistered / Unconfirmed
GUEST, unregistred user!
一个关于d6的filter的问题(也许有点难)。
首先,我认真阅读了delphibbs.com截至2002-06-12的离线数据库中的相关文件,知道也许可以用 Dataset 的 OnFilterRecord 解决这个问题。或者使用sQL语句,当然,这些解不是我要的,要不我就不来问这个问题了;呵呵。下面是问题:
1。这个是一个数据库系统。
2。Tquery控件+Tdatasource控件做数据源。一个TdataGrid显示数据。
3。一个TComboBox和一个Tedit作为查询的条件输入.其中combobox中为字段名称
一个按钮触发查询事件,代码的概要是这个样子的:
begin
case combobox.itemindex of
0:;
1:
begin
query1.filtered:=false;
query1.filter:='field1=' + Quotedstr(edit1.text + '*');
query1.filtered:=true;
2:{这里的代码类似于1:后面的,就是field1变成field2};
{
这里还有3:,4:....
}
end
end
程序运行成功!
问题是,我在combobox的最上面添加了一个'全部',意思是使得任意一个字段有edit1.text就有query1的结果集。
那么,我在0:后面应该添加如何的代码那?
最好做个试验,我使用如下的代码不行:
query1.filtered:=false;
query1.filter:=('field1=' + Quotedstr(edit1.text + '*')) or
('field2=' + Quotedstr(edit1.text + '*')) ;
query1.filtered:=true;
 
query1.filter:=('field1=' + Quotedstr(edit1.text + '*')) or
('field2=' + Quotedstr(edit1.text + '*')) ;

应些为:
query1.filter:=('field1=' + Quotedstr(edit1.text + '*')) + ' or
( field2=' + Quotedstr(edit1.text + '*')) ;

再逝世,保证行!我通过....
 
更正楼上的:
query1.filter:='(field1=' + Quotedstr(edit1.text + '*')+')'
+ ' or (field2=' + Quotedstr(edit1.text + '*') +')';
 
query1.filter:='field1=' + Quotedstr(edit1.text + '*')+'or field2=' + Quotedstr(edit1.text + '*');
这样应该是可以的,你的语句好像编译就通不过呀
字符串型不可以or的
 
一个关于交通的问题(也许有点难)。
我想在一个星期之内由广州去北京.
首先,我仔细打听的许多前辈,知道也许做火车,汽车或者飞机都可以到,当然,这些解不是我要的,要不我就不来问这个问题了;呵呵。(你再往后翻吧,我就是不换行,气死你)
 
用like % 不是“=”
 
多人接受答案了。
 
后退
顶部