是TABLE中的FILTER吗???
好像不支持LIKE吧. 可以把这些语句写到TQUERY中去 作为条件WHERE...
好像不支持LIKE吧. 可以把这些语句写到TQUERY中去 作为条件WHERE...
解决方案 »
- 关于INI文件的问题?如何判断INI文件已经存在?
- 怎样将Clientdataset存在本地硬盘XML文件中的数据传回数据库。
- 在ACESS中insert into TblName (*)select * from Sourcetablename出错为何?
- 怎样才能使Listview(vsreport类型)的column不能左右拖动?
- 截取固定长度的字符串中含有汉字时怎么处理
- 小问题
- 限制回复长度,感觉上极为不爽,郁闷。。。
- 向各位请教一个关于软件打包的问题!
- 各位大哥 Delphi5 中有没有时间相减的好办法,谢了先!!
- 哪里有quickreport 3.06可下载?谢谢!
- 关于StringGird?
- 一个菜问题:关于怎么取整数取余数? 谢谢!
把*放到外面用引号引起来。
SQL可以这样写:select * from tablename where sName like :param1 OR sName like :param2 AND age like:param3
在Query或dataset打开前,填写指定的参数(如果是模糊查询可在参数上加入通配符)
xxx.Filter := 'sName like ''王%'' OR sName like ''刘%'' AND age = 16';//if 事实 > 雄辩 then
// 调试调试
//else 我闪;
-----
filter = 'sName like ' + '''' + '王*' + '''' + 'OR sName Like ' +
'''' + '刘*' + '''' + 'and age= 16';我假设你是要在程序里拼串,而且sName是字段名.
然后自己用
ShowMessage(Filter.Text);
看看结果是不是:SName Like '王*' OR SName Like '刘*' And age=16
多试试就知道其中的原理
和 filter = "sName like '刘*' AND age = 16" 都可以过滤。但加到一起
fliter = "sName like '王*'OR sName like '刘*' AND age = 16"
却不能过滤!
< Less than
> Greater than
>= Greater than or equal to
<= Less than or equal to
= Equal to
<> Not equal to
AND Tests two statements are both True
NOT Tests that the following statement is not True
OR Tests that at least one of two statements is True
+ Adds numbers, concatenates strings, ads numbers to date/time values (only available for some drivers)
- Subtracts numbers, subtracts dates, or subtracts a number from a date (only available for some drivers)
* Multiplies two numbers (only available for some drivers)
/ Divides two numbers (only available for some drivers)
* wildcard for partial comparisons (FilterOptions must include foPartialCompare)
fliter := 'sName="王*" OR sName="刘*" AND age=16';
fliter := "(sName like '王*') OR (sName like '刘*') AND age = 16"
Table1.Filter := '(NAME=''A*'' OR NAME=''O*'') AND SIZE=2';
Table1.Filtered := True;
另外,你那样写我这也不行。但这样写可以
"(Name like'a*' AND Size =2)OR(Name Like'b*' AND Size =2)"
还希望你帮我想想这是怎么回事。分少还可以再加给你:)
不用Filter,在DataSet的OnFilterRecord中写代码也可以。
下面就是例子,我测试SQL Server的Northwind数据库的Orders表
procedure TForm1.ADOQuery1FilterRecord(DataSet: TDataSet;
var Accept: Boolean);
var
a: Integer;
b: string;
begin
//(CUSTOMERID like 'V*' OR CUSTOMERID like 'H*')
a := DataSet.FieldByName('ShipVia').AsInteger;
b := DataSet.FieldByName('CustomerID').AsString;
Accept := ((b[1] = 'V') or (b[1] = 'H')) and (a = 2);
end;怎么回事,我不清楚。因为我不常用ADO。
Filtered:=True