我想知道为什么在ADS中没有不区分大小写的Unicode字符字段类型?为什么ADS中没有NVarCiChar字段类型?
虽然您可以将NVarChar字段的索引整理为不区分大小写,但使用WHERE field = 'HeLlO WoRlD'
的简单查询找不到值'Hello World'
?
我知道WHERE field = 'HeLlO WoRlD' COLLATE ads_default_ci
的作品,但这样做每一个比较不是一种选择。
CiChar字段类型不支持Unicode(除非您在那里存储导致其他问题的UTF-8字符串)。
好的,但我怎样才能指定一个'使用Delphi或ARC32的SQL语句句柄'不区分大小写的Unicode排序?我想避免在任何地方写COLLATE。 –
在ARC中,右键单击连接,选择连接属性,单击“整理”旁边的展开按钮,选择适当的Unicode区域设置并选中“Unicode区分不敏感搜索”复选框。整理应该说类似“ansi:en_us_ads_ci”。 _ads_ci后期修复意味着不区分大小写的排序规则。 –
在Delphi中,您可以控制连接级别或语句级别的排序规则。要设置per语句句柄归类,请使用TAdsQuery.AdsTableOptions.AdsCollation属性。我只注意到它没有记录在我们的帮助文件中。它是“AnsiCollation:UnicodeCollation”格式的字符串属性。你可以使用上面的例子。一般用法在这[链接](http://devzone.advantagedatabase.com/dz/webhelp/Advantage11/master_collation_support.htm) –