Ver Mensaje Individual
  #4  
Antiguo 27-09-2007
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Reputación: 26
maeyanes Va por buen camino
Hola...

Para que siempre te libere el objeto TADOQuery, usa la construcción try..finally, ya que esta siempre ejecuta la parte del finally haya o no haya excepción...

Y te repito de nuevo, no uses el método Destroy para liberar objetos, ese método es de uso interno de Delphi, usa el método Free...

Sobre tu código de prueba, si haces un while True do, lo único que vas a lograr es un loop infinito, ya que True siempre va a ser True...

Puedes probar lo siguiente:

Código Delphi [-]
if Prueba then
  ShowMessage('Prueba exitosa');


// Código de Prueba
function Prueba: Boolean;
var
   difAnt: Double;
   I: Integer;

begin
  Result := True;
  with TADOQuery.Create(nil) do
    try
      try
        Connection := AC1;
        SQL.Text:= 'SELECT * FROM Datos WHERE Historico=No';
        Open;
        First;
        while not Eof do
          Next;
        Close
      except
        ShowMessage('Ocurrió un error');
        Result := False
      end
    finally
      Free
    end
end;

Sobre TADOQuery, la verdad no sabría decirte si tiene algún tipo de error o limitante en Delphi 5, sería investigar un poco al respecto...



Saludos...
Responder Con Cita