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

Откуда:
Сообщений: 633
Добрый день.
Есть такая задачка.

Есть URL, например: [http://www.google.ru/search?q="sql.ru"]
есть ms sql 2005
Как можно с помощью T-SQL получить текст возвращаемой странички, в переменную или еще как-то?
Подойдут любые решения которые можно выполнять с помошью скрипта.
Если можно с примером.
23 авг 13, 10:11    [14745652]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка кода HTML страницы в переменную.  [new]
andy st
Member

Откуда:
Сообщений: 806
Jaffar, это?
23 авг 13, 10:36    [14745858]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка кода HTML страницы в переменную.  [new]
Jaffar
Member

Откуда:
Сообщений: 633
вроде то, но только пример приведенный там не подходит ибо размер переменной ограничен 8000 символов, если использовать varchar(max) - то с таким типом метод, Приведенный Glory, не работает.

Я так понимаю что вызываемые методы(которые в конечном счете лезут в какую-то dll) зависят от типа создаваемого документа и методов.

Где бы почитать про типы создаваемых документов и их методы?

типа что есть еще кроме 'Microsoft.XMLHTTP' и какие у них методы?
23 авг 13, 11:20    [14746189]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка кода HTML страницы в переменную.  [new]
Glory
Member

Откуда:
Сообщений: 104760
Jaffar
Я так понимаю что вызываемые методы(которые в конечном счете лезут в какую-то dll) зависят от типа создаваемого документа и методов.

методы зависят от программиста, создавшего dll
Что вы называете "типом документа" - непонятно

Jaffar
Где бы почитать про типы создаваемых документов и их методы?

В документации. Если она есть.
Или опрашивать саму "dll". Правильный COM объект по стандарту должен сообщать о своих коллекциях, методах и свойствах

Jaffar
типа что есть еще кроме 'Microsoft.XMLHTTP' и какие у них методы?

Навалом.

Jaffar
вроде то, но только пример приведенный там не подходит ибо размер переменной ограничен 8000 символов, если использовать varchar(max) - то с таким типом метод, Приведенный Glory, не работает.

Это сообщение об ошибке такое "метод, Приведенный Glory, не работает" ?
23 авг 13, 11:26    [14746242]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка кода HTML страницы в переменную.  [new]
qwerty112
Guest
Jaffar
вроде то, но только пример приведенный там не подходит ибо размер переменной ограничен 8000 символов, если использовать varchar(max) - то с таким типом метод, Приведенный Glory, не работает.

"не работают" - негры в Африке
по сообщению ошибки, на этом же форуме и решение можно найти - 10499359
+
declare @hr int	
declare @object int
declare @src int
declare @desc varchar(255)

declare @url varchar(1000) 

--
exec @hr=sp_OACreate 'MSXML2.XMLHTTP', @object OUT
if @hr<>0
begin
	exec sp_OAGetErrorInfo @object, @src OUT, @desc OUT
	print @src
	print @desc
end
--
--set @url='http://www.google.ru/search?q="sql.ru"'
set @url='https://www.sql.ru/forum/1042791/zagruzka-koda-html-stranicy-v-peremennuu'
exec @hr=sp_OAMethod @object, 'Open', NULL, 'GET', @url , 0
if @hr<>0
begin
	exec sp_OAGetErrorInfo @object, @src OUT, @desc OUT
	print 'Open'
	print @src
	print @desc
end
--
exec @hr=sp_OAMethod @object, 'send', NULL
if @hr<>0
begin
	exec sp_OAGetErrorInfo @object, @src OUT, @desc OUT
	print 'send'
	print @src
	print @desc
end
--
DECLARE	@Response TABLE ( Response NVarChar(max) )

SET TEXTSIZE 2147483647;

INSERT	@Response
exec @hr=sp_OAGetProperty @object, 'responseText' 

if @hr<>0
begin
	exec sp_OAGetErrorInfo @object, @src OUT, @desc OUT
	print 'responseText'
	print @src
	print @desc
end

select Response from @Response

--
exec @hr=sp_OADestroy @object


зы
только вот для "например: [http://www.google.ru/search?q="sql.ru"] "
проблемка
send
Отказано в доступе.

против Гугл, походу, что бы его программно дёргали ... возможно, через 'InternetExplorer.Application' можно сделать ...
23 авг 13, 11:37    [14746371]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка кода HTML страницы в переменную.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
qwerty112
решение можно найти - 10499359
sp_OACreate 'MSXML2.XMLHTTP', @object OUT

проблемка
send
Отказано в доступе.
Да потому что читать надо не по диагонали.

MSXML2.ServerXMLHTTP =/= MSXML2.XMLHTTP
23 авг 13, 12:25    [14746921]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка кода HTML страницы в переменную.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
А вообще вот ещё есть 8197124
23 авг 13, 12:27    [14746940]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка кода HTML страницы в переменную.  [new]
qwerty112
Guest
Mnior
qwerty112
решение можно найти - 10499359
sp_OACreate 'MSXML2.XMLHTTP', @object OUT

проблемка
send
Отказано в доступе.
Да потому что читать надо не по диагонали.

MSXML2.ServerXMLHTTP =/= MSXML2.XMLHTTP

речь шла о примере отсюда - 99198 (там используется MSXML2.XMLHTTP)
где ТС столкнулся с такой проблемой
автор
размер переменной ограничен 8000 символов, если использовать varchar(max) - то с таким типом метод, Приведенный Glory, не работает

так понятно ?
23 авг 13, 12:49    [14747098]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка кода HTML страницы в переменную.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
Твою дивизию. Уважаемый qwerty112, а вы на аффтара вами найденного решения посмотрите:
qwerty112
на этом же форуме и решение можно найти - 10499359

qwerty112
речь шла
Речь с вами идёт об MSXML2.XMLHTTP, который юзать не рекомендуется. Использовать лучше именно MSXML2.ServerXMLHTTP.
Подробности: http://support.microsoft.com/kb/290761

С MSXML2.XMLHTTP постоянно проблемы возникают.
24 авг 13, 01:15    [14750448]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка кода HTML страницы в переменную.  [new]
qwerty112
Guest
Mnior
Твою дивизию. Уважаемый qwerty112, а вы на аффтара вами найденного решения посмотрите:
qwerty112
на этом же форуме и решение можно найти - 10499359

qwerty112
речь шла
Речь с вами идёт об MSXML2.XMLHTTP, который юзать не рекомендуется. Использовать лучше именно MSXML2.ServerXMLHTTP.
Подробности: http://support.microsoft.com/kb/290761

С MSXML2.XMLHTTP постоянно проблемы возникают.

>> Речь с вами идёт

Mnior,
"зарубите себе на носу" - у меня с вами, речь не идёт НИ-О-ЧЁМ
если вы хотите посоветовать автору использовать MSXML2.ServerXMLHTTP вместо MSXML2.XMLHTTP - советуйте ! это ваше право
только не нужно в этих советах ссылатся на меня или мои посты

Mnior
а вы на аффтара вами найденного решения посмотрите

даа, видел-видел я кто автор !
я уже 10-ть раз пожалел, что ответил ссылкой, а не только кодом ...

повторяю для вас ещё раз (надеюсь последний)
у ТС-а проблема с этим
автор
вроде то, но только пример приведенный там не подходит ибо размер переменной ограничен 8000 символов, если использовать varchar(max) - то с таким типом метод, Приведенный Glory, не работает.

проблема эта - не зависит от используемого COM-объекта, и актуальна и для ServerXMLHTTP и XMLHTTP
решается так
DECLARE	@Response TABLE ( Response NVarChar(max) )

SET TEXTSIZE 2147483647;

INSERT	@Response
exec @hr=sp_OAGetProperty @object, 'responseText' 

(что есть в примере по ссылке, для чего она и приведена. и только для этого !)
в этом посте - 14746371 - эта часть специально выделенна
24 авг 13, 02:06    [14750494]     Ответить | Цитировать Сообщить модератору
 Re: Загрузка кода HTML страницы в переменную.  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6723
+ qwerty112
qwerty112
"зарубите себе на носу" - у меня с вами, речь не идёт НИ-О-ЧЁМ
Бредятина.
Я просто ответил на какой-то тезис, мне фиолетово, кто его написал.
qwerty112
если вы хотите посоветовать автору использовать MSXML2.ServerXMLHTTP вместо MSXML2.XMLHTTP - советуйте !
Вообще-то это форум, сюда пишут публичную инфу. И если я посоветовал, то не только вам, или ТС, а всем.
qwerty112
это ваше право
только не нужно в этих советах ссылатся на меня или мои посты
Я цитирую посты, мне пофиг кто их написал, к тому же именно вы упомянули о некой проблеме.
И мое дело было на это написать, что не стоит пользоваться данным COM-ом.
qwerty112
Mnior
а вы на аффтара вами найденного решения посмотрите
даа, видел-видел я кто автор !
Так зачем вы мне 3 раза пишете то что я как раз там и описал?
qwerty112
повторяю для вас ещё раз (надеюсь последний)
у ТС-а проблема с этим ...
Зачем вы мне это говорите?
Я что говорил что это неправильно? Я что как-то противопоставлял на это?
Не противопоставлял и думал что тема эта закрыта. Зачем вы мусолите её?
qwerty112
что есть в примере по ссылке, для чего она и приведена. и только для этого !
И? Приведено и замечательно, что приведено.
Но вы писали не только это. Вы оставили в коде MSXML2.XMLHTTP. И меня не интересует что вы отвечали на только вопрос А (о чём вы там думали никому не было известно, да и совершенно неинтересно и не важно), при этом написали дополнительно код в котором ошиблись. Зачем вы написали его? Зачем вы написали про проблему с send? Вы этим хотели подчеркнуть что вы говорите только о проблеме 8K?
Читайте это лично как "Может сбить с толку ТС". Хотя это слишком частно и однобоко.

qwerty112, "зарубите себе на носу" - никому нафиг не интересна ваша эгоцентричность и выделение личностей. Ок?

Если я вас чем-то задел, приношу глубочайшие извинения.
24 авг 13, 20:18    [14751579]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить