adoquery.filter 的使用?看似简单,却问题。
我找了资料发现
http://topic.csdn.net/t/20030314/16/1532115.html 里的
5 楼cm1024(cm)回复于 2003-04-01 17:22:58 得分 0 我有一个问题请教:我在BDEQUERY中使用其FILTER属性进行条件筛选时一切正常,但相同的条件拿到ADOQUERY中使用就出现错误,具体情况如下:
1、BDEQUERY和ADOQUERY指向同一个数据库,其中的SQL语句相同;
2、筛选条件如果是以下类型的情况都正确:
(字段1='AAA')
(字段1='AAA') OR (字段1='BBB')
(字段1='AAA') AND (字段2='TTT')
3、但当出现此类情况时就会出错:
((字段1='AAA') OR (字段1='BBB')) AND (字段2='TTT')
4、错误信息很奇怪:
“变量或者类型不正确,或者不在可以接受的范围之内,要不就是与其他数据冲突。”
和我的问题很相似。
我 Filter := 'Col_15=43 or ((col_5<>''一步'' and col_24=''信息中心'') or (col_5<>''一步''))';
Filter := 'Col_15=43';
Filter := '((col_5<>''一步'' and col_24=''信息中心'') or (col_5<>''一步''))';
都是正确的,但
但 Filter := 'Col_15=43 and ((col_5<>''一步'' and col_24=''信息中心'') or (col_5<>''一步''))';
却错了。不知道为什么~~~
[解决办法]
我前两天碰到类似问题,解决办法:
((字段1= "AAA ") AND (字段2= "TTT ")) OR ((字段1= "BBB ") AND (字段2= "TTT "))