Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Mostrar en Progress Bar un proceso (https://www.clubdelphi.com/foros/showthread.php?t=74074)

matti 29-05-2011 05:50:31

Mostrar en Progress Bar un proceso
 
Hola a todos
Quisiera saber si se puede hacer que desde Delphi se ejecute un procedimiento Almacenado de Firebird, ya que tarda mucho tiempo
que me mida el progeso del procedimiento almacenado en un Progres Bar.

No se como Hacer estuve mirando los Threads pero estoy un poco perdido.
Si podrian Orientarme como.
Muchas Gracias

mightydragonlor 29-05-2011 21:02:37

Es imposible saberlo, la única manera es que tu supieras que vas a modificar n registros por ejemplo, y lo haces uno a uno, sería la unica forma, lo que si se puede hacer es un thread para que lancé el sp y mientras espera que un progress bar esté en un estado marquee, este estado o estilo es como un ciclo de espera y cuando el thread haya terminado pues ocultas el progres bar.

Lepe 30-05-2011 09:40:05

De forma directa no hay, pero indirecta... pufff, todas las que se te ocurra. Así a bote pronto yo usaría eventos. En el ciclo que hagas en el procedimiento almacenado envías un evento con números yo diría del 1 al 10 para que solo sean 10 eventos a registrar, así la ventana con el progressBar registra esos 10 eventos que irá recibiendo y actualizando la barra.

Busca info sobre el IBEvent

Saludos

matti 31-05-2011 00:12:50

El SQL de mi IBQuery
"SELECT * FROM CALCULOCONTRATADOS(:TIPOFUNC, :FECHAINI, :FECHAFIN)
ORDER BY PERSONA"

Donde CALCULOCONTRATADOS es el procedimiento de Firebird y me retorna 10
campos y eso es lo que hace muchos calculos y quiero que me muestre en una barra de progreso mientras dura el proceso.

Con este codigo le envio los paramtros
Query.close;
Query.Params.Items[0].AsString := Edit1.Text ;
Query.Params.Items[1].AsDate := Fecha1.Date;
Query.Params.Items[2].AsDate := Fecha2.Date ;
Query.open;

en donde tengo que meter el thread para medir el Tiempo?

Gracias a todos por las respuestas

mightydragonlor 31-05-2011 14:55:01

el thread debe iniciar justo antes del query.open y finalizar justo después, pero eso solo durará durante se ejecuta el sp, si por ejemplo haces ponerlos antes del sps pues ponlo justo donde inicia y finaliza o puedes meterlo todo en un thread si quieres.


La franja horaria es GMT +2. Ahora son las 10:48:16.

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