Ver Mensaje Individual
  #1  
Antiguo 27-09-2007
fonx fonx is offline
Miembro
 
Registrado: feb 2007
Posts: 54
Reputación: 18
fonx Va por buen camino
Problemas al cerrar-destruir Tquery, o al hacer segunda consulta

Hola, este es mi caso (Delphi5 con access):

Bucle:
Selecciono datos
Proceso datos
Fin Bucle

La primera vez lo hace bien:

Código:
query.active:=false;
 query.SQL.text:=('SELECT * FROM Datos WHERE Historico=No');
query.active:=true;
If query.RecordCount>0 then 
   Procesar Datos
Pero las sucesivas no funciona porque no puedo hacer query.active:= false, me casca ahi. Me dice que se ha llegado a la marca de EOF y que para hacer esa operación necesita al menos un registro. Si la primera consulta no devuelve datos entonces el query esta obligatoriamente en EOF.

La solución temporal que he adoptado es que el query sea una variable local a la función de modo que cuando se llega al final de la funcion destruyo el query
Código:
query.Destroy;
pero me casca en el destroy porque me dice que "cannot perform this operation on an open dataset", y como no puedo cerrarlo pues no se si se destruye. Al entrar de nuevo en la funcion la variable query es otra nueva, pero las reservas de memoria anteriores en otras pasadas por esta funcion no se si se liberan o no.

¿Ideas? ¿Soluciones?
Responder Con Cita