Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Progress bar con query (https://www.clubdelphi.com/foros/showthread.php?t=63782)

Paulao 02-03-2009 20:23:35

Progress bar con query
 
He buscado el tema, pero me dice siempre que no ha tema. La pregunta es: Como hago para poner una progressBar o TGauge mientras una query es ejecutada? Gracias a todos!!

ContraVeneno 02-03-2009 20:40:06

¿cómo te conectas a la base de datos?

Si estas utilizando ADO, un TADOQuery por ejemplo, puedes utilizar el evento OnFetchProgress para actualizar tu barra.

La otra opción es utilizar hilos de ejecución (TThread)

amadis 02-03-2009 20:42:19

Como no sabes cuanto va a demorar en cargar el contenido
Puedes poner un Ttimer cada 1 seg que incremente en 1 (hasta 100 y luego de 1 a 100) el progreso del objeto que uses.

Ese lo activarias en la linea anterior a la que activa el Tquery y pondrías visible el PrograssBar

Y en la linea siguiente (que se ejecuta tras terminar el Tquery) desactivas el Ttimer y ocultas el TprogressBar.

Espero haber ayudado

Cheerpipe 03-03-2009 01:26:38

Cuando las consultas son rapidas normalmente no utilizo progressbar, en cuambio cuando son consultas gordas, ejecuto la consulta desde un hilo independiente del programa y muestro una pequeña ventana modal sin borde con un gif de progreso circular indicando que la operacion puede tardar unos segundos.

Es importante que bloquees el resto de la aplicacion para no ejecutar por error una segunda consulta a la DB desde la misma aplicacion, de forma paralela a la actual en ejecucion.

Esto lo hago creando y mostrando el modal justo despues de la linea de arranque del hilo de ejecucion de la consulta, luego al terminar la consulta envio un mensaje al formulario modal, y con ello lo cierro.

ciudad54 23-07-2016 23:46:54

He tratado de utilizar el evento FetchProgress pero no me funciona...

Algun ejemplo en concreto que puedan mostrar?

ciudad54 30-08-2016 20:14:56

Código Delphi [-]
with ADOQuery1 do
begin
SQL.Clear;
SQL.Add('select * from Tabla1');
ExecuteOptions := [eoAsyncFetch];
Open;
end;

En el Evento OnFetchProgress del ADOQuery:

ProgressBar1.Max := MaxProgress;
ProgressBar1.Position := Progress;
Application.ProcessMessages;


La franja horaria es GMT +2. Ahora son las 23:10:52.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi