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

Откуда:
Сообщений: 61
Исходный файл находится по адресу: https://www.server.ru/test.xls
Сейчас я его ручками копирую в C:\ и дальше:
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source="c:\test.xls";Extended Properties="Excel 8.0;HDR=No;IMEX=1"')...Sheet1$

Но было бы просто замечательно, если б SQL Server сам бы доставал этот файлик из интернета. Подскажите, как это реализовать средствами SQL Server-а?
18 авг 09, 12:29    [7550686]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Naroto
Member

Откуда: куда и зачем
Сообщений: 3604
Albert71,

И какой наш SQL Server буфет?

SELECT @@VERSION
18 авг 09, 17:24    [7553030]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
borin
Member

Откуда: angarsk/msk
Сообщений: 677
как вариант - на машине-источнике данных развернуть IIS, MS SQL и подружить их,
потом через MSXML можно будет тягать данные через инет.

тут мои мытарства, если что
[url=https://www.sql.ru/forum/actualthread.aspx?bid=1&tid=625464&pg=1[/url]
18 авг 09, 18:14    [7553304]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Albert71
Member

Откуда:
Сообщений: 61
Naroto
Albert71,

И какой наш SQL Server буфет?

SELECT @@VERSION
Вообще, разработку и тестирование веду на 10.0.2531.0
Но желательно использовать всё совместимое с 8.00.760
19 авг 09, 08:46    [7554394]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Горилла с Нижнего Тагила
Member

Откуда:
Сообщений: 407
Можно попробовать
exec xp_cmdshell 'url2file.exe -[параметры]'
19 авг 09, 10:05    [7554682]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Albert71
Member

Откуда:
Сообщений: 61
Горилла с Нижнего Тагила
Можно попробовать
exec xp_cmdshell 'url2file.exe -[параметры]'

Не хтелось бы использовать дополнительных exe.
19 авг 09, 13:06    [7555943]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Горилла с Нижнего Тагила
Member

Откуда:
Сообщений: 407
MS SQL - это сервер БД. Он не заточен под решение таких задач, как "забрать файл" и т.п. Так или иначе придется использовать какие-то внешние вещи. Либо .exe, либо sp_OA,
либо свои утилиты написать.
19 авг 09, 13:13    [7555997]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Сергей Мишин
Member

Откуда:
Сообщений: 376
Albert71,
Как вариант создать vbs-скрипт и вызвать его через xp_cmdshell/джоб. С sp_OA... проблем больше будет.
Пример скрипта UrlToFile.vbs:
Set Args = Wscript.Arguments
url = Args(0)
file = Args(1)
Set Http = CreateObject("WinHttp.WinHttpRequest.5.1")
Http.Open "GET", url, 0
Http.Send
Set Stream = CreateObject("ADODB.Stream")
Stream.type = 1
Stream.open
Stream.Write Http.ResponseBody
Stream.SaveToFile file,2
Set Stream = Nothing
Set Http = Nothing
Пример вызова:
EXEC xp_cmdshell 'c:\UrlToFile.vbs http://www.ya.ru c:\t123.txt'
19 авг 09, 15:32    [7557147]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Albert71
Member

Откуда:
Сообщений: 61
Сергей Мишин
Albert71,
Как вариант создать vbs-скрипт и вызвать его через xp_cmdshell/джоб. С sp_OA... проблем больше будет.
Пример скрипта UrlToFile.vbs:
.........
Со скриптом конечно же попробую. Но почемуже всётаки с sp_OA... проблемы будут? и какие?
Можно этот же скрипт как раз через sp_OA... и выполнять. И не надо будет дополнительных *.vbs файлов.
Просто хочется сделать максимально мобильную базу. Чтоб просто перенёс её на другой сервак (без всяких там cmd, exe, vbs и прочих), и всё заработало.
20 авг 09, 09:54    [7559736]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Сергей Мишин
Member

Откуда:
Сообщений: 376
Albert71,
Проблемы наверно в том что писать больше если скрипт выше переписывать через sp_OA... и при этом нужно сохранение в файл -) А так конечно можно вызвать vbs-скрипт и через sp_OA
20 авг 09, 11:06    [7560289]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
vino
Member

Откуда:
Сообщений: 1191
Сергей Мишин
Albert71,
Проблемы наверно в том что писать больше если скрипт выше переписывать через sp_OA... и при этом нужно сохранение в файл -) А так конечно можно вызвать vbs-скрипт и через sp_OA

зачем же там в файл сохранять? объект WinHttp.WinHttpRequest.5.1 аналогично отработает
Albert71
...хочется сделать максимально мобильную базу. Чтоб просто перенёс её на другой сервак (без всяких там cmd, exe, vbs и прочих), и всё заработало

эт вряд ли, без специальных настроек безопасности не обойтись
20 авг 09, 11:14    [7560368]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Сергей Мишин
Member

Откуда:
Сообщений: 376
vino
...
зачем же там в файл сохранять? объект WinHttp.WinHttpRequest.5.1 аналогично отработает

и как же реализуете запись в файл? чтоб просто, без проблем с кодировкой и т.д.-)
20 авг 09, 11:56    [7560760]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Albert71
Member

Откуда:
Сообщений: 61
Сергей Мишин
vino
...
зачем же там в файл сохранять? объект WinHttp.WinHttpRequest.5.1 аналогично отработает

и как же реализуете запись в файл? чтоб просто, без проблем с кодировкой и т.д.-)
А о какой кодировке речь идёт? Нужно просто excel-файл из интернета на локальный диск положить.
20 авг 09, 12:51    [7561164]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Сергей Мишин
Member

Откуда:
Сообщений: 376
Albert71,
насчет кодировки: судя по форуму у многих были проблемы с ResponseBody - возвращал null, ResponseText нормально, только например русские символы могли быть как "????".
20 авг 09, 13:33    [7561553]     Ответить | Цитировать Сообщить модератору
 Re: Забрать файл из интернета  [new]
Geep
Member

Откуда: Москва
Сообщений: 975
Albert71
Сергей Мишин
Albert71,
Как вариант создать vbs-скрипт и вызвать его через xp_cmdshell/джоб. С sp_OA... проблем больше будет.
Пример скрипта UrlToFile.vbs:
.........
Со скриптом конечно же попробую. Но почемуже всётаки с sp_OA... проблемы будут? и какие?
Можно этот же скрипт как раз через sp_OA... и выполнять. И не надо будет дополнительных *.vbs файлов.
Просто хочется сделать максимально мобильную базу. Чтоб просто перенёс её на другой сервак (без всяких там cmd, exe, vbs и прочих), и всё заработало.


Скрипт или ЕХЕ можно хранить в базе
20 авг 09, 16:31    [7562924]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить