Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
Andrey A. Markine
Member

Откуда: г. Нижевартовск
Сообщений: 32
Итак суть проблемы:

Есть новый медицинский УЗИ сканер - работает прекрасно, все на русском показывает, можно подписи делать на русском языке, и даже как PDF в картинке отчет сохранить можно, все будет хорошо.
Но при попытке сохранить отчет по исследованию как "txt" или "xml" файлы вместо русских букв знаки вопросов "?????????"
3 месяца общение с техподдержкой производителя ничего не дали, и я начал сам все ковырять, были выяснены следующие обстоятельства:

1. Сканер работает под управлением Windows XP Embedded SP3, установлены MUI - выбрана Россия везде, но десятичный разделитель "."
2. База данных сканера работает на MSDE 2000A
3. Полное восстановление системы с нуля происходит в 3 этапа (3 диска загрузочных):

1 диск – установка собственно операционной системы и разбиение разделов на дисках, после завершения этапа попадаешь в Windows можно делать что угодно, на шаманства с кодовыми страницами в реестре и разные варианты языковых настроек не привели к успеху

2 диск – установка всех дров и служебных программ, в том числе пакета ENG_MSDE2000A.EXE, после этапа опять попадаешь в Windows с правами админа. Поиск по всем INI и BAT файлам второго диска нашел только одну строчку которая оговаривает установку этого пакета после его распаковки - "C:\MSDERelA\setup sapwd=' тут написан пароль'

3 диск – установка основной системы, подключение баз и всех систем защиты - логеров, блокировок клавиш и др. дряни, после завершения установки получить доступ к машине нельзя. Но между завершением установки и перезапуском есть пауза, нужно нажать "OK" для перезапуска.

Что я сделал:
После окончания второго этапа я установил на машину MS SQL Server Management Studio Express и полез смотреть что там есть интересного – интересного оказалась много:
После установки MSDE2000A у нас автоматически появляются системные базы: "master"; "model"; "msdb"; "tempdb", что странно, при любых региональных настройках Windows все они всегда имеют Collation типа "SQL_Latin1_General_CP1_CI_AS"
А вот появляющиеся после окончания второго этапа рабочие базы "MDX1"; "MDX1Config"; "MDX1DcmJob"; "MDX1Temp"; "MDX1Temp1"; "MDX1Temp2"; "MDX1Temp3"; "MDX1Temp4" имеют Collation типа "Korean_Wnasung_CI_AS".
И несколько сотен хранимых процедур, использующиеся судя по всему основным приложением внутри себя также содержат принудительное определение Collation в полях генерируемых таблиц типа "Korean_Wnasung_CI_AS".

Есть идея отредактировать внутри образа диска INI файл, чтобы принудительно задать правильную Collation, но я не знаю какую выбрать, хотя уже весь день вчера изучал это вопрос, толком не понял (видимо сказывается нехватка базовых знаний, т.к. я доктор, а не програмист).
________________________________

Также в моем распоряжении есть предидущий сканер на той-же платформе, который нормально сохраняет русские буквы в отчете формата "txt". Но к нему у меня установочных дисков нет, и все что я могу это дать запрос в командной строке через osql, правда пока не понял как посмотреть используемый там в системных базах collation через osql
1 окт 12, 10:53    [13247980]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
Glory
Member

Откуда:
Сообщений: 104760
Andrey A. Markine
Но при попытке сохранить отчет по исследованию как "txt" или "xml" файлы вместо русских букв знаки вопросов "?????????"

В MSDE2000A нет никаких отчетов.

Andrey A. Markine

2 диск – установка всех дров и служебных программ, в том числе пакета ENG_MSDE2000A.EXE, после этапа опять попадаешь в Windows с правами админа. Поиск по всем INI и BAT файлам второго диска нашел только одну строчку которая оговаривает установку этого пакета после его распаковки - "C:\MSDERelA\setup sapwd=' тут написан пароль'

Можно создать свой файл
http://msdn.microsoft.com/en-us/library/aa176598%28v=sql.80%29.aspx
1 окт 12, 11:01    [13248025]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
PVC
Member

Откуда:
Сообщений: 319
Andrey A. Markine,

Посмотрите здесь
1 окт 12, 11:16    [13248133]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
Andrey A. Markine
Member

Откуда: г. Нижевартовск
Сообщений: 32
В MSDE2000A нет никаких отчетов.


Отчет по исследованию - это функция в основном приложении сканера.
Но он генерируется этим приложением через запрос из базы данных MSDE2000. Каким запросом конкретно - не найти.
Внутри приложения все хорошо, а при выгрузке (это кнопка внутри приложения - "Сохранить отчет", там выбираешь тип файла "PDF", "TXT", "XML". Но PDF создается через PDFCreator как картинка, а TXT и XML наверняка выгружаются из базы напрямую через запрос)
1 окт 12, 11:16    [13248138]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
Nightmar
Member

Откуда: Днепропетровск
Сообщений: 8
Но он генерируется этим приложением через запрос из базы данных MSDE2000. Каким запросом конкретно - не найти.

Для этого существует Profiler
1 окт 12, 11:59    [13248495]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
aleks2
Guest
При преобразовании БАЗА(юникод) -> внешний файл (ASCII) используются кодовые страницы операционной системы.

Показана следующая терапия

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Control\Nls\CodePage]
"1250"="c_1251.nls"
"1251"="c_1251.nls"
"1252"="c_1251.nls"
...
и так для ФСЕХ кодовых страниц.

ЗЫ. Для активизации требуется перезагрузка ОСи.
1 окт 12, 12:02    [13248522]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
Andrey A. Markine
Member

Откуда: г. Нижевартовск
Сообщений: 32
Nightmar
Для этого существует Profiler


Да какой Profiler - я же пишу, после запуска основного софта доступ уже не получить ни к чему. Даже в Windows выйти нельзя будет из приложения. И все комбинации клавиш заблокируются. Можно будет только через командную строку запросы из osql выполнять.

Переформулирую вопросы исходя из текущей ситуации:

1. Нужно через командную строку утилитой oqsl выяснить Collation системных баз и Collation рабочих баз - не смог пока найти как это должно выглядеть:

osql -Usa -dtempdm -q "а тут запрос возвращающий используемый тип Collation"

2. После этого в установочном комплекте принудительно прописать необходимую Collation

Зачем мне для этого Profiler хоть бы я и мог им воспользоваться?
1 окт 12, 12:09    [13248579]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
PVC
Member

Откуда:
Сообщений: 319
Andrey A. Markine,

Внимательно прочитайте.

+

попробуйте вместо
C:\MSDERelA\setup sapwd=???
прописать
C:\MSDERelA\Setup sapwd=??? COLLATION="Cyrillic_General_CI_AS"
1 окт 12, 12:21    [13248681]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
PVC
Member

Откуда:
Сообщений: 319
Andrey A. Markine
Нужно через командную строку утилитой oqsl выяснить Collation системных баз и Collation рабочих баз - не смог пока найти как это должно выглядеть:



exec sp_helpdb
1 окт 12, 12:28    [13248731]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
aleks2
Guest
Ну чо выпарите мозг бедному Айболиту?

Он же сам сказал
Andrey A. Markine
- работает прекрасно, все на русском показывает, можно подписи делать на русском языке

значит в базе UNICODE используется. И на коллэйшн типа "Korean_Wnasung_CI_AS" насрать.
1 окт 12, 14:29    [13249651]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
Andrey A. Markine
Member

Откуда: г. Нижевартовск
Сообщений: 32
Переустановил систему с принудительной COLLATION="Cyrillic_General_CI_AS" - у всех системных баз теперь именно этот collation.

Эффекта нет

Заменил по совету в реестре все кодовые страницы на ="c_1251.nls" в ветке [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet\Control\Nls\CodePage]

Эффекта опять нет

К сообщению приложен файл (Отчет_TXT.txt - 957bytes) cкачать
2 окт 12, 11:40    [13254404]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
PVC
Member

Откуда:
Сообщений: 319
Andrey A. Markine,

думается, что проблема все таки в COLLATION рабочих баз.
в каком виде эти базы изначально присутствуют на дистрибутиве? (3 диск).
предполагается один из трех вариантов - *.mdx *.sql *.bak
2 окт 12, 12:24    [13254749]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
Andrey A. Markine
Member

Откуда: г. Нижевартовск
Сообщений: 32
На установочном диске рабочие базы присутствуют в виде файлов *.MDF/*.LDF + *.dts + *.mdb
В подпапках большое количество файлов *.TAB, *.PRC, *.TRG, *.VIW - внутри обычный T-SQL код.
2 окт 12, 14:42    [13255930]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Andrey A. Markine,

у вас у самих "рабочих" БД,какой колейшин то ?
2 окт 12, 14:51    [13256058]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
Andrey A. Markine
Member

Откуда: г. Нижевартовск
Сообщений: 32
Maxx
у вас у самих "рабочих" БД,какой колейшин то ?


При проверке через MS SQL Server Management Studio Express - на всех рабочих базах "Korean_Wansung_CI_AS"
2 окт 12, 15:03    [13256160]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
aleks2
Guest
Maxx
Andrey A. Markine,

у вас у самих "рабочих" БД,какой колейшин то ?


1. Нормальные герои всегда идут в обход. (с) Айболит66

2. Нету никакого смыслу мучить животное. Т.е. SQL-сервер и коллейшены.

3. Еще раз намекаю
Andrey A. Markine
, все на русском показывает, можно подписи делать на русском языке, и даже как PDF в картинке отчет сохранить можно, все будет хорошо.
Но при попытке сохранить отчет по исследованию как "txt" или "xml" файлы вместо русских букв знаки вопросов "?????????"


4. Вряд ли файл пришет сервер.
2 окт 12, 15:15    [13256298]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
Maxx
Member [скрыт]

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

дядя Саша - осталось тока выяснить как он выгружает в txt/xml
2 окт 12, 15:50    [13256651]     Ответить | Цитировать Сообщить модератору
 Re: Помогите врачу с collation и MSDE2000A (детективная история внутри)  [new]
monstrU
Member

Откуда: Москва
Сообщений: 1216
Andrey A. Markine,

XP под рукой у меня нет, но вот недавно вляпался в проблему на локализованной windows 7 в региональных установках- там на кнопке (точно не помню название) типа какую кодировку использовать для non unicode программ стояла кодировка западноевропейская - поставил Unicode и зашуршало.
нет ли в XP похожей истории ?
2 окт 12, 16:14    [13256904]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить