2012-04-19 108 views
0

我在SQL Server中有一個數據庫。如何從數據庫中讀取俄文字符?

我有一個表Demo,我插在俄文本類型Nvarchar

現在我想讀俄文本到我的Delphi應用程序,我想將它存儲到一個字符串的列。

是否必須設置ADO查詢等的任何字符集屬性?

歡迎任何其他想法。

在此先感謝

+0

這裏有些曲目,也許:http://stackoverflow.com/questions/4819406/how-to-use-delphi-xes-tencoding-to-save-cyrillic-or-shiftjis - 文件到文件 – 2012-04-19 10:34:16

+0

@DavidBrabant:這是爲delphi XE,而不是delphi 7 – CyprUS 2012-04-19 10:35:46

+0

@CyprUS - 是的,但在這個問題的評論中,他們還提到'WideCharToMultiByte'應該引導你一個解決方案。 – 2012-04-19 12:32:31

回答

0

由於沒有答案,我會自己回答。使用SetThreadLocale(<language id>)我能夠將線程的語言ID設置爲1033(英語)。由於我的數據庫設置爲1033 id,顯示的文本現在可以正確顯示。我希望它能幫助別人。

要正確輸入Unicode字符到數據庫,請使用前綴N作爲輸入Unicode字符串的列。欲瞭解更多詳情,請看一下here

+0

您的數據庫中是否會有除俄語以外的其他語言? 'NVarchar'是Unicode。你應該在數據庫中讀寫'WideString'。我知道,這對D7來說很難。但ADO如果完全能夠使用Unicode,並且對於數據庫感知控件,則可以使用Tnt控件。 – kobik 2012-05-03 16:32:12

+0

我不好,我忘了補充一點。我現在編輯答案。 – CyprUS 2012-05-04 07:06:00