微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何以通用方式在SQL Server Compact EditionCE中存储唯一的多语言文本?

如何解决如何以通用方式在SQL Server Compact EditionCE中存储唯一的多语言文本?

| 我在DirectTable模式下使用sql Server CE 3.5。 让我们定义字符的唯一性。如果两个字符完全相同(例如\'a \'和\'a \'),则它们相等。诸如\'A \'和\'a \'之类的字符不相等。如果两个字符串以相同的顺序包含相同的字符,则它们是相等的,例如\'foo \'不等于\'ofo \'或\'Foo \'。 现在,请注意,我不在乎ISO委员会所说的内容,我需要非常精确的匹配。目的是在数据库中存储多语言文本(单词)。 问题-问题是怎么做?我对该语言一无所知,一个用户只能存储波兰语词汇中的单词,另一个用户可以同时存储多种语言中的单词(这是有效的)。 如果您认为这个问题不重要,那您就错了。我已经发现sql Server CE将双\等同于单字符\“ß\”,这是完全不可接受的。我发现了一些变通方法,它们迫使比较时进行整理,但是我不能使用它们: 他们假设SQL查询,这对我来说是行不通的,这会让我慢下来 他们事先假设问题是德语,我不能假设这样的事情 我在数据库搜索,但是不使用排序,所以我不在乎显示带有单词的整个表格是否按“正确”的顺序排列。我关心的是当我在表中查找文本时,如果单词真的相等而不是相似,我就会匹配。 解决方法 因为对于当前项目,我需要“昨天”的有效解决方案,所以我将文本字符串字段保留在数据库中而没有任何更改,但是在读取时,我将它们从base64转换为utf8,反之亦然。对于空间有一点点矫kill过正,但是我可以忍受它,并且对于区分大小写的重要操作,我完全独立于MS比较实现,排序规则等。每个单独的Unicode字符都以不同的方式编码。 不过,我想尽一切办法寻求更优雅的解决方案(如果有的话)。     

解决方法

        对于初学者,您可以使数据库区分大小写,因此A <> a。 SQL CE存储unicode,因此将允许您存储所有必需的字符。您是在.NET中进行比较还是使用索引?     

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。