In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

Conexi

Foro público de Xailer en español
Responder
Arturo
Mensajes: 77
Registrado: Jue Abr 22, 2010 2:39 pm

Conexi

Mensaje por Arturo »

Hola a todos,
tengo que abrir una base de datos access bastante grande a través de ado y
tarda demasiado (unos 10 seg.) me gustaría saber como poder realizar algún
proceso
mientras conecta y abre, por ejemplo, mostrar una progressbar, un mensaje de
espere......., gif animado, reloj de arena, ect.... no consigo capturar
ningún evento que
indique esta acción o alguna propiedad de los datacontrols.
Muxas gracias de antemano.
jasm.quitaesto
Mensajes: 420
Registrado: Sab Ago 16, 2008 9:06 pm

Conexi

Mensaje por jasm.quitaesto »

Arturo,
Dale un vistazo a este artí­culo:
http://xailer.info/esp/?p=69
Saludos,
Alf+.
Arturo escribió:
> Hola a todos,
> tengo que abrir una base de datos access bastante grande a través de ado y
> tarda demasiado (unos 10 seg.) me gustarí­a saber como poder realizar algún
> proceso
> mientras conecta y abre, por ejemplo, mostrar una progressbar, un mensaje de
> espere......., gif animado, reloj de arena, ect.... no consigo capturar
> ningún evento que
> indique esta acción o alguna propiedad de los datacontrols.
> Muxas gracias de antemano.
>
>
Arturo
Mensajes: 77
Registrado: Jue Abr 22, 2010 2:39 pm

Conexi

Mensaje por Arturo »

Muchas gracias por la respuesta Jose,
pero a eso ya le habia echado un vistazo, y no es el problema que intento
resolver, en estos ejemplos la espera del los mensajes las realiza con un
for next o
un contador, lo que necesito es realizar la cuenta MIENTRAS el conector se
abre y MIENTRAS el dataset recupera la consulta con los datos.
Es decir , poder lanzar la aperttura del dataset y un progressbar a la vez,
estimando el tiempo de unos 10 segundos (ya que es imposible saber cuando
acaba de cargar exactamente
el dataset ) y con el evento onshow del formulario, cerrar el progressbar.
O por ejemplo, cambiar el cursor a reloj de arena al iniciar la carga del
data y finalizar el cursor en el evento oncharge del browse que muestra los
resultados.
Alguna idea???
gracias
"José Alfonso Suárez Moreno" <jasm.quitaesto@tpvsoft.com> escribió en el
mensaje news:4ac1ef75$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Arturo,
>
> Dale un vistazo a este artículo:
>
> http://xailer.info/esp/?p=69
>
> Saludos,
>
> Alf+.
>
> Arturo escribió:
>> Hola a todos,
>> tengo que abrir una base de datos access bastante grande a través de ado
>> y
>> tarda demasiado (unos 10 seg.) me gustaría saber como poder realizar
>> algún
>> proceso
>> mientras conecta y abre, por ejemplo, mostrar una progressbar, un mensaje
>> de
>> espere......., gif animado, reloj de arena, ect.... no consigo capturar
>> ningún evento que
>> indique esta acción o alguna propiedad de los datacontrols.
>> Muxas gracias de antemano.
>>
jlcapel
Mensajes: 16
Registrado: Vie Dic 28, 2007 1:19 am

Conexi

Mensaje por jlcapel »

Arturo,
Lo tienes difícil.
De forma normal, ADO lanza la consulta al servidor y hasta que éste no le da
la respuesta,
nuestra aplicación se queda 'congelada'.
El tema está que tOleauto no admite eventos. Si los admitiera se podría
lanzar la consulta de forma asíncrona y Ado te iría informando con los
eventos que tiene para ello (ahora no estoy en mi equipo y no recuerdo como
se llaman) mientras podemos hacer otras cosas.
Puedes probar a cambiar el cursorlocation y cursortype para conseguir que el
servidor te devuelva cuando tenga el primer registro (y no esperarse a que
los tenga todos). Con esto lo que ganamos es que el control del programa
'vuelve a nosotros' casi inmediatamente dejándonos en el primer registro.
Sin embargo esto tiene la contrapartida de que si haces un ::goBottom() ADO
no nos devolverá el control hasta que haya 'llegado' al último registro (y
para ello se tiene que leer todos los registros entre el primero y el
último).
En fin... puedes ir probando hasta encontrar la combinación que mejor se
adapte a tu programa.
Saludos,
José Luis Capel
"Arturo" <artcabpla@pagodetributos.com> escribió en el mensaje
news:4ac20214$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Muchas gracias por la respuesta Jose,
> pero a eso ya le habia echado un vistazo, y no es el problema que intento
> resolver, en estos ejemplos la espera del los mensajes las realiza con un
> for next o
> un contador, lo que necesito es realizar la cuenta MIENTRAS el conector se
> abre y MIENTRAS el dataset recupera la consulta con los datos.
> Es decir , poder lanzar la aperttura del dataset y un progressbar a la
> vez, estimando el tiempo de unos 10 segundos (ya que es imposible saber
> cuando acaba de cargar exactamente
> el dataset ) y con el evento onshow del formulario, cerrar el progressbar.
> O por ejemplo, cambiar el cursor a reloj de arena al iniciar la carga del
> data y finalizar el cursor en el evento oncharge del browse que muestra
> los resultados.
>
> Alguna idea???
>
>
> gracias
>
>
> "José Alfonso Suárez Moreno" <jasm.quitaesto@tpvsoft.com> escribió en el
> mensaje news:4ac1ef75$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Arturo,
>>
>> Dale un vistazo a este artículo:
>>
>> http://xailer.info/esp/?p=69
>>
>> Saludos,
>>
>> Alf+.
>>
>> Arturo escribió:
>>> Hola a todos,
>>> tengo que abrir una base de datos access bastante grande a través de ado
>>> y
>>> tarda demasiado (unos 10 seg.) me gustaría saber como poder realizar
>>> algún
>>> proceso
>>> mientras conecta y abre, por ejemplo, mostrar una progressbar, un
>>> mensaje de
>>> espere......., gif animado, reloj de arena, ect.... no consigo capturar
>>> ningún evento que
>>> indique esta acción o alguna propiedad de los datacontrols.
>>> Muxas gracias de antemano.
>>>
>
Arturo
Mensajes: 77
Registrado: Jue Abr 22, 2010 2:39 pm

Conexi

Mensaje por Arturo »

Gracias Jose Luis, al final lo he solucionado con un formulario que se
mantine oculto detras,
visto que una progressbar como tu comentas es imposible.
Saludos
"José Luis Capel" <jlcapel@terra.es> escribió en el mensaje
news:4ac70efb$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
> Arturo,
>
> Lo tienes difícil.
>
> De forma normal, ADO lanza la consulta al servidor y hasta que éste no le
> da la respuesta,
> nuestra aplicación se queda 'congelada'.
>
> El tema está que tOleauto no admite eventos. Si los admitiera se podría
> lanzar la consulta de forma asíncrona y Ado te iría informando con los
> eventos que tiene para ello (ahora no estoy en mi equipo y no recuerdo
> como se llaman) mientras podemos hacer otras cosas.
>
> Puedes probar a cambiar el cursorlocation y cursortype para conseguir que
> el servidor te devuelva cuando tenga el primer registro (y no esperarse a
> que los tenga todos). Con esto lo que ganamos es que el control del
> programa 'vuelve a nosotros' casi inmediatamente dejándonos en el primer
> registro. Sin embargo esto tiene la contrapartida de que si haces un
> ::goBottom() ADO no nos devolverá el control hasta que haya 'llegado' al
> último registro (y para ello se tiene que leer todos los registros entre
> el primero y el último).
>
> En fin... puedes ir probando hasta encontrar la combinación que mejor se
> adapte a tu programa.
>
> Saludos,
> José Luis Capel
>
>
> "Arturo" <artcabpla@pagodetributos.com> escribió en el mensaje
> news:4ac20214$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>> Muchas gracias por la respuesta Jose,
>> pero a eso ya le habia echado un vistazo, y no es el problema que intento
>> resolver, en estos ejemplos la espera del los mensajes las realiza con un
>> for next o
>> un contador, lo que necesito es realizar la cuenta MIENTRAS el conector
>> se abre y MIENTRAS el dataset recupera la consulta con los datos.
>> Es decir , poder lanzar la aperttura del dataset y un progressbar a la
>> vez, estimando el tiempo de unos 10 segundos (ya que es imposible saber
>> cuando acaba de cargar exactamente
>> el dataset ) y con el evento onshow del formulario, cerrar el
>> progressbar.
>> O por ejemplo, cambiar el cursor a reloj de arena al iniciar la carga del
>> data y finalizar el cursor en el evento oncharge del browse que muestra
>> los resultados.
>>
>> Alguna idea???
>>
>>
>> gracias
>>
>>
>> "José Alfonso Suárez Moreno" <jasm.quitaesto@tpvsoft.com> escribió en el
>> mensaje news:4ac1ef75$[email=1@svctag-j7w3v3j....]1@svctag-j7w3v3j....[/email]
>>> Arturo,
>>>
>>> Dale un vistazo a este artículo:
>>>
>>> http://xailer.info/esp/?p=69
>>>
>>> Saludos,
>>>
>>> Alf+.
>>>
>>> Arturo escribió:
>>>> Hola a todos,
>>>> tengo que abrir una base de datos access bastante grande a través de
>>>> ado y
>>>> tarda demasiado (unos 10 seg.) me gustaría saber como poder realizar
>>>> algún
>>>> proceso
>>>> mientras conecta y abre, por ejemplo, mostrar una progressbar, un
>>>> mensaje de
>>>> espere......., gif animado, reloj de arena, ect.... no consigo capturar
>>>> ningún evento que
>>>> indique esta acción o alguna propiedad de los datacontrols.
>>>> Muxas gracias de antemano.
>>>>
>>
>
>
Responder