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

Откуда: Украина г. Хмельницкий
Сообщений: 628
После переустановки ОС и MS SQL на сервере у клиентов начались проблемы с кодировкой. Раньше стоял MS SQL 2000, счас установили 2005. Клиентская часть на FoxPro, строка соединения следующая:
	m.lcDSNLess = ;
			"Driver=SQL Server;" + ;
			"SERVER=NT1;" + ;
			"DBMSSOCN=TCP/IP;" + ;
			"UID=AppAdmin;" + ;
			"PWD=adm;" + ;
			"DATABASE=master;" + ;
			"APP="

При добавлениии данных в таблицу, вместо русских и украинских символов получаются ????????. Конкретно происходит при добавлении в таблицу:
CREATE TABLE [dbo].[spr_rash04](
	[cex] [char](2) COLLATE Cyrillic_General_CI_AS NULL,
	[kod] [char](3) COLLATE Cyrillic_General_CI_AS NULL,
	[naim] [char](145) COLLATE Cyrillic_General_CI_AS NULL
) ON [PRIMARY]

в поле naim. Добавление на фоксе происходит вот так:
SQL('INSERT INTO spr_rash04(cex, kod, naim) VALUES(?cex_strpdr.k_cex,?cNewKod,?lcText)')

В чём может быть проблема? Куда смотреть надо?
Большое спасибо!
10 дек 12, 12:08    [13605411]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой при украинской раскладке  [new]
Гость333
Member

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

Что возвращает
select databasepropertyex('Имя_Базы_Где_Лежит_Таблица_spr_rash04', 'Collation')
?
10 дек 12, 12:14    [13605462]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой при украинской раскладке  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
Гость333
Что возвращает
select databasepropertyex('Имя_Базы_Где_Лежит_Таблица_spr_rash04', 'Collation')
?

SQL_Latin1_General_CP1_CI_AS, это же значение стоит в свойствах сервера Server Collation. Смотрю раньше было - Cyrillic_General_CI_AS. Как счас можно поменять, без переустановки?
10 дек 12, 12:25    [13605604]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой при украинской раскладке  [new]
Гость333
Member

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

ALTER DATABASE имя_бд COLLATE имя_кодировки
10 дек 12, 12:33    [13605681]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой при украинской раскладке  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
Гость333
ALTER DATABASE имя_бд COLLATE имя_кодировки

а COLLATE сервера как изменить?
10 дек 12, 12:42    [13605772]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой при украинской раскладке  [new]
Гость333
Member

Откуда:
Сообщений: 3683
shanton
а COLLATE сервера как изменить?

Вот официальная инструкция для версии 2005: Setting and Changing the Server Collation.
Скорее всего, вы решите, что это нафиг не надо, ибо одним из пунктов является "Drop all the user databases" ;-)
10 дек 12, 12:56    [13605916]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой при украинской раскладке  [new]
shanton
Member

Откуда: Украина г. Хмельницкий
Сообщений: 628
Хочу поменять кодировку БД master:
ALTER DATABASE master COLLATE Cyrillic_General_CI_AS

получаю ошибку:
Msg 3708, Level 16, State 5, Line 1
Cannot alter the database 'master' because it is a system database.

Проблема в том что при добавления своего сообщения в sys.messages:
EXEC sp_addmessage 60001, 16, 'Повтор в таблице: %s.'

в поле text вместо русских символов знаки вопроса.
Кодировку БД master можно изменить на Cyrillic_General_CI_AS? Счас SQL_Latin1_General_CP1_CI_AS.
18 янв 13, 13:04    [13790643]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой при украинской раскладке  [new]
Glory
Member

Откуда:
Сообщений: 104751
EXEC sp_addmessage 60001, 16, N'Повтор в таблице: %s.'

shanton
Кодировку БД master можно изменить на Cyrillic_General_CI_AS?

Переустановкой сервера
18 янв 13, 13:07    [13790676]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой при украинской раскладке  [new]
DaniilSeryi
Member

Откуда:
Сообщений: 1963
А никто не хочет высказаться о том, что ПОЛЬЗОВАТЕЛЬСКИЕ данные заносятся в СИСТЕМНУЮ БД?
И возможно, есть смысл поменять тип столбцов с char на varchar ?
18 янв 13, 15:53    [13792295]     Ответить | Цитировать Сообщить модератору
 Re: Проблема с кодировкой при украинской раскладке  [new]
Glory
Member

Откуда:
Сообщений: 104751
DaniilSeryi
А никто не хочет высказаться о том, что ПОЛЬЗОВАТЕЛЬСКИЕ данные заносятся в СИСТЕМНУЮ БД?

Процедура sp_addmessage специально создана для добавления пользовательских сообщений. Которые будут храниться в системной базе.
18 янв 13, 15:55    [13792324]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить