关于ClientDataSet的Filter的一个问题(200分)

  • 主题发起人 主题发起人 Rannce
  • 开始时间 开始时间
R

Rannce

Unregistered / Unconfirmed
GUEST, unregistred user!
如果一个字段是UNICODE型,即在ClientDataSet中体现为WideStringField,
取数时没有错,但是如果对这个取到的结果的这个UNICODE字段进行Locate或者Filter时,
就会发生问题,不能定位。而相同的情况下,用ADODataSet却没有任何问题。
比如,用一个Provider连接这个ADODataSet和ClientDataSet,
用相同的Filter,ADODataSet正常,ClientDataSet却不能过滤出正常的记录。
如果这个字段的值是英文没有问题,只有值是中文时才会发生这个问题。
[:(][:(!]
 
哈哈,你也遇到这个问题,用的数据库是不是Access数据库,字段是文本类型吧,
如果是,解决办法:1、小于255字节用StringField,需要将ClientDataSet和Provider连接的ADODataSet的字段
类型全部改掉。
2、大于255字节用BlobField,处理同上。
 
以前讨论过!你可以查看一下旧帖。
好像最终的解决方案就是楼上所说的更改数据集的字段类型,把WideStringField改为StringField
 
多人接受答案了。
 
后退
顶部