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

Откуда:
Сообщений: 1102
Запись данных происходит на ПХП. Но SQL Server этого не понимает. у него вместо рус букв каракули, если не применять перекодировку. а если применить, то в бд данные отображаются знаками вопроса. вот так я применял к переменной перекодировку:
$Description=iconv('UTF8','CP1251',$params['Description']);
. подскажите, что предпринять, чтобы sql server понимал поступающие данные на рус??
1 дек 15, 18:46    [18499103]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
Glory
Member

Откуда:
Сообщений: 104760
seeerg_23
Но SQL Server этого не понимает. у него вместо рус букв каракули, если не применять перекодировку. а если применить, то в бд данные отображаются знаками вопроса. вот так я применял к переменной перекодировку:

Тип поля в таблице какой ?
1 дек 15, 19:07    [18499225]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
nvarchar(max)
1 дек 15, 19:33    [18499338]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
Glory
Member

Откуда:
Сообщений: 104760
seeerg_23
nvarchar(max)

И как выглядит команда, которую получает сервер ?
1 дек 15, 20:11    [18499453]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
на пхп вот так выглядит запрос на обновление. он срабатывает по нажатию на кн ОБновить:
$sql="Update dbo.Table12 SET    
[Description]='".$Description."'
Where [ID]='".$ID."' ";
1 дек 15, 20:22    [18499489]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
Glory
Member

Откуда:
Сообщений: 104760
seeerg_23
на пхп вот так выглядит

Я спрашивал, какой запрос получает сервер
Он должен выглядеть так
Update dbo.Table12 SET
[Description]=N' some text'
Where [ID]=N'some text'
1 дек 15, 20:26    [18499496]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
на серевере у меня такого запроса нет!! потому как запрос на обновление выполняется на клиенте на ПХП. Если такой запрос написать, то вводится на рус без проблем!!
Update dbo.Table12 SET
[Description]=N' Ромашка'
Where [ID]=N'123'

но если такой запрос делать на сервере c помощью ХП с входными параметрами, то слишком много переделывать придётся... можно оставить код на ПХП с какой-то перекодировкой, например?? или на сервере установить доп кодировку.. или ещё что-то...
1 дек 15, 21:02    [18499620]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
Glory
Member

Откуда:
Сообщений: 104760
seeerg_23
на серевере у меня такого запроса нет!!

А какой есть ?

seeerg_23
можно оставить код на ПХП с какой-то перекодировкой, например??

Вопрос не в кодировке, а в тексте запроса

seeerg_23
или на сервере установить доп кодировку.. или ещё что-то...

Вопрос не в кодировке, а в тексте запроса
1 дек 15, 21:04    [18499634]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
есть только запрос на выборку и всё !
1 дек 15, 21:07    [18499646]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
Glory
Member

Откуда:
Сообщений: 104760
seeerg_23
есть только запрос на выборку и всё !

А update тогда что по-вашему ?
1 дек 15, 21:09    [18499659]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
так он же не на сервере! на сервере только вьюха с запросом на выборку
1 дек 15, 21:13    [18499682]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
Glory
Member

Откуда:
Сообщений: 104760
seeerg_23
так он же не на сервере! на сервере только вьюха с запросом на выборку

Т.е. сервер сам себе запросы составляет что ли ?
1 дек 15, 21:16    [18499691]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
что можно сделать, чтобы поступающие данные с клиента сервер понимал и не искажал ??
1 дек 15, 21:25    [18499744]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
Glory
Member

Откуда:
Сообщений: 104760
seeerg_23
что можно сделать, чтобы поступающие данные с клиента сервер понимал и не искажал ??

Сервер ничего не искажет.
Это ваши клиент не может сформировать нормальный текст запроса.
1 дек 15, 21:27    [18499757]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
на сервере установлена SQL_Latin1_General_CP1_CI_AS, а из клиента на сервер данные поступают в 'CP1251', конвертируя из UTF-8
$Description=iconv('UTF8','CP1251',$params['Description']); и эти данные превращаются в набор " ??????????? ".
2 дек 15, 08:15    [18500731]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
Glory
Member

Откуда:
Сообщений: 104760
seeerg_23
на сервере установлена SQL_Latin1_General_CP1_CI_AS, а из клиента на сервер данные поступают в 'CP1251', конвертируя из UTF-8
$Description=iconv('UTF8','CP1251',$params['Description']); и эти данные превращаются в набор " ??????????? ".

И еще раз
Если вы передадите серверу команду
Update dbo.Table12 SET [Description]=N' Ромашка' Where [ID]=N'123'

то пофиг, что и где установлено
2 дек 15, 09:16    [18500946]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
pXn
Member

Откуда: Косопузая
Сообщений: 45
seeerg_23
на пхп вот так выглядит запрос на обновление. он срабатывает по нажатию на кн ОБновить:
$sql="Update dbo.Table12 SET    
[Description]='".$Description."'
Where [ID]='".$ID."' ";
Какое значение у $sql? Что в конечном счете уходит на сервер?
2 дек 15, 11:40    [18501841]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
pXn
Member

Откуда: Косопузая
Сообщений: 45
Про это Glory и писал.
Для сервера нет
"Update dbo.Table12 SET
[Description]='".$Description."'
Where [ID]='".$ID."' ";


Для него есть
Update dbo.Table12 SET
[Description]=N' some text'
Where [ID]=N'some text'

автор
потому как запрос на обновление выполняется на клиенте на ПХП
запрос на клиенте не выполняется, а формируется и передается на сервер.
2 дек 15, 11:46    [18501881]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4256
seeerg_23
Если такой запрос написать, то вводится на рус без проблем!!
Update dbo.Table12 SET
[Description]=N' Ромашка'
Where [ID]=N'123'

... слишком много переделывать придётся...

Добавить символ N в текст запроса это сложно?
2 дек 15, 11:49    [18501908]     Ответить | Цитировать Сообщить модератору
 Re: записать данные на рус  [new]
seeerg_23
Member

Откуда:
Сообщений: 1102
я добавлял много раз и кодировку и N, но по отдельности, поэтому не работало. сегодня сделал вместе и работает !! Спасибо.
2 дек 15, 19:33    [18504813]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить