2012-04-19 1 views
0

У меня есть база данных на SQL Server.Как читать русские символы из базы данных?

У меня есть таблица, где я Demo вставленной текст на русском языке в столбец типа Nvarchar

Теперь я хочу, чтобы читать русский текст в мое приложение Delphi, где я хочу, чтобы хранить его в строку.

Должен ли я установить свойство Charset для запроса ADO и т. Д.?

Любые другие идеи приветствуются.

Заранее спасибо

+0

Некоторые треки здесь, возможно: http://stackoverflow.com/questions/4819406/how-to-use-delphi-xes-tencoding-to-save-cyrillic-or-shiftjis -text-to-a-file –

+0

@DavidBrabant: это для delphi XE, а не delphi 7 – CyprUS

+0

@CyprUS - да, но в комментариях к этому вопросу они также упоминают 'WideCharToMultiByte', который должен помочь вам в решении. –

ответ

0

Поскольку не было никаких ответов на этот, я отвечу сам. Используя SetThreadLocale(<language id>), я смог установить идентификатор языка потока до 1033 (для английского). Поскольку мой DB был установлен в 1033 id, отображаемый текст теперь отображается правильно. Надеюсь, это поможет другим.

Чтобы правильно ввести символы Юникода в базу данных, используйте префикс N для столбцов, в которые должны вводиться строки Юникода. Для получения более подробной информации, посмотрите here

+0

Не будет ли на вашем БД другого языка, кроме русского? 'NVarchar' - это Юникод. вы должны читать и писать «WideString» в БД и из него. Мне тяжело работать с D7. но ADO, если он полностью способен работать с Unicode, а для элементов управления, поддерживающих DB, можно использовать, например, Tnt Controls. – kobik

+0

мой плохой, я забыл добавить это. Теперь я отредактирую ответ. – CyprUS