PDA

Ver la Versión Completa : Objeto progress bar no funciona


tulio
20-04-2004, 13:21:15
Buen día

Mi duda es la siguiente, quiero mostrar en pantalla el progreso de un proceso con un objeto progress bar cuando disparo por ejemplo un tadoquery o un tadostoredprocedure, pero ni el evento onfetchprogres de los componentes ADO ni el objeto progressbar puden tomar el control para mostrar el progreso de la barra.

saludos tulio

__cadetill
20-04-2004, 16:06:21
Hasta que no empieza el proceso de "recogida de resultado" no podrás actualizar (controlar el evento fech) la barra de progreso. Por tanto, surante el tiempo que dure la ejecución del SQL en el servidor, tu app quedará "colgada" a no ser que la pongas en un Thread (que considero sería rizar demasiado el rizo)

roman
20-04-2004, 16:21:54
Por tanto, surante el tiempo que dure la ejecución del SQL en el servidor, tu app quedará "colgada" a no ser que la pongas en un Thread (que considero sería rizar demasiado el rizo)
Difiero un poquitín. Más bien creo que generalmente no rizamos el rizo lo suficiente y no nos preocupamos por este tipo de detalles. Si la consulta toma mucho tiempo queda mucho mejor que el usuario no vea colgada la aplicación e incluso poder seguir trabajando en ella.

// Saludos

__cadetill
20-04-2004, 16:35:17
Si, estoy de acuerdo pero....
Si la consulta toma mucho tiempo ......
a partir de cuanto se considera mucho tiempo? 20sg? 5min? No se, creo que, dependiendo el tiempo de respuesta que pueda tener, no vale la pena complicar el programa. No obstante, todo queda a manos del programador decidir si se quiere complicar o no. Personalmente, no sería la primera vez que uso un Thread para ejecutar SQL que duran y duran y duran :D :D No obstante, no es mi práctica habitual

__cadetill
20-04-2004, 16:38:18
Sólo añadir que, no sólo tiene la "complejidad" técnica de ejecutar un Thread, sino que también tiene la "complejidad" técnica de hacer un método de aviso al usuario de que ha finalizado el Thread (SQL) y recuperar esa consulta de alguna manera

roman
20-04-2004, 16:41:35
a partir de cuanto se considera mucho tiempo?
Si el usuario se va por un café tomando como pretexto la demora entonces es mucho tiempo :D .

Pero ya en serio, coincido en que si la consulta dura "muy poco" el esfuerzo del peinado no vale la pena. Sin embargo sería ideal que las componentes "query-like" tuviesen este comportamiento integrado, es decir que por sí solas corrieran en un hilo aparte de manera que el esfuerzo ya no sería nuestro.

// Saludos

__cadetill
20-04-2004, 16:43:39
Sin embargo sería ideal que las componentes "query-like" tuviesen este comportamiento integrado, es decir que por sí solas corrieran en un hilo aparte de manera que el esfuerzo ya no sería nuestro.

Te animas ha hacer dicho componente (no se si existe, la verdad). Yo lo usaba encantado :D :D

roman
20-04-2004, 16:54:03
Pues no debe ser difícil ¿no? Es un simple descendiente de TQuery que maneje el hilo. En cuanto a la complejiad técnica de avisar al usuario pues simplemente sería trasladar el evento OnTerminate del thread al TThreadQuery para en él colocar el aviso.

Ya te cooperé con el nombre de la componente, el resto lo espero encantado. :D

// Saludos

__cadetill
20-04-2004, 17:02:41
Ya te cooperé con el nombre de la componente, el resto lo espero encantado. :D
Anda que... menuda ayuda la tuya :D :D

No se, quizás si tengo tiempo y ganas le doy alguna vuelta al asunto a ver que sale :p

roman
20-04-2004, 17:23:44
Anda que... menuda ayuda la tuyaEsto de poner nombres es más difícil de lo que parece. Ayer mismo alguien preguntó acerca del origen del nombre Delphi, si sigues el enlace que dí verás que no es cosa trivial. :D

// Saludos

tulio
21-04-2004, 12:28:58
Cadetill y Roman

Muchas gracias por la respuestas y la preocupacion por el tema

saludos

tulio