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)
-   -   ¿liberar memoria despues de usar una Query? (https://www.clubdelphi.com/foros/showthread.php?t=26068)

Lepe 11-11-2005 01:07:39

vtdeleon, las explicaciones no salen siempre como uno quiere ;).

Cita:

Empezado por Lepe
Pon el código para crear tu TQuery.

Eso en la primera respuesta del hilo :D

saludos

mrmanuel 01-12-2005 15:07:18

hola a todos.

siento el retraso y agradezco a todos los compañeros que han respondido a este hilo. no he podido postear el codigo porque he estado muy liado en el trabajo.

Pero prometo que esta tarde-noche postie dicho código.

Disculpen la tardanza.

Gracias

kcbb 31-10-2006 20:58:18

como liberar o terminar la aplicacion?
 
Buenas tengo el siguiente problema, ejecuto un Query, pero se queda en memoria, he usado varias formas para tratar de liberarlo y nada, estas son las que he usado
QRY4.EnableControls;
QRY4.DisableControls;
QRY4.First;
FreeAndNil(qry4);
QRY4.free;
QRY4.Destroy;
QRY4.DestroyComponents;
QRY4.FreeOnRelease;
QRY4.RemoveComponent(QRY4);
QRY4.CleanupInstance;

Lepe 01-11-2006 01:47:51

Dependiendo de cómo se crea y donde se crea esa consulta, habrá que usar una forma u otra de liberarlo.

Por regla general, si Delphi lo crea, que Delphi lo destruya.

Me conviene destruirlo a mi, entonces lo creo yo y lo libero yo.

Hay otras variantes, pero yo al menos uso esas 2.

¿como sabes que se queda en memoria?

saludos

kcbb 01-11-2006 03:55:26

por que cierro el programa y se queda el ejecutable en el administrador de tareas, esto queda en background, tambien te das cuenta pq delphi que corriendo peros los formularios cerrados. Pero esto sucede nada mas cuando uso el query. Otra cosa que me he dado cuenta es que nada mas pasa con Base de Datos en Pervasic ( que es una de las que uso en la empresa, la otra es AS400 y no da este error).

Lepe 01-11-2006 14:20:14

En principio, lo correcto sería:
Código Delphi [-]
qry4.Close;
FreeAndnil(qry4);

Aunque me gustaría ver como creas el query.

Si lo haces con qry4 := Tquery.Create(nil) (ojo al parámetro nil) o bien la creas en tiempo de diseño, no deberías tener problemas.

Puede que no sea por la destrucción de ese query, sino por efectos colaterales que ésta produzca. Para que te hagas una idea de lo que quiero decir: puede que en el AfterClose de esa query, intentes abrirla de nuevo y por tanto jamás se cerrará por completo, o incluso estás abriendo otra consulta, form o similar en ese evento o uno parecido.

Lamento no tener una respuesta directa. Espero que te dé algunos indicios para conseguir solucionar el problema.

Saludos


La franja horaria es GMT +2. Ahora son las 14:07: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