Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   congelado de la imagen de la aplicacion (https://www.clubdelphi.com/foros/showthread.php?t=33445)

delphi_oracle 06-07-2006 21:51:53

congelado de la imagen de la aplicacion
 
Hola A tods.
HE notado que al lanzar un grupo de snapshot Oracle desde Delphi estos tardan muchisimo y hasta q no van terminado no van pasando al siguiente.

Con el consiguiente congelado de la imagen de la aplicacion y el tipico mensaje ' No responde'.

Alguien a probado a mejorar esta situación??

Como puedo lanzar querys y mientras terminan que vayan diciendo por donde van ?

saludos

Bicho 07-07-2006 13:07:44

Si estás realizando un grupo de consultas entre consulta y consultas puedes poner la siguiente instruccion

Código Delphi [-]
Application.Processmessage;

Espero te sirva.

Saludos

delphi_oracle 10-07-2006 20:17:24

snapshot Oracle , pantalla congelada hasta fin proceso
 
Cita:

Empezado por Bicho
Si estás realizando un grupo de consultas entre consulta y consultas puedes poner la siguiente instruccion


Código Delphi [-]Application.Processmessage;



Espero te sirva.

Saludos

Si la verdad sirve pero aun asi la respuesta es muy mala . minetras ejecuta querys larga como la indicada (snapshot.refresh (....) ) el cursor se pone en modo reloj sql y cuelga la aplicacion hasta q esta termina el proceso de ejecucion de la query.

Si el proceso es mas de uno imaginate queda colgada la aplicacion ppara horas.

algunas veces no deja ni maximar la aplicacion .
¿ No existe manera de que minetras ejecute la query me muestre un progress bar o gif animado como hacen la mayoria de aplicaciones??

Si pongo un progress bar sin mas, me terminara poniendo en blanco la imagen de la aplicacion como si estuviera colgado hasta q termine el proceso...
espero haberme explicado

gracias

Bicho 11-07-2006 09:07:12

Mientras dure la ejecución de cada Query la aplicación se quedará congelada, eso creo que no lo podrás evitar.

Si sabes la cantidad de Querys que se van a ejecutar porque las tienes puestas tú las que se van a hacer o estas dentro de un bucle puedes poner la progressbar y actualizar al final de cada query, eso refrescará tu aplicación momentaneamente hasta que se ejecute la siguiente Query, pero al menos tendrás una orientación de por donde va y lo que le queda por terminar.

Tambien sería bueno que nos pusieras esa parte de código que te da tantos problemas para así poder ayudarte mejor.

Y por último, intentar optimizar al máximo las Querys, crear índices si es posible y necesario, etc.

Espero te sirva

Saludos

delphi_oracle 11-07-2006 21:21:39

Cita:

Empezado por Bicho
Mientras dure la ejecución de cada Query la aplicación se quedará congelada, eso creo que no lo podrás evitar.

Si sabes la cantidad de Querys que se van a ejecutar porque las tienes puestas tú las que se van a hacer o estas dentro de un bucle puedes poner la progressbar y actualizar al final de cada query, eso refrescará tu aplicación momentaneamente hasta que se ejecute la siguiente Query, pero al menos tendrás una orientación de por donde va y lo que le queda por terminar.

Tambien sería bueno que nos pusieras esa parte de código que te da tantos problemas para así poder ayudarte mejor.

Y por último, intentar optimizar al máximo las Querys, crear índices si es posible y necesario, etc.

Espero te sirva

Saludos

Si Eso es lo que hasta ahora hago meter un progress entre cada query pero sigue siendo muy precario la respuesta , piensa que un refresh de un snapshot Oracle puede tardar en buscar y encontrar la replica.
el codigo es simple
1)mensaje de incio de query
2)exe dbms_snapshot.refresh(....
3)progress y mensaje de evolucion
4) Nueva query y vuelta paso 1

La verdad que no le veo solución me tendre q hacer algo en plan script creo q con delphi no queda nada elegante mantener pantalla en blanco cuando hasta proximos refresco de pantalla .
Grcias de todas formas,,

ganegri 19-08-2006 10:57:37

hola delphi_oracle. Me encontre con un error similar al tuyo, lo que busco es que mientras se ejecuta una peticion remota, muestre una especiel de splash animada (con un GIF, utilizo JEDI para esto). Lo que pasa es que muestra la splash pero sin vida alguna!
Pudiste solucionar ese problema?
Saludos, Gabriel.

ramiretor 25-08-2006 00:11:47

Hola a todos:
Pues no soy ni el experto en Delphi ni en la pc por supuesto,pero me parece que si hay soluciones elegantes como lo plantea, Delphi-oracle. Una solución (porque ya has hecho tu parte de optimizar todo en la base de datos) es usar programación "multihilo" para que la aplicación no se quede dormida. Es la clase Thread en Delphi y en Internet debe haber información al respecto. Te comento además que cuando uso ese tipo de programación he visto que existen algunos problemas de inestabilidad en la aplicación(me parece también que es un tema avanzado de programación), pero despues como de 100 pruebas funciona

Por supuesto, a lo mejor alguien con muchos mas conocimientos que yo te pueda dar mejor solución

Saludos a todos

delphi_oracle 05-09-2006 21:00:39

Re : Thread
 
Sin lugar a duda es la clase THREAD la mas elegante y efectiva.
se seguira quedando bloqueada en el hilo q se ejecuta pero menos tiempo o por lo menos visible en el hilo principal.


La franja horaria es GMT +2. Ahora son las 07:27:49.

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