2012-04-19 17 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

相关问题