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

Откуда:
Сообщений: 73
Господа разработчики!
Помогите определить источник проблемы и способы ее решения.
В течении пяти лет использую MS SQL Server в учебной аудитории. Перед началом уч.года ОС и сервер переустанавливается заново (для установки используется образ диска с дистрибутивом). Каждый год на некоторых (разных!) компьютерах возвращаемые запросом текстовые кириллические данные выводятся в виде последовательности знаков вопроса. В этом году перешли на MS SQL Server 2005 и снова та же проблема. Например вчера, примитивная функция определения ФИО:

CREATE FUNCTION FIO (@Fam varchar(10),  @Nam varchar(10),  @Otch varchar(15))
RETURNS  varchar(30)
AS
BEGIN
RETURN  @Fam + ' '+ Left(@Nam,1) + '.'+ Left(@Otch,1)+'.'
END
GO

SELECT   dbo.FIO('Иванов', 'Петр', 'Григорьевич')

вновь возращала вопросительные знаки на этот раз на всех ПК. Замена типов данных на nvarchar и добавление N к текстовым константам ничего не дало.

Кстати, на моем домашнем компьютере такая проблема не возникала никогда ни с 2000, ни с 2005 серверами.

Заранее спасибо.
20 дек 09, 19:53    [8092785]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31202
GNM
Замена типов данных на nvarchar и добавление N к текстовым константам ничего не дало.
А должно дать. Может, где-то забыли?
CREATE FUNCTION FIO (@Fam nvarchar(10),  @Nam nvarchar(10),  @Otch nvarchar(15))
RETURNS  nvarchar(30)
AS
BEGIN
RETURN  @Fam + N' '+ Left(@Nam,1) + N'.'+ Left(@Otch,1)+N'.'
END
GO

SELECT   dbo.FIO(N'Иванов', N'Петр', N'Григорьевич')
20 дек 09, 19:56    [8092792]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
GNM,

а COLLATE какой в базе?
SELECT DATABASEPROPERTYEX(DB_NAME(),'Collation');
20 дек 09, 21:10    [8092964]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
guest00x
Guest
"...на некоторых (разных!) компьютерах..." - а что на этих компьютерах указано в "Панель управления/ Язык и региональные стандарты\ Дополнительно\ Язык программ не поддерживающих юникод" ?
20 дек 09, 21:12    [8092967]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
GNM
Member

Откуда:
Сообщений: 73
alexeyvg, именно так я и сделала, поставив N даже перед пробелами. Не помогло.
21 дек 09, 16:07    [8096656]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
GNM
Member

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

кодовая страница 1251 подключена.
21 дек 09, 16:09    [8096676]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31202
GNM
alexeyvg, именно так я и сделала, поставив N даже перед пробелами. Не помогло.
А в RETURNS nvarchar(30) не забыли?

Ещё проверьте на клиенте, где возвращаются вопросы, запрос:
select N'ФЫВА'
21 дек 09, 16:16    [8096750]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
GNM
guest00x,

кодовая страница 1251 подключена.
А я дождусь ответа в этом веке?
21 дек 09, 16:25    [8096827]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
GNM
Member

Откуда:
Сообщений: 73
iap,
я предполагаю, что дело в сопоставлении. У меня: Cirillic_General_CI_AS.
21 дек 09, 16:32    [8096892]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
GNM
Member

Откуда:
Сообщений: 73
alexeyvg, думаю, что не забыла.
21 дек 09, 16:41    [8096971]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
GNM
Member

Откуда:
Сообщений: 73
Большое спасибо, всем, кто откликнулся!
Сейчас я на домашнем компьютере, где у меня нет проблем. Завтра еще раз поэспериментирую в классе.
Но вот что меня смущает, ранее установка ОС и сервера проводилась с образа диска, то есть с совершенно одинаковыми параметрами, а вел себя сервер по разному.
Нынче сервер устанавливали лаборанты и, возможно, при установке не обратили внимание на параметы сопоставления.
В заключение: вы полагаете, что кроме кодовой страницы и Collation других причин быть не может?
Еще раз всем - глубокая благодарность.
21 дек 09, 17:10    [8097209]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
GNM
iap,
я предполагаю, что дело в сопоставлении. У меня: Cirillic_General_CI_AS.
Что значит "У меня"?
Это там, где лезут вопросительные знаки?
21 дек 09, 17:13    [8097239]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31202
GNM
Нынче сервер устанавливали лаборанты и, возможно, при установке не обратили внимание на параметы сопоставления.
В заключение: вы полагаете, что кроме кодовой страницы и Collation других причин быть не может?
Еще раз всем - глубокая благодарность.
Collation и никакие "параметы сопоставления" в случае юникода значения не имеют.

Если select N'ФЫВА' возвращает вопросы, значит, либо клиент кривой, либо в виндах не установлены русские шрифты.
21 дек 09, 17:22    [8097333]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
GNM
Member

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

у меня - это на домашнем ПК. В классе проверю завтра.
21 дек 09, 17:52    [8097524]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
GNM
Member

Откуда:
Сообщений: 73
alexeyvg,
сервер лицензионный (русифицированный), а все остальное ПО с кириллицей работает без проблем. Как тогда могут быть не установлены шрифты в Windows?
21 дек 09, 17:56    [8097553]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
alexeyvg
Collation и никакие "параметы сопоставления" в случае юникода значения не имеют.
Ещё как имеют!
21 дек 09, 17:56    [8097555]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
iap
alexeyvg
Collation и никакие "параметы сопоставления" в случае юникода значения не имеют.
Ещё как имеют!
Правда, там про сортировку речь идёт...
21 дек 09, 17:57    [8097564]     Ответить | Цитировать Сообщить модератору
 Re: Представление данных  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31202
iap
iap
alexeyvg
Collation и никакие "параметы сопоставления" в случае юникода значения не имеют.
Ещё как имеют!
Правда, там про сортировку речь идёт...
Сортировка - само собой.

GNM
alexeyvg,
сервер лицензионный (русифицированный), а все остальное ПО с кириллицей работает без проблем. Как тогда могут быть не установлены шрифты в Windows?
Я сам по администрированию виндов небольшой спец... Если остальное ПО с кириллицей работает без проблем - то этот вариант отпадает.

Вы всё таки попробуйте выполнить
select N'ФЫВА'
Вы ведь даже не сказали, какое ПО используете для доступа к серверу. Может, что то кривое, как тут один преподаватель расписывал...

Русифицированность сервера никакого значения не имеет.
Неужели сложно догадаться? - у людей в БД поддерживается множество языков одновременно, и никаких проблем не возникает: не устанавливают-же они сервер одновременно русифицированным, испаноизированным, китаезированным :-)
22 дек 09, 09:42    [8099302]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить