Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Некорректное отображение нац.символов в базе sql после экспорта данных из 1с
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
andrew76
Всем доброе утро !

После заливки данных в базу sql через 1с 8.2 в базе sql некоректно отображаются символы нац.алфавита.Вместо определённых символов идёт символ "?".
Это получается только в момент записи данных в базу sql.Сама формируемая строка (выводится на экран) отображается корректно,все символы присутствуют.
Можеn кто сталкивался ? Где копать ?
logist
Кодировка базы данных отличается от "Cyrillic"
andrew76
как лечить ?

Поле в базе sql, куда записываю данные- имеет тип nvarchar.Вроде если в запросе подставить символ 'N' перед записываемой строкой-то должно работать.
sql Ругается в этом случае на синтакстис.
logist
Например, конвертируйте строку перед отправкой в базу.
andrew76
Цитата(logist @ 11.07.16, 12:41) необходимо зарегистрироваться для просмотра ссылки
Например, конвертируйте строку перед отправкой в базу.


можно узнать чем конвертировать?

Может в строке подключения к БД какой параметр есть ?
logist
Цитата(andrew76 @ 11.07.16, 11:12) необходимо зарегистрироваться для просмотра ссылки
Может в строке подключения к БД какой параметр есть ?

В строке подключения не знаю, но на языке sql есть команда SET NAMES которая устанавливает кодировку в которой после подключения будут поступать данные. Если я правильно понимаю, в вашем случае, после подключения к базе надо выполнить "SET NAMES 'cp1251'". Только на копии экспериментируйте.
andrew76
Выдается ошибка следующего содержания 'NAMES' is not a recognized SET option.

код :

ТекстЗапросаADO="SET NAMES 'cp1251'";
Connection.Execute(ТекстЗапросаADO,,128);
logist
Цитата(andrew76 @ 11.07.16, 12:11) необходимо зарегистрироваться для просмотра ссылки
Выдается ошибка следующего содержания 'NAMES' is not a recognized SET option.

Тогда труба дело)) У вас не MS SQL?
andrew76
MS SQL SERVER EXPRESS 2008
Vladal
Цитата(andrew76 @ 11.07.16, 8:38) необходимо зарегистрироваться для просмотра ссылки
Можеn кто сталкивался ? Где копать ?
как лечить ?
1С 8 по умолчанию работает в Юникоде, и отображает в Юникоде.
Каким методом выгружаете? Приведите кусок кода.
Я сохранял скрипты для MS SQL из 1С с явным указанием кодовой страницы ANSI (т.е. 1251 для Windows).

Когда-то тоже сталкивался с этим. Проверял выгруженные тексты с помощью Notepad++, он показывал в какой кодировке файл, и конвертировал в нужную.
Как проверил результат в Notepad++, потом выгрузил "правильно" уже из самой 1С.
andrew76
Наконец-то форум ожил...Проблема решилась применением инструкции N' перед строковым параметром:

Фрагмент кода:

ТекстЗапросаADO ="Insert into tbQarindosh (MainID,Lastname,Firstname,Patronymic,Qarindoshligi,DataRoj,
MestoRoj_country,IshJoyi,BirthTown,YashashJoyi) Values ('" + un + "',N'"+Фам_род+"',.....)

Должно работать с символами национальных алфавитов (Узбекистан,Казахстан,Киргизия,Туркмения) на основе кирилицы.
Vladal
Цитата(andrew76 @ 14.07.16, 11:31) необходимо зарегистрироваться для просмотра ссылки
Наконец-то форум ожил...Проблема решилась применением инструкции N' перед строковым параметром:
помогаешь им тут... а они через три дня приходят и попрекают...

Цитата(andrew76 @ 14.07.16, 11:31) необходимо зарегистрироваться для просмотра ссылки
Фрагмент кода:
ТекстЗапросаADO ="Insert into tbQarindosh (MainID,Lastname,Firstname,Patronymic,Qarindoshligi,DataRoj,
MestoRoj_country,IshJoyi,BirthTown,YashashJoyi) Values ('" + un + "',N'"+Фам_род+"',.....)

Должно работать с символами национальных алфавитов (Узбекистан,Казахстан,Киргизия,Туркмения) на основе кирилицы.

Привёл бы сразу этот код из 1С, Вам бы сразу и помогли.
Цитата(andrew76 @ 11.07.16, 8:38) необходимо зарегистрироваться для просмотра ссылки
После заливки данных в базу sql через 1С 8.2 в базе sql некорректно отображаются символы нац.алфавита.


Есть ведь разница между сферическим "После заливки данных в базу sql через 1с 8.2 в базе sql некорректно отображаются символы нац. алфавита." - неизвестно, Вы их там льёшь и конкретным "Insert into ... Values (N'" + un + "', N'"+Фам_род+"'..."
andrew76
Я бы выложил фрагмент кода еще 11 июля.Только ведь форум по тех.причинам не работал с 11-07-16 по 14-07-16.В чём проблема то? "палец выставлен"
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.