FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
||||
|
||||
Tiempo de espera.-
Hola amigos..
Nuevamente recurro a uds, para ver si me pueden ayudar a solucionar un problemilla que tengo, resulta que ejecuto una consulta en Firebird, esta consulta demora 50 segundos aprox. en mostrar los resultados, entonces lo que hago desde delphi es mostrar un "Reloj" que me muestra el tiempo transcurrido en la consulta, pero el programa se queda pegado hasta que la consulta se ejecuta y muestra los resultados( utilizo los componentes IBX). Existe alguna propiedad en los componentes IBX que me permita realizar algo asi como un Application.ProcessMessages o algo por el estilo para que me programa no se quede "pegado", muchas gracias por su ayuda... esta es la consulta..
|
#2
|
||||
|
||||
existe otro componente de conexion a base de datos que me permita hacer esto?.. (aunq' me imagino que es el firebird el que provoca esto)..cualquier aporte se los agradecere mucho..
|
#3
|
||||
|
||||
Si el problema es que la consulta tarda mucho, no creo que se solucione con componentes de conexión; De todas formas yo optaría:
1º) Como primera opción intentar reducir el tiempo de la consulta; Revisar los índices que tienes creados para optimizar, intentar crear un Stored Procedure que te realice la misma consulta,... 2º) Tema aplicación; No se los componentes que estás utilizando, se que hay algunos que permiten ejecutar consultas en modo asíncrono; Revisa si los que utilizas poseen esa opción. Con esto conseguirás que el control vuelva al programa mientras se lanza la consulta y se recuperan los datos.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#4
|
|||
|
|||
tambien puedes crear un thread
y en el execute del thread realizar la consulta eso si , se recomienda que el thread tenga su propio tibdatabase y su tibtransaction. |
#5
|
||||
|
||||
Podrías poner un TTimer y una variable global que tenga la hora en que se inició el select.
Poner el Timer a 1 segundo. En el procedimiento que ejecuta select, activar el timer. OnTimer poner algo asi: o
|
#6
|
||||
|
||||
Gracias por sus respuestas..
lo que dice duilioisola es lo que estoy haciendo, pero la consulta , al ejecutarse, no permite que se refresque el timer, eso es lo que busco solo poder refrescar el timer, para mostrar el tiempo transcurrido..muchas gracias por su ayuda compañeros..
|
#7
|
||||
|
||||
Utilizo los componentes de la paleta "Interbase"(IBDataBase,IBTransacction,IBQuery...)..
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Tiempo de Espera | barrauda | Varios | 4 | 16-07-2007 02:28:01 |
Tiempo de Espera Agotado | eduardoemh | SQL | 0 | 28-06-2007 21:40:41 |
Tiempo de espera | emeritos | Varios | 1 | 29-06-2006 11:49:26 |
Incrementar el tiempo de espera en ADO | mvelgar | Conexión con bases de datos | 4 | 14-07-2005 21:43:05 |
Valor de tiempo de espera caducado | senpiterno | MS SQL Server | 3 | 01-05-2005 02:50:03 |
|