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

Откуда:
Сообщений: 4
Доброго времени суток всем!
Есть некая проприетарная программа, которую надо кровь из носу внедрить, замена невозможна. Проблема в том, что программа напрочь отказывается работать с кириллическими символами в БД MS SQL Server 2008, т.к. ей обязательно нужен коллейшн SQL_Latin1_General_CI_AS (как итог, пишется билиберда, которую она сама потом не понимает)
Попытка поменять коллейшн вырубает программу напрочь. Сам код ПО по понятным причинам переписать не могу; производитель отмораживается уже месяца 2.
Нужно как-то заставить программу корректно работать с кириллическими символами при латинском коллейшене. Локаль операционки English, это тоже требования серверной часть ПО.
Себе уже мозг сломал, как это сделать.
Помогите, пожалуйста, идеями, в какую область хотя бы дальше копать попытаться?
9 авг 12, 11:55    [12986603]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
Glory
Member

Откуда:
Сообщений: 104751
Annoverden
(как итог, пишется билиберда, которую она сама потом не понимает)

И вы видели команду, которой "пишется билиберда" ?
9 авг 12, 11:58    [12986636]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31962
Annoverden
Помогите, пожалуйста, идеями, в какую область хотя бы дальше копать попытаться?
В область заставить производителя исправить баги. Или хотя бы указать настройки, которыми можно баги обойти.
Annoverden
Попытка поменять коллейшн вырубает программу напрочь.
Коллейшен чего вырубает программу? Если поменять колелйшен любого одного поля, то программа вырубится? А дефаултный язык логина?
9 авг 12, 13:38    [12987577]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
Annoverden
Member

Откуда:
Сообщений: 4
Glory
Annoverden
(как итог, пишется билиберда, которую она сама потом не понимает)

И вы видели команду, которой "пишется билиберда" ?


Нет. Если бы видел, может, и придумали бы что :) Сама БД - просто набор таблиц. ПРи записи строковых параметров в них кириллические символы заменяются знаками ? . При считывании - ругань на некорректные значения либо просто виснет. С латиницей без проблем.

alexeyvg
Annoverden
Помогите, пожалуйста, идеями, в какую область хотя бы дальше копать попытаться?
В область заставить производителя исправить баги. Или хотя бы указать настройки, которыми можно баги обойти.
Да это копаем, но кейс 2 месяца без ответа, на звонки говорят "ну мы работаем над вашей проблемой". А внедрять уже сейчас надо... но это лирика.

Annoverden
Попытка поменять коллейшн вырубает программу напрочь.
Коллейшен чего вырубает программу? Если поменять колелйшен любого одного поля, то программа вырубится? А дефаултный язык логина?

Да, даже если одного поля менять - повиснет на этапе соединения с БД. Дефолтный язык English

В SQL Server есть возможность создания какого-то скрипта, который будет автоматически перехватывать данные, которые пишутся кириллицей, и, скажем, заменять их транслитом, при считывании, соответственно, наоборот? Без внедрения чего-то в код программы
9 авг 12, 14:12    [12987876]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
Glory
Member

Откуда:
Сообщений: 104751
Annoverden
Нет. Если бы видел, может, и придумали бы что :)

Тогда какого решения вы ждете ?
Рассказа про волшебную кнопку "Сделать правильно" ?
Annoverden
Сама БД - просто набор таблиц. ПРи записи строковых параметров в них кириллические символы заменяются знаками ? .

Откуда вы знаете, что именно "ПРи записи ... кириллические символы заменяются знаками ?" ?
Почему вы думаете, что эти знаки ? не само приложение передает серверу ?


Annoverden
В SQL Server есть возможность создания какого-то скрипта, который будет автоматически перехватывать данные, которые пишутся кириллицей, и, скажем, заменять их транслитом, при считывании, соответственно, наоборот? Без внедрения чего-то в код программы

Для того, чтобы что-то перехватывать и подменять, для начала хорошо бы серверу получить именно кириллицу
9 авг 12, 14:16    [12987913]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
Annoverden
Member

Откуда:
Сообщений: 4
Glory
Annoverden
Нет. Если бы видел, может, и придумали бы что :)

Тогда какого решения вы ждете ?
Рассказа про волшебную кнопку "Сделать правильно" ?


Нет, просто вдруг у кого-то подобный опыт был и может подсказать, куда копать. Сам я не профессиональный программист, с SQL-запросами много дел не имел, глубоко в MSSQL не шарю.

Glory
Annoverden
Сама БД - просто набор таблиц. ПРи записи строковых параметров в них кириллические символы заменяются знаками ? .

Откуда вы знаете, что именно "ПРи записи ... кириллические символы заменяются знаками ?" ?
Почему вы думаете, что эти знаки ? не само приложение передает серверу ?


Вот уже наводящий вопрос есть, а вы про волшебную кнопку пишете :)
Приложение в логах нормально пишет кириллицу, значит, передавать кириллицу может; при записи в базу вместо кириллицы выходит мусор. Хотя, конечно, не исключается и такой вариант. Соответственно, хотелось бы как-то посмотреть, что передается из программы в базу, до, собственно, записи в нее, это можно сделать средствами MSSQL/Management Studio?
10 авг 12, 09:14    [12991475]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
Glory
Member

Откуда:
Сообщений: 104751
Annoverden
Нет, просто вдруг у кого-то подобный опыт был и может подсказать, куда копать.

Копать в сторону команды, которая передается серверу
Annoverden
Приложение в логах нормально пишет кириллицу, значит, передавать кириллицу может;

Писать в свой лог и передавать другой службе, через драйвер - это разные вещи

Annoverden
Соответственно, хотелось бы как-то посмотреть, что передается из программы в базу, до, собственно, записи в нее, это можно сделать средствами MSSQL/Management Studio?

SQL Profiler
10 авг 12, 10:43    [12992069]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
Annoverden
Member

Откуда:
Сообщений: 4
Glory, спасибо.
10 авг 12, 11:01    [12992238]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Ясно же, что поля юникодные, данные в них вставляются литеральными строками, но без буквы "N" перед ними.
Если не можете поправить команду вставки, то всё - приехали!
10 авг 12, 12:46    [12993122]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
Ясно же, что поля юникодные, данные в них вставляются литеральными строками, но без буквы "N" перед ними.
Если не можете поправить команду вставки, то всё - приехали!
И COLLATE, наверно, не при чём!
10 авг 12, 12:47    [12993130]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
londinium
Member

Откуда: Киев
Сообщений: 1199
В порядке бреда: а если прикрутить к проблемной таблице INSTEAD OF INSERT -триггер?
10 авг 12, 13:16    [12993357]     Ответить | Цитировать Сообщить модератору
 Re: Проблемы Latin General collation + кириллица = нужны идеи...  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31962
londinium
В порядке бреда: а если прикрутить к проблемной таблице INSTEAD OF INSERT -триггер?
Если приложение передаёт серверу вместо любого не-аски символа знак вопроса, то не поможет. То есть уже в сетевых пакетах нет данных, что тут сделает триггер?

Для начала нужно посмотреть профайлером, и на всякий язык логина проверить. Да и то вряд ли поможет. Просто баги разработчикам нужно поправить.
10 авг 12, 13:34    [12993454]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить