filter在数据库中的怪问题!--求解(100分)

  • 主题发起人 主题发起人 wzs
  • 开始时间 开始时间
W

wzs

Unregistered / Unconfirmed
GUEST, unregistred user!
发现Filter属性怪问题!!
在Access 中
ADO方式:
1.用ADOQuery对象 :
Filter :='a >''123'' ' 执行出错
2.用ClientDataSet对象:
Filter :='a =''123*'' ' 结果有误
--------------------------------------
有何解决办法?!
 
我给你说个笨办法:因为filter的值只能是string
说以你可这样:s:='a>'; s:=s+'123'; filter:=s;
你试试行不行
 
具体点!! 说说为什么 ! 什么道理
 
每个数据库的SQL解释不一样,我没怎么用过access,
你试试下面怎么样?
Filter :='a >'“123”' '
 
1.用ADOQuery对象 :
Filter :='a >'+#39+'123'+#39
2.用ClientDataSet对象:
Filter :='a ='+#39+'123*'+#39

 
lujr说的没错
在前面加
Filtered := True;
 
你用的一定是Access2000,所有文字字段均为ftWideString类型==》
Delphi的Bug,你用TClientDataSet.Filter会得出错误结果,用Like则报错。

AdoQuery: 用 Filter = 'a like ''123%'''
ClientDataSet: 用OnFilterRecord事件自己作Filter
 
Filter :='[a] >''123'' ' 应该可以
 
不行,不行!!
还有什么方法!

lld :思路不错!
问题是我不可能因为这样改变所以的程序!


 
用ADOQUERY,ADOTABLE
FILTER:='A LIKE ''123*'''
 
多人接受答案了。
 
后退
顶部