Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251 / 5 сообщений из 5, страница 1 из 1
07.08.2011, 19:23
    #37384263
DenisKlementiev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
Поможите люди добрые!
Никогда с XML не работал.
Задача следующая:

С помощью bcp выгружаю из базы xml файл. Как известно sql выгружает в кодировке UTF-8 а мне нужна Windows 1251.
Выгружаемый файл имеет строку <?xml version="1.0"> без указания кодировки, а мне надо, чтобы эта строка выглядела как <?xml version="1.0" encoding="WINDOWS-1251"?>

Что делать ума не приложу, так как с xml еще не сталкивался. Куда копать? Для меня лучшее решение было бы в связке с SSIS. Так как сама выгрузка файла формируется SSIS.
...
Рейтинг: 0 / 0
08.08.2011, 12:38
    #37385041
WadimX
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
DenisKlementiev,

FOR XML + COLLATE может помочь.
...
Рейтинг: 0 / 0
26.08.2011, 02:43
    #37412704
DenisKlementiev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
vbscript

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
Dim myStream, myConnection, myCommand, stx, srez 
Set myStream = CreateObject("ADODB.Stream")
Set myConnection = CreateObject("ADODB.Connection") 
Set myCommand = CreateObject("ADODB.Command")
myConnection.Open "Provider=SQLOLEDB.1;Integrated Security=SSPI;" & _ 
"Persist Security Info=False;Initial Catalog=База Данных;Data Source=Сервер"
myCommand.ActiveConnection=myConnection 
myCommand.CommandText="dbo.get_xml"
myCommand.Properties("Output Encoding").Value = "windows-1251" 
myStream.Open
myCommand.Properties("Output Stream") = myStream
myCommand.Execute ,,1024 'instead of adExecuteStream
myStream.Position=0
myStream.Charset="WINDOWS-1251"
Dim strxml
strxml = (Trim(myStream.ReadText))
stx = "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "windows-1251" & Chr(34) & "?>"
srez = stx & strxml
Dim fso, MyFile
Set fso = CreateObject("Scripting.FileSystemObject")
Set MyFile = fso.CreateTextFile("C:\имя файла.xml", True)
MyFile.WriteLine(Trim(srez))
MyFile.Close
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
12.07.2018, 16:17
    #39673227
экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
WadimX,
FOR XML и COLLATE не совместимы в SELECT
Сам как раз сейчас бьюсь над этим.
С входной кодировкой на базе *General*Latin* чего-то там. И изменить ее нельзя...

Пока перепробовал все select для for xml предварительно с правильным collate и вызов из другой дружественнной БД с правильным collation.
Не помогло. Следующий шаг collate на каждое поле, но может народ попроще вариант нашел?
...
Рейтинг: 0 / 0
12.07.2018, 16:58
    #39673256
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251
Георгий Францкевич,

энкодеров в инете как грязи. Выгружайте и перекодируйте. Заголовок поменяйте на 1251.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / экспорт в XML файл из SQL, изменение кодировки на WINDOWS-1251 / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]