Posted on 2006-09-02 15:57
奔跑的阿甘 閱讀(1762)
評論(0) 編輯 收藏 引用 所屬分類:
SDK/MFC
如何解決“Selected Collating Sequence Not Supported”問題
Michael 2006年9月2日
在Microsoft Access 97中文版下創建的數據庫,放在Windows XP英文版下,執行SELECT語句時出現標題所示的錯誤。
執行SELECT語句的客戶程序是采用ADO訪問數據庫的。
為了解決這個問題,必須要首先了解數據庫的一個屬性,它叫“數據庫排序次序”(Database Sorting Order)。在Microsoft Access的“工具”->“選項”->“常規”->“新建數據庫排序次序”提供了該屬性的設置,在英文版Access中為"Tools"->"Options"->"General"->"New Database Sort Order"。注意:必須要新建或者打開一個數據庫才能夠設置這個屬性。
那么這個"Collating Sequence"到底是個什么東西,為什么會出現"collating sequence not supported"錯誤呢?
"Collating Sequence"實際上是個用于字符排序的序列,我們可以把它理解為一個表,給定一個字符,通過這個表可以查找到這個字符的序列號(范圍從00-FF),繼而通過這個序列號,我們可以比較兩個字符在數據庫中的前后順序。所以,一個數字的排序總是比字母A-Z低,這在不同的"Collating Sequence"中可能為真也可能為假。當然,一個數字(x'30'-x'39')的代碼值(Code Point)總是比字母A-Z(x'41'-x'5A')低,這是永遠正確的。
關于"Collating Sequence"的概念可以參考以下鏈接:
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.ibm.db2.udb.doc/ad/c0006812.htm
Microsoft Jet數據庫引擎用到了四個Collating Sequence表,點擊以下鏈接獲得詳細信息:
http://support.microsoft.com/default.aspx?scid=kb;en-us;129719
那么該如何解決這個問題呢?
有兩種方案:
第一種:更新數據庫
設置“新建數據庫排序次序”屬性為"General",然后新建一個新的數據庫,并導入老數據庫的所有表。
該屬性的默認值是當前操作系統的默認語言版本(注意不是操作系統的語言版本)。
第二種:更新操作系統
既然操作系統不支持該數據庫的Collating Sequence,就安裝一個多語言支持,當然操作系統必須支持你創建數據庫時使用的語言,比如OS需要支持中文字符集。
可以參考以下文章:
http://support.microsoft.com/default.aspx?scid=KB;en-us;q202150
[全文完]