si lo que tienes es que recorrer toda la tabla entera, que por lo que tu dices es lo que entiendo, puedes hacer algo como:
Código:
var
nombre:string;
id:integer;
begin
with query1 do begin
close;
sql.clear;
sql.add('select * from precio');
open;
while not eof do begin
nombre := query1.fieldbyname('nombre').value;
id := query1.fieldbyname('id').value;
next;
end;
end;
end;
aqui lo que haces es que nombre e id, tengan el valor de cada linea, pero tu lo salvas o haces lo que quieres con el antes de que pase a la siguiente linea, por que sino el valor que viene pisa al que habia.
Espero te ayude y sea estyo lo que buscas.
Saludos