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

Откуда:
Сообщений: 5
Коллеги, требуется ваш совет, так как для меня SQL не является основным направлением. Вобщем, года три назад установил на 2003-й сервер SQL SERVER 2000 и сверху SP4. Это необходимо для функционирования одной программы, которая при своей установке сама для себя создает несколько баз. Всё это стабильно работало пока несколько дней назад сервер не перезагрузился из-за перебоев в электроснабжении. Глюкнул UPS. После этого программа не смогла подключиться к своей базе с использованием учетной записи sa. Начал разбираться. Оказалось, что у учетки sa вообще слетел пароль (кстати, как такое может быть?), а в программе сбросилась регистрация базы. Ладно, пароль sa и путь к базе восстановил. Но… Теперь кириллица в программе отображается в виде вопросительных знаков. Пробовал восстанавливать базу из bak-ов. Бесполезно. Гуглил. Предлагаются рекомендации по ребилду базы. Но до этого же кириллица в базе отображалась нормально, значит дело не в базе. Я так понимаю, что слетел collation в настройках сервера, но можно ли это исправить, а если можно, то как?
Если нужна дополнительная информация, могу предоставить.
4 мар 12, 14:53    [12191062]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
Юрий Ивченко
Member

Откуда:
Сообщений: 32
Какой результат выдают следующие запросы?
select serverproperty ('Collation') as server_collation
select databasepropertyex(db_name(),'Collation') as database_collation
4 мар 12, 15:24    [12191133]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Юрий Ивченко, отображение - дело клиента. Для начала поглядите на тему кодовых страниц 1251/1252.
4 мар 12, 15:42    [12191173]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
dimalap
Member

Откуда:
Сообщений: 5
Юрий, я смогу это проверить только завтра. Но сразу.
Спасибо, что обратили внимание на мое сообщение.
4 мар 12, 15:44    [12191177]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
dimalap
Member

Откуда:
Сообщений: 5
kDnZP, это где глянуть?
4 мар 12, 15:46    [12191185]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
Юрий Ивченко
Member

Откуда:
Сообщений: 32
Collation также определяет Code page для сохранение non-Unicode символов.
Например Cyrillic_General_CI_AS использует 1251, а Latin1_General_CI_AS 1252.
Если приложение создает базы и таблицы без явного определения Collation, то используется значение Collation определенное на уровне SQL Server. Если после создания таблиц, изменить Collation базы, то Collation столбцов останется прежним.

Если после перезагрузки сервера, приложение создало базы и таблицы со столбцами, определенными типами данных non-Unicode (например varchar), то проблемой может оказаться Collation уровня SQL Server например Latin1_General_CI_AS.

Но если используются существующие базы, то первым, на что я бы обратил внимание, это настройка операционной системы "Язык для программ, не поддерживающих Юникод".
4 мар 12, 18:56    [12191613]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
dimalap
Member

Откуда:
Сообщений: 5
Юрий Ивченко
Какой результат выдают следующие запросы?
select serverproperty ('Collation') as server_collation
select databasepropertyex(db_name(),'Collation') as database_collation


SQL_Latin1_General_CP1_CI_AS

Cyrillic_General_CI_AS
5 мар 12, 09:27    [12193399]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
dimalap
Member

Откуда:
Сообщений: 5
Параметры сортировки, судя по всему, должны быть Cyrillic

К сообщению приложен файл. Размер - 34Kb
5 мар 12, 09:52    [12193502]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Юрий Ивченко
Если приложение создает базы и таблицы без явного определения Collation, то используется значение Collation определенное на уровне SQL Server.
Это неточно. На таблицы COLLATION сервера не влияет.
На это влияет COLLATION базы, если явно у поля не задаётся.
5 мар 12, 10:07    [12193591]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
dimalap
kDnZP, это где глянуть?

В реестре ОС того компьютера где наблюдаются вопросительные знаки. Также попробуйте подключиться к базе с другого компьютера. Также попробуйте подключаться не вашей программой, а через SSMS/Query Analizer.
5 мар 12, 10:44    [12193832]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
Юрий Ивченко
Member

Откуда:
Сообщений: 32
iap
Юрий Ивченко
Если приложение создает базы и таблицы без явного определения Collation, то используется значение Collation определенное на уровне SQL Server.
Это неточно. На таблицы COLLATION сервера не влияет.
На это влияет COLLATION базы, если явно у поля не задаётся.

Вы внимательно прочитали мой пост?
5 мар 12, 11:01    [12193978]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Юрий Ивченко
iap
пропущено...
Это неточно. На таблицы COLLATION сервера не влияет.
На это влияет COLLATION базы, если явно у поля не задаётся.

Вы внимательно прочитали мой пост?
То есть, я неточно процитировал? Или что?
Там есть что-то между строк?
5 мар 12, 11:39    [12194367]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
Юрий Ивченко
Member

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

Если Collation не переопределяется, то
- база наследует Collation сервера
- столбцы наследуют Collation базы.
В итоге у столбцов будет Collation таким же как и у сервера.
5 мар 12, 11:52    [12194481]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
iap
Member

Откуда: Москва
Сообщений: 47144
Юрий Ивченко
iap,

Если Collation не переопределяется, то
- база наследует Collation сервера
- столбцы наследуют Collation базы.
В итоге у столбцов будет Collation таким же как и у сервера.
Значит надо писать так, чтобы было однозначное понимание.
Потому что таблица всегда наследует именно от базы, а не от сервера напрямую,
как можно подумать (что я и сделал) на основании Вашего первого поста.
5 мар 12, 11:57    [12194544]     Ответить | Цитировать Сообщить модератору
 Re: Помогите восстановить отображение кириллицы  [new]
gds
Member

Откуда: Железнодорожный
Сообщений: 1842
Блог
Юрий Ивченко
iap,

Если Collation не переопределяется, то
- база наследует Collation сервера
- столбцы наследуют Collation базы.
В итоге у столбцов будет Collation таким же как и у сервера.

Ну не всегда так. Например разработка велась на сервере с колейшеном Latin1, а потом поставили (restore or attach) в продакшен на сервер с Cyrillic. Коллейшен не переопределяли. В итоге у сервера один, а у бд другой. Какой будет колейшен у столбцов?
Если БД создается на том же сервере и колейшен не переопределяется, то, да - он наследуется.
5 мар 12, 12:17    [12194734]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить