Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / sp_OACreate и XML / 10 сообщений из 10, страница 1 из 1
18.09.2002, 13:49:01
    #32051302
VVS
VVS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_OACreate и XML
Конструкция из BOL для OPENXML работает отлично.
Но как быть с отдельным файлом XML с данными? Точнее каким образом загрузить его в память для sp_xml_preparedocument. С помощью sp_OACreate? Может кто-нить подскажет по OLE интерфейсу XML.
...
Рейтинг: 0 / 0
18.09.2002, 16:24:07
    #32051372
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_OACreate и XML
Правильно ли я понял, что
нужно из T-SQL прочитать внешний файл, который заитем передать в sp_xml_preparedocument ?
...
Рейтинг: 0 / 0
19.09.2002, 10:08:33
    #32051538
VVS
VVS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_OACreate и XML
Да.
...
Рейтинг: 0 / 0
19.09.2002, 10:46:32
    #32051555
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_OACreate и XML
Вообще-то это задача для клиентского приложения, но

Можно конечно и через sp_OA*, только это думаю долго получится, т.к. в этом случае читать можно только в локальную переменную, а ее максимальная длина 8000. Т.е. если файл короткий, то вполне рабочий вариант

Для чтения больших файлов можно использовать утилиту textcopy.exe

Код: plaintext
1.
2.
3.
4.
USE pubs
go
сreate table mytable(id int, xmltext ntext)
insert into mytable select  5 , '0x0' 
exec master..xp_cmdshell 'textcopy.exe /Smyserver /Usa /Pmypass /Dpubs /Tmytable /Cxmltext /W'' where id=5 '' /FX:\myxml.xml /I'


благо, что sp_xml_preparedocument "понимает" типы text/ntext. Только вот скрипт для передачи text поля в sp_xml_preparedocument привести не могу, по причине его отсутствия :-)
...
Рейтинг: 0 / 0
19.09.2002, 11:44:53
    #32051604
VVS
VVS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_OACreate и XML
Спасибо.
...
Рейтинг: 0 / 0
19.09.2002, 11:59:10
    #32051611
VVS
VVS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_OACreate и XML
Спасибо, но у меня выдает:
Код: plaintext
1.
2.
 "textcopy.exe"  не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
NULL
...
Рейтинг: 0 / 0
19.09.2002, 12:12:27
    #32051618
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_OACreate и XML
ищите в MSSQL\Binn
...
Рейтинг: 0 / 0
19.09.2002, 12:14:00
    #32051621
MiCe
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_OACreate и XML
находится в F:\Program Files\Microsoft SQL Server\MSSQL\Binn...
или где там вы ставили скул
...
Рейтинг: 0 / 0
19.09.2002, 12:43:41
    #32051637
VVS
VVS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_OACreate и XML
Да, я уже нашел.
Но почему-то при исполнении
Код: plaintext
1.
exec master..xp_cmdshell '"D:\Program Files\Microsoft SQL Server\MSSQL\Binn\textcopy.exe" /Sserver /Usa /Ppwd /Dpubs /Tmytable /Cxmltext /W'' where id=5 '' /Fc:\1.xml /I'

выдает
Код: plaintext
ERROR: Argument 'where' not recognized
...
Рейтинг: 0 / 0
19.09.2002, 13:08:58
    #32051649
Glory
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
sp_OACreate и XML
Извиняюсь,
1. должно быть /W" where id=5 " - т.е. двойные кавычки а не 2 одинарные.

кроме того
- в пути придется использовать короткие имена директорий
т.е. D:\Progra~1\Micros~3\...
- и тип поля может быть только text/image.

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


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