fllx和flzlx均为整型,但在过滤时却出现问题.AQ_FLwx.Filter:='fllx<6 and flzlx=0'; //该句在程序执行时OKAQ_FLwx.Filter:='fllx1=3 and flzlx1>0'; //该句在执行时出现'参数类型不正确,或不在可以接受范围之内,或与其他参数冲突 '在运行环境为:Win2000 单机版、 Delphi7.0下会出现该问题,但在Win2003 或win2000 server版中测正常!大家是否遇到过此问题? 求解!
调试欢乐多
换一下位置:
AQ_FLwx.Filter:='flzlx1>0'and fllx1=3;
试试
变量1:='fllx1=3 and flzlx1>0'
AQ_FLwx.Filter:='fllx1=3 and flzlx1>0'
AQ_FLwx.Filter:=AQ_FLwx.Filter+' and flzlx1>0 and fllx1=3 ';
我将AQ_FLwx.Filter:='fllx1=3 and flzlx1>0';
改为AQ_FLwx.Filter:='fllx1=3 and flzlx1=0'; 或flzlx1<0 均没有问题,就是有大于时出现问题!
Operators Precedence
@, not first (highest)
*, /, div, mod, and, shl, shr, as second
+, -, or, xor third
=, <>, <, >, <=, >=, in, is fourth (lowest)
==========================================================
在fllx、flzlx、fllx1、flzlx1 均为AQ_FL中字段,并属于数值型,以下代码是楼主想要表达的。
以后书写代码的时候记得缩进和空格,可读性是必要的。
在无法摸清优先级的时候,括号能帮你解决这种问题,反正编译器会帮你优化掉不必要的括号。
AQ_FLwx.Filter := '(fllx < 6) and (flzlx = 0)';AQ_FLwx.Filter := '(fllx1 = 3) and (flzlx1 > 0)';
AQ_FLwx.Filter := '(fllx < 6) and (flzlx = 0)'; //注:运行OK
AQ_FLwx.Filter := '(fllx1 = 3) and (flzlx1 > 0)'; //只要有大于号均不行如果试着改为以下运行:
AQ_FLwx.Filter := '(fllx > 6) and (flzlx = 0)'; //这句改为有大于号则不正常
AQ_FLwx.Filter := '(fllx1 = 3) and (flzlx1<0)'; //这句如果改为不包括大于号则正常再次说明:该问题在Win2000server+D7运行均没有问题,在Win2000单机版下才会出现该问题!有环境的测试下便明白!