Otra opción es utilizando un Componente TDatalink (es mucho más rápido ya que se mueve por el Buffer del DataSet y sin estar conectado a control alguno):
Código:
procedure Tform1.Recorrer(DataSet: TDataSet);
var
D: TDataLink;
n: Integer;
begin
D := TDataLink.Create; // No recuerdo si hacía falta algún parámetro
D.DataSource := TDataSource.Create(nil);
try
D.DataSource.DataSet := DataSet;
D.BufferCount := DataSet.RecordCount; // Esto es necesario para poder recorrer todos los registros
for n := 0 to D.BufferCount - 1 do
begin
ActiveRecord := n; // Funciona como el DataSet.Next;
// Para ver los valores de los campos utiliza
// D.DataSet['nombre_del_campo'] ó
// D.DataSet.FieldByName('nombre_del_campo').As..., etc.
end;
finally
D.DataSource.Free;
D.Free;
end;
end;
(Disculpá la demora en constestar, pero recién volví a l foro la semana pasada. Espero que te sirva...)