首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > VFP >

在vfp中,distinct和group最多可以区分多长的字符串解决方法

2012-03-18 
在vfp中,distinct和group最多可以区分多长的字符串在vfp中,用distinct对数据去除重复时候或者用group对数

在vfp中,distinct和group最多可以区分多长的字符串
在vfp中,用distinct对数据去除重复时候或者用group对数据进行分组时候发现这样的现象:如果字符串太长(例如140字节),就会把仅仅前面部分相同的字符串认为是相同的字符串。不知道是不是vfp区分不同字符串的能力有限?如果有限制,那么限制是多少?
这种情况可以把比较长的字符串拆分成两个进行比较,但是这样会使编程变得繁琐很多,不知道有没有什么好的方法来处理这个问题?

[解决办法]

探讨
在vfp中,用distinct对数据去除重复时候或者用group对数据进行分组时候发现这样的现象:如果字符串太长(例如140字节),就会把仅仅前面部分相同的字符串认为是相同的字符串。不知道是不是vfp区分不同字符串的能力有限?如果有限制,那么限制是多少?
这种情况可以把比较长的字符串拆分成两个进行比较,但是这样会使编程变得繁琐很多,不知道有没有什么好的方法来处理这个问题?

[解决办法]
……
挺郁闷的,再次试了一下,发现:
还是串长度的问题!
当字符串的有效长度(不包含前导、后导空格)达到120及以上的时候,结果就会很奇怪,说奇怪的意思是结果不可预料,可能正确,也可能不正确!
而只要串的有效长度小于120,也就是最大119时,结果都没问题!

至于原因不明!


[解决办法]
是否 DBCS 与字段内容无关,vfp 的表默认与操作系统是否 DBCS 有关,sql server 则在定义数据库时可以改变。

先改变字段排序规则似乎有效:
Set Collate To GENERAL
Set Collate To MACHINE
select dist * from ...

热点排行