Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-07-2005
Avatar de fryguy
fryguy fryguy is offline
Miembro
 
Registrado: mar 2004
Posts: 18
Poder: 0
fryguy Va por buen camino
Ejecución de query sin congelamiento

Cuando ejecuto alguna consulta que tarda demasiado la aplicación se congela y no me devuelve el control hasta que termina.
Me refiero en particular a ejecuciónes de querys en los cuales no es necesario que me devuelva valores como por ejemplo una store procedure y se ejecuta con ExecSQL en vez de con Open.
Por ejemplo:
Código:
 
ADOQuery.SQL.Text := 'spAlgo @param1 = 8';
ADOQuery.ExecSQL;
¿como puedo hacer para ejecutar sin que la aplicación se congele?

Gracias por adelantado.
__________________
"Fools are the only folks on earth who can absolutely count on getting what they deserve" S.K.
Responder Con Cita
  #2  
Antiguo 19-07-2005
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Nunca lo he probado en Delphi, pero he visto que los TAdoQuerys tienen una "ExecuteOption" llamada eoAsyncExecute.
Esto tendría que producir que las consultas se ejecuten en forma asincrónica!

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 20-07-2005
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.293
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra opcion (que tampoco he probado) es utilizar Threads para ejecutar consultas o abrir tablas (también deberá funcionar en éste caso). Hay un artículo de MArcelo torres en:
http://www.delphi3000.com/articles/article_1503.asp?SK=
Te puedes registrar de forma gratuíta para acceder al artículo titulado:
"Opening Tables/Queries in Threads"

Si no deseas hacerlo o no tienes tiempo puedes acceder al mismo código en:
http://www.delphibyte.com/article/viewart.php?id=187

NOTA: Tal vez te ayude para leerlo ir a ésta dirección:
http://babelfish.altavista.com/
donde pone "Translate a Web page" escribir la anterior y seleccionar como idiomas: Chinesse-simpl to English
__________________
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.
Responder Con Cita
  #4  
Antiguo 20-07-2005
Avatar de fryguy
fryguy fryguy is offline
Miembro
 
Registrado: mar 2004
Posts: 18
Poder: 0
fryguy Va por buen camino
Ahora voy a probar con las direcciones que me pasó Neftalí pero mientras tanto les cuento que he intentado usar el eoAsyncExecute y que el estado no cambia cuando uso el ExecSQL (si cuando uso el Open) entonces no encontré la forma de controlar la ejecución asíncrona.
En una de esas hice algo mal en las pruebas y por eso no funcionaba, como ya me ha pasado otras veces no lo descarto del todo.

La idea de ejecutar las consultas con un thread es buena, se me había pasado por la cabeza pero quería verificar con los expertos alguna idea más simple.

Gracias por todo y si a alguno se le ocurre algo más no me voy a negar a escuchar ;D.
__________________
"Fools are the only folks on earth who can absolutely count on getting what they deserve" S.K.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 23:39:54.


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
Copyright 1996-2007 Club Delphi