Muchas gracias por tu pronta respuesta.
En realidad el código que tu has puesto era similar a lo que yo estaba probando pero al verlo caí en el error, me explico.
Tengo una función:
Código Delphi
[-]function Query( Peticion : string ) : TZQuery;
Que ejecuta la peticion en mi componente ZQuery.
Yo lo que hacía era algo similar a:
Código Delphi
[-] Peticion := 'SELECT nombre FROM usuarios WHERE conectado=1';
Query( Peticion ).First;
While Not Query( Peticion ).Eof Do begin
Showmessage( Query( Peticion ).FieldByName('nombre').AsString);
Query( Peticion ).Next;
end;
Con lo cual al hacer la peticion en todas las sentencias siempre obtenia el primer campo.
Ahora lo cambié a:
Código Delphi
[-] var
ZQuery : TZQuery;
............
Peticion := 'SELECT nombre FROM usuarios WHERE conectado=1';
ZQuery := Query( Peticion );
ZQuery.First;
While Not ZQuery.Eof Do begin
Showmessage( ZQuery.FieldByName('nombre').AsString);
ZQuery.Next;
end;
Y perfecto, el error no estaba en el mal uso de first y next sino en el mal uso de mi propia function.
Gracias
