在使用ClientDataSet作过滤时,发现它不支持中文,有解决的办法吗?(100分)

  • 主题发起人 主题发起人 程云
  • 开始时间 开始时间
adodb.pas 1227行
Result := Length(PWideString(@TVarData(Value),VOleStr)^);
将PWideString改为PAnsiString
然后重新编译一下,哈哈,接分
 
是ADODB吗,用的好像是Tclientdataset啊!继承关系?我得查查资料了
 
放心,绝对可行.
 
我也遇到过这个问题,解决办法和whsunbin的差不多:
我用的是delphi7 + ms sql2000,将sql2000中的nchar或nvarchar字段,统统改为char后就完全正常了。Access中可能存在类似的问题。
 
我使用D7的TCLIENTDATASET仔细测试的结果:
一个字段,类型为TStringField,不是TWideStringField,
其内容为 "我喜欢呆儿肥"
Filter的内容为:
MyField like '%X%'
当X为一个汉字的时候,过滤结果为空。当X为2汉字的,或者3、4个汉字的时候,能够正常过滤出来。
 
我也发现了这个问题,还没找到方法,fima的方法
Result := Length(PWideString(@TVarData(Value),VOleStr)^);
将PWideString改为PAnsiString
我试过,不灵!!!有人有好的简单的解决方法吗?
 
我也关注
我现在也遇到这个问题了,那位大侠做出来了吗?
 
我遇到同样问题,以上的方法我式过不行,呵呵
 
在ONFilterRecord事件中写过滤代码就好
 
希望可以解决问题的高手,提供给大家思路。
我使用D7+accesss+socketserver遇到同样问题。
迷惑中......
 
程云,你哭了没有?[:D]

=着你解决,呵呵
 
我也遇到同样的问题,有谁可以解决吗?
 
后退
顶部