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');
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...