一般不用ADOQuery.Filter作为条件,这次偶然用了一下,竟然出错连连,找了网上很久也不得骑姐。
看到对Filter条件的解释,说 and 两边的结果必须为真,尝试将:
ADOQuery.Filter:='((A=a) or (B=b)) and (C=c)'
显示First chance exception at $749F3EF2. Exception class EOleException with message '参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。'.
改成:
ADOQuery.Filter:='((A=a) and (C=c)) or ((B=b)) and (C=c))'
竟然成功了,在SQL语句中,第一个条件很容易实现的。
也不知道为什么,难道Filter不能识别简易方程式?((A=a) or (B=b)) 的结果也为真啊,哈哈!
另外,很不习惯 '''和''''的写法,建议大家使用QuotedStr(S)达到 'S' 的目的,比较清晰。
有知道原因的,能给解释一下吗?