SQL Server: переводы кодовых страниц не поддерживаются для текстового типа данных

При вставке текста в столбец TEXT в SQL Server с помощью ADO я получаю сообщение об ошибке:

Переводы кодовой страницы не поддерживаются для текстового типа данных. Вылет: 1257 Прилет: 1252.

Это правда, что я изменил свою кодовую страницу Windows на 1257 (на эстонском языке).

Мой вопрос: как SQL Server узнает, на какой кодовой странице я работаю?

Все строки, отправляемые на сервер и с сервера, отправляются как широкие (unicode) строки. Затем на сервере SQL Server принудительно помещает строку Unicode в столбец TEXT (не NTEXT). Текстовый столбец настроен на использование кодовой страницы сортировки 1252.

В исходной строке нет символов, выходящих за пределы кодовой страницы Windows 1252. Даже если бы это было, как SQL Server узнает, что я использую кодовую страницу 1257?

Я пробовал профилировать свое соединение с SQL Server, и я не вижу ничего похожего на то, что клиент идентифицирует свою кодовую страницу с сервером.


person Ian Boyd    schedule 15.12.2009    source источник


Ответы (1)


Надеюсь, я не прав, и это SQL Server 2000 до SP3 ...

Исправлено в SP3, см. KB 317956

person gbn    schedule 15.12.2009
comment
К сожалению, вы правы. я понятия не имею, как этот недавно установленный виртуальный сервер может все еще находиться в RTM после всех этих дней ... (v 8.00.194) - person Ian Boyd; 15.12.2009
comment
Хотя мне все еще любопытно, как возникает эта проблема - если сама Microsoft не объяснит в своей статье в базе знаний, я сомневаюсь, что когда-нибудь увижу объяснение. +1, ответ. - person Ian Boyd; 15.12.2009
comment
RTM? установите SP4 и посмотрите, что произойдет ... это ошибка, исправленная около 7 лет назад в продукте 10-летней давности - person gbn; 15.12.2009
comment
Да да да. Сегодня вечером, после 17:00. - person Ian Boyd; 15.12.2009