adoquery的filter中单个字符怎么过滤

jinhx 2009-09-02 03:23:29
adoquery查询成功后units字段有记录:'1011','1012','1021'等等

设置
adoquery.filter := 'units like ''1___''; //字符串是: 1 _ _ _
或者
adoquery.filter := 'units like ''1__1''; //字符串是: 1 _ _ 1
adoquery.filtered := true;
后没有任何记录显示,实际上是有符合条件的记录的

而设置
adoquery.filter := 'units like ''101_'';
或者
adoquery.filter := 'units like ''_01_'';

后就可以有符合条件的记录显示,

这是什么原因呢?
...全文
157 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
jinhx 2009-09-04
  • 打赏
  • 举报
回复
我又测试了几次,下划线也表示多个字符,但只能在两侧,不能在中间
reverzeng 2009-09-03
  • 打赏
  • 举报
回复
路过,学习
jinhx 2009-09-03
  • 打赏
  • 举报
回复
filter 中好像也不能用 substring(unit,1,1) = '1' 这样的函数
jinhx 2009-09-03
  • 打赏
  • 举报
回复
下划线是支持的,但是我测试的结果是只能两侧或一侧的单个下划线,多了不行,中间也不行
我试过在 FilterRecord 事件里进行过滤,结果是可以出来了,但是 recordcount 值永远不变,是未过滤时的值
火龙岛主 2009-09-02
  • 打赏
  • 举报
回复
sorry,不能误导同学!
这是Delphi帮助给出的Filter字符表
Operator Meaning
< 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, adds 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)
火龙岛主 2009-09-02
  • 打赏
  • 举报
回复
filter只支持%吧!
de410 2009-09-02
  • 打赏
  • 举报
回复
adoquery.filter := 'units like ''1_'' and 'units like ''_1_''
bdmh 2009-09-02
  • 打赏
  • 举报
回复
like '1%'
like '10%'

2,497

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧