Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Поддержка языков MSSQL  [new]
vodolef
Member

Откуда:
Сообщений: 4
"Приветствую! Товарищи помогите вот в каком вопросе:
Имеется база данных в MSSQL Server 2008, в БД табличка у которой есть поля Eng(Английский) и Cn(Китайский),для этих полей установлены Collation Cyrillic_General_100_CI_AS и Chinese_Hong_Kong_Stroke_90_CI_AS соответственно.В полях хранится набор слов на китайском и английском.
Есть тестовая программулька(на Delphi xe3), которая с помощью ADOConnections и Adoquery получает выборку из этой таблицы и загружает их в ListBox. Проблема заключается в том, что китайские иероглифы отображаются в виде вопросов.
Если ListBox заполнить иероглифами в design time, то они отображаются корректно.
Как сделать, чтобы значения отображались были получены из БД правильно?
Это нужно для поддержки многоязычности в другой готовой программе, где все сообщения выдаваемые пользователю хранятся в БД по аналогичному принципу пока только на двух языках русском и английском."
25 май 17, 10:38    [20510468]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка языков MSSQL  [new]
uaggster
Member

Откуда:
Сообщений: 827
vodolef, поля то какие, varchar? nvarchar?
И на клиенте в какую строку пихаете? 1 байт на символ? 2 байта на символ?
25 май 17, 10:46    [20510498]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка языков MSSQL  [new]
cossack5
Member

Откуда:
Сообщений: 496
Collation влияет только на сортировку данных. Поля должны быть NVARCHAR. Иначе проблема в клиенте.

P.S. Не знал, что Делфи умеет в иероглифы.
25 май 17, 12:06    [20510789]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка языков MSSQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7754
cossack5,

так в дельфах нативная поддержка юникода.
25 май 17, 12:20    [20510855]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка языков MSSQL  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Владислав Колосов
cossack5,

так в дельфах нативная поддержка юникода.
ЕМНИП, надо-таки задать тип поля - String или WideString.
Ну, хотя бы проконтролировать, соответствует тип или нет...
25 май 17, 12:23    [20510872]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка языков MSSQL  [new]
vodolef
Member

Откуда:
Сообщений: 4
uaggster, varchar
25 май 17, 12:30    [20510899]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка языков MSSQL  [new]
vodolef
Member

Откуда:
Сообщений: 4
iap, начиная с версии 2009 Delphi был переведен на unicode. Соответствие типов проверено. Есть подозрение что проблема в ADO
25 май 17, 12:33    [20510916]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка языков MSSQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7754
vodolef,

на сервере должен быть nvarchar для юникода.
25 май 17, 12:38    [20510944]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка языков MSSQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 7754
И константы в запросе задавать как N'значение'.
25 май 17, 12:39    [20510951]     Ответить | Цитировать Сообщить модератору
 Re: Поддержка языков MSSQL  [new]
vodolef
Member

Откуда:
Сообщений: 4
uaggster
vodolef, поля то какие, varchar? nvarchar?
И на клиенте в какую строку пихаете? 1 байт на символ? 2 байта на символ?


Спасибо! Поставит вместо varchar nvarchar и все стало отображаться как надо.
25 май 17, 12:40    [20510958]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить