Sólo como mejora, a lo ya comentado, creo que si vas a recorrer toda la tabla accediendo siempre al mismo campo, en lugar de acceder en cada paso del bucle utilizando:
Código Delphi
[-]
DataSet.FieldByName('Nombre');
te saldría más a cuenta obtener al índice del campo antes de entrar en el bucle (DataSet.Fields.IndexOf o Field.FieldNo) y luego acceder por el índice con: