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

Откуда:
Сообщений: 99
Добрый день, вопрос по xml, объясните разницу:
declare @idoc int
exec sp_xml_preparedocument @idoc OUTPUT,
N'<xml version="1.0" encoding="UTF-8"> 
<ROOT> 
<Employees FirstName="Анна" LastName="Иванова"></Employees> 
</ROOT>
</xml>' 

казалось бы, примерный код выше выполняется без ошибок.
Но с клиентского приложения я получаю строку чуть отличную:
'<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<Employees FirstName="Анна" LastName="Иванова"></Employees>
</ROOT>'
и выполняю в хранимой процедуре как:
declare @idoc int
exec sp_xml_preparedocument @idoc OUTPUT,
N'<?xml version="1.0" encoding="UTF-8"?>
<ROOT> 
<Employees FirstName="Анна" LastName="Иванова"></Employees> 
</ROOT>'

Результат: The error description is 'Переключение с текущей кодировки на указанную не поддерживается.'.
Строку на клиенте поменять нет возможности, как правильно сделать скрипт?
25 янв 16, 17:14    [18727147]     Ответить | Цитировать Сообщить модератору
 Re: Xml-заголовок, как правильно  [new]
Glory
Member

Откуда:
Сообщений: 104751
Виктор_sql
Строку на клиенте поменять нет возможности, как правильно сделать скрипт?

Дело не в скрипте.
Дело в <?xml version="1.0" encoding="UTF-8"?>
25 янв 16, 17:15    [18727155]     Ответить | Цитировать Сообщить модератору
 Re: Xml-заголовок, как правильно  [new]
Кот Матроскин
Member

Откуда: Москва
Сообщений: 8933
Виктор_sql
Добрый день, вопрос по xml, объясните разницу:
declare @idoc int
exec sp_xml_preparedocument @idoc OUTPUT,
N'<xml version="1.0" encoding="UTF-8"> 
<ROOT> 
<Employees FirstName="Анна" LastName="Иванова"></Employees> 
</ROOT>
</xml>' 

казалось бы, примерный код выше выполняется без ошибок.
Но с клиентского приложения я получаю строку чуть отличную:
'<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
<Employees FirstName="Анна" LastName="Иванова"></Employees>
</ROOT>'
и выполняю в хранимой процедуре как:
declare @idoc int
exec sp_xml_preparedocument @idoc OUTPUT,
N'<?xml version="1.0" encoding="UTF-8"?>
<ROOT> 
<Employees FirstName="Анна" LastName="Иванова"></Employees> 
</ROOT>'

Результат: The error description is 'Переключение с текущей кодировки на указанную не поддерживается.'.
Строку на клиенте поменять нет возможности, как правильно сделать скрипт?


Ну если Вы уверены, что первый вариант у Вас всегда будет работать хорошо, и отличие только в хидере - можно уже на сервере сделать замену в строке.
25 янв 16, 17:19    [18727175]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить