Consulta Web Excede Tiempo

13/12/2006 - 11:05 por UnaDelForo | Informe spam
Hola gente!

Estoy realizando una consulta web desde visual basic en Excel. El
porblema es que la consulta lleva su tiempo en ejecutarse y se debe
exceder el límite de la conexión de la request http.

La consulta no se puede reducir más, además si se ejecuta en el TOAD
no hay problemas de pérdidas de conexión con el JDBC y devuelve los
datos correctamente.
La consulta devuelve un CLOB que lo almacena en sesion.
Posteriormente se realizaria una segunda consulta para obtener el CLOB
de session... pero esto no llega a ejecutarse porque da el error antes
en el cliente EXCEL en la línea:

.Refresh BackgroundQuery:=False

¿Alguién sabe alguna solución?
Si no tengo mal entendido el tiempo de conexión http es un parámetro
del registro de las máquinas locales... de todas formas, esta solucion
no me vale porque habria que estar configurando las máquinas de
tooooodo el personal de una empresa... ufff esto no cuela como
solución!


La forma de la consulta web es:


query_string="URL;https://UNA_DIRECCCION_WEB"
NB_HOJA4="Hoja1"

With Sheets(NB_HOJA4).QueryTables.Add(Connection:=query_string,
Destination:=Sheets(NB_HOJA4).Range("A1"))
.name = "Hay_XML"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False '
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.EnableEditing = False
.Refresh BackgroundQuery:=False
End With
my_queryname = Sheets(NB_HOJA4).QueryTables(1).name
Sheets(NB_HOJA4).Names(my_queryname).Delete


Gracias por adelantado me urge bastante.

Preguntas similare

Leer las respuestas

#1 Tux
13/12/2006 - 18:40 | Informe spam
UnaDelForo escribió:
Hola gente!

Estoy realizando una consulta web desde visual basic en Excel. El
porblema es que la consulta lleva su tiempo en ejecutarse y se debe
exceder el límite de la conexión de la request http.

La consulta no se puede reducir más, además si se ejecuta en el TOAD
no hay problemas de pérdidas de conexión con el JDBC y devuelve los
datos correctamente.
La consulta devuelve un CLOB que lo almacena en sesion.
Posteriormente se realizaria una segunda consulta para obtener el CLOB
de session... pero esto no llega a ejecutarse porque da el error antes
en el cliente EXCEL en la línea:

.Refresh BackgroundQuery:=False

¿Alguién sabe alguna solución?
Si no tengo mal entendido el tiempo de conexión http es un parámetro
del registro de las máquinas locales... de todas formas, esta solucion
no me vale porque habria que estar configurando las máquinas de
tooooodo el personal de una empresa... ufff esto no cuela como
solución!


La forma de la consulta web es:


query_string="URL;https://UNA_DIRECCCION_WEB"
NB_HOJA4="Hoja1"

With Sheets(NB_HOJA4).QueryTables.Add(Connection:=query_string,
Destination:=Sheets(NB_HOJA4).Range("A1"))
.name = "Hay_XML"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = False '
.RefreshStyle = xlOverwriteCells
.SavePassword = False
.SaveData = False
.AdjustColumnWidth = False
.RefreshPeriod = 0
.WebSelectionType = xlAllTables
.WebFormatting = xlWebFormattingNone
.WebPreFormattedTextToColumns = True
.WebConsecutiveDelimitersAsOne = True
.WebSingleBlockTextImport = False
.WebDisableDateRecognition = False
.EnableEditing = False
.Refresh BackgroundQuery:=False
End With
my_queryname = Sheets(NB_HOJA4).QueryTables(1).name
Sheets(NB_HOJA4).Names(my_queryname).Delete


Gracias por adelantado me urge bastante.




Hola Gema :-)

Fijate que la URL este bien escrita "URL;http://UNA_DIRECCCION_WEB" , si
no esta bien escrita da error en esa linea de codigo :-)

Si la tienes bien escrita pon nos el error que lanza :-)

Comentanos :-)

Saludos
Monica



¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#2 UnaDelForo
14/12/2006 - 09:10 | Informe spam
Hola Mónica!

La dirección URL está bien porque para otras consultas que tardan
menos funciona correctamente. No pongo la URL por motivos de
privacidad.

Con lo anterior el error que daba era:
1004: la consulta Web no pudo devolver datos porque la consulta
excedió el tiempo, error en tiempo de ejecucion

Probé otra solucion:

Public Function Prueba()

Dim objSvrHTTP

XML_path = DIRECCION WEB
Set objSvrHTTP = New MSXML2.XMLHTTP


objSvrHTTP.Open "GET", XML_path, False
objSvrHTTP.send

Open "C:\Gemilla.xml" For Output As #1 ' Open file for output.
Write #1, objSvrHTTP.responseText
Close #1 ' Close file.


End Function

En este caso, da el error en la línea: objSvrHTTP.send

El error es:
1004, error en tiempo de ejecucion
Se ha producido el error '-2146697205 (800c000b)' en tiempo de
ejecución: The operation was time out

Ni idea de el por qué y no veo muchas más soluciones pero me
gustaria saber de que depende esto de la memoria del ordenador???

Muchas gracias.

Tux ha escrito:

UnaDelForo escribió:
> Hola gente!
>
> Estoy realizando una consulta web desde visual basic en Excel. El
> porblema es que la consulta lleva su tiempo en ejecutarse y se debe
> exceder el límite de la conexión de la request http.
>
> La consulta no se puede reducir más, además si se ejecuta en el TOAD
> no hay problemas de pérdidas de conexión con el JDBC y devuelve los
> datos correctamente.
> La consulta devuelve un CLOB que lo almacena en sesion.
> Posteriormente se realizaria una segunda consulta para obtener el CLOB
> de session... pero esto no llega a ejecutarse porque da el error antes
> en el cliente EXCEL en la línea:
>
> .Refresh BackgroundQuery:=False
>
> ¿Alguién sabe alguna solución?
> Si no tengo mal entendido el tiempo de conexión http es un parámetro
> del registro de las máquinas locales... de todas formas, esta solucion
> no me vale porque habria que estar configurando las máquinas de
> tooooodo el personal de una empresa... ufff esto no cuela como
> solución!
>
>
> La forma de la consulta web es:
>
>
> query_string="URL;https://UNA_DIRECCCION_WEB"
> NB_HOJA4="Hoja1"
>
> With Sheets(NB_HOJA4).QueryTables.Add(Connection:=query_string,
> Destination:=Sheets(NB_HOJA4).Range("A1"))
> .name = "Hay_XML"
> .FieldNames = True
> .RowNumbers = False
> .FillAdjacentFormulas = False
> .PreserveFormatting = True
> .RefreshOnFileOpen = False
> .BackgroundQuery = False '
> .RefreshStyle = xlOverwriteCells
> .SavePassword = False
> .SaveData = False
> .AdjustColumnWidth = False
> .RefreshPeriod = 0
> .WebSelectionType = xlAllTables
> .WebFormatting = xlWebFormattingNone
> .WebPreFormattedTextToColumns = True
> .WebConsecutiveDelimitersAsOne = True
> .WebSingleBlockTextImport = False
> .WebDisableDateRecognition = False
> .EnableEditing = False
> .Refresh BackgroundQuery:=False
> End With
> my_queryname = Sheets(NB_HOJA4).QueryTables(1).name
> Sheets(NB_HOJA4).Names(my_queryname).Delete
>
>
> Gracias por adelantado me urge bastante.
>

Hola Gema :-)

Fijate que la URL este bien escrita "URL;http://UNA_DIRECCCION_WEB" , si
no esta bien escrita da error en esa linea de codigo :-)

Si la tienes bien escrita pon nos el error que lanza :-)

Comentanos :-)

Saludos
Monica



¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#3 Tux
14/12/2006 - 11:49 | Informe spam
UnaDelForo escribió:
Hola Mónica!

La dirección URL está bien porque para otras consultas que tardan
menos funciona correctamente. No pongo la URL por motivos de
privacidad.
..




Hola Gema :-)

Pues mucho me temo que el servidor esta out osea que no esta disponible
:-( verificalo si es asi :-)

comentanos ok? :-)

Saludos
Monica


¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#4 UnaDelForo
14/12/2006 - 16:45 | Informe spam
Sí, la causa tiene que ver con que se pierde la conexion de la request
del http... pero se sabe de que depende esto???

¿¿Hay alguna constante en la máquina del cliente o en VBA que
define el tiempo de conexion de los objetos que hacen la consulta Web
(MSXML.XMLHTTP)??

¿¿Hay otra forma de mantener la sesion y se puedan realizar consultas
Web a Bases de datos que conlleven largos tiempos de proceso (45 min,
por ejemplo)??

Gracias

Tux ha escrito:

UnaDelForo escribió:
> Hola Mónica!
>
> La dirección URL está bien porque para otras consultas que tardan
> menos funciona correctamente. No pongo la URL por motivos de
> privacidad.
> ..


Hola Gema :-)

Pues mucho me temo que el servidor esta out osea que no esta disponible
:-( verificalo si es asi :-)

comentanos ok? :-)

Saludos
Monica


¡Un SAludo! :-)

www.fermu.com
www.zorval.es
Respuesta Responder a este mensaje
#5 Tux
15/12/2006 - 19:44 | Informe spam
UnaDelForo escribió:
Sí, la causa tiene que ver con que se pierde la conexion de la request
del http... pero se sabe de que depende esto???

¿¿Hay alguna constante en la máquina del cliente o en VBA que
define el tiempo de conexion de los objetos que hacen la consulta Web
(MSXML.XMLHTTP)??

¿¿Hay otra forma de mantener la sesion y se puedan realizar consultas
Web a Bases de datos que conlleven largos tiempos de proceso (45 min,
por ejemplo)??

Gracias




Hola Gema :-)

Perdona en tardarte a contestar pero he estado de viaje y hace un rato
que llegue :-).

A ver comentanos que quieres realizar en realidad, para ello te comento,
que mediante SQL puedes extraer datos de una web pero para ello tienes
que tener acceso a su base de datos. ¿ Tienes acceso a esa base de datos?

Lo cierto es que este componente MSXML XMLHTTP no lo he utilizado nunca,
pero puedes realizar largos tiempos de consulta a esa web si tienes
acceso a esa base datos, y la conexcion request depende del servidor :-)

Bueno nos comentas :-)


Saludos
Monica



¡Un SAludo! :-)

www.fermu.com
www.zorval.es
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida