2010年11月22日星期一

Selected collating sequence not supported by the operating system错误的解决方法(转)


问题的产生:

一套中文下开发的软件,翻译成英文,在从数据库查询时

UserRst.Open
"Select COUNT(UserName) As CNT From UserTable", ADOCnOP, adOpenStatic, adLockOptimistic, adCmdUnknown

在连接一个数据库时

UserRst.Open
"SELECT * FROM UserTable WHERE UserName = '" & txtUserName.Text & "'", ADOCnOP, adOpenStatic, adLockOptimistic, adCmdUnknown

出现这个错误提示

Selected collating sequence not supported by the operating system

尝试解决:

           一开始以为排序方式不被英文系统支持,但是看代码并无特殊排序,排序应该没问题。在英文系统下浏览中文网站时,IE弹出安装中文 Language Pack的对话框,安装后再试程序轻松通过。看来是语言系统的问题,但我们总不能给用户安装一个中文语言包,(那太强盗逻辑了),而且后来我们发现从微软 网站下载的语言包并不支持在WinXP下安装。最后把问题定位在数据库本身上,可能数据库中使用了某些中文信息,再回头看微软的技术解释,看来是MDB文 件默认的排序方式有问题,打开数据库-
>工具->选项->常规 有新建数据库排序次序 明显的是汉语拼音。问题就在这里。

解决方法一(中文系统):

          选择排序次序为常规,然后选择关闭时压缩数据库,或者自己手动压缩,必须压缩数据库否则不能修改这个排序方式,以后新建的数据库也使用这中排序方式。

           重新在英文系统下连接数据库,顺利通过。

解决方法二(英文系统):

1)、打开我的 Microsoft Access ,Open 任意一个文件,然后点"tools",选中 Options,再选 General 项。注意在右下方有 New Database Sort Order下拉框,选中 General。然后关掉该文件。(注意,Options只有在有文件打开的状况下才能使用)
2)、然后"File" --> "New..." 创建一个空白数据文件,然后"file" --> "Get External Data" -- "Import",打开我的老数据库文件将所有的 tables 全部传到新文件来,然后保存新文件。我要做这步是因为我的论坛里已经有许多的数据在里面,我不愿从头再来。如果你在新建论坛,或新建系统时遇到此类问题,大可新建 table,或用 SQL query 写入初始数据。
3)、保存此新文件,然后上传到服务器。

没有评论: