operar mientras se abre un recordset
Publicado por jesus (15 intervenciones) el 10/07/2006 10:52:25
Buenas, en primer lugar gracias de antemano.
Tengo una aplicación en la que utilizo varios recordset. Uno de ellos realiza consultas muy pesadas, lo que hace que aumente excesivamente el tiempo que tarda en contestar la base de datos. Tengo optimizado esto al máximo y no puedo reducir el tiempo de respuesta. Para que el usuario pueda comprobar que la aplicación no se ha quedado colgada he creado una barra de progreso que debería ir representando como se van ejecutando las diferentes instrucciones necesarias para visualizar los datos. Tengo controlado todos los puntos de este progreso, pero el que más tiempo suele llevar es la consulta y no logró que durante este tiempo la barra de progreso vaya aumentando gradualmente. Para ello he pensado utilizar un timer basandome en el tiempo máximo de respuesta de la conexión creada. Mi problema es que mientras se ejecuta el open del recordset no soy capaz de responder a más eventos, o por lo menos al que me interesa que es el del timer. He utilizado el DoEvents y no obtengo ningún resultado.
Estoy utilizando ADO 2.8, sobre una base de datos ORACLE a través de ODBC y la aplicación está realizada en Visual Basic 6.0
¿Qué puedo hacer para lograr responder a eventos mientras espero la respuesta de la base de datos?
Tengo una aplicación en la que utilizo varios recordset. Uno de ellos realiza consultas muy pesadas, lo que hace que aumente excesivamente el tiempo que tarda en contestar la base de datos. Tengo optimizado esto al máximo y no puedo reducir el tiempo de respuesta. Para que el usuario pueda comprobar que la aplicación no se ha quedado colgada he creado una barra de progreso que debería ir representando como se van ejecutando las diferentes instrucciones necesarias para visualizar los datos. Tengo controlado todos los puntos de este progreso, pero el que más tiempo suele llevar es la consulta y no logró que durante este tiempo la barra de progreso vaya aumentando gradualmente. Para ello he pensado utilizar un timer basandome en el tiempo máximo de respuesta de la conexión creada. Mi problema es que mientras se ejecuta el open del recordset no soy capaz de responder a más eventos, o por lo menos al que me interesa que es el del timer. He utilizado el DoEvents y no obtengo ningún resultado.
Estoy utilizando ADO 2.8, sobre una base de datos ORACLE a través de ODBC y la aplicación está realizada en Visual Basic 6.0
¿Qué puedo hacer para lograr responder a eventos mientras espero la respuesta de la base de datos?
Valora esta pregunta


0