Auf das Recordset musst Du im Normalfall gar nicht direkt zugreifen. Das Recordset ist die Ergebnismenge der Abfrage (also die Zeilen), Fields sind die Felder (also die Spalten), die Du abgefragt hast. Auf Fields kannst Du direkten Einfluss nehmen, auf das Recordset nicht.
Delphi-Quellcode:
q.First;
//zeilenweise durchgehen
while not q.EOF do
begin
//spaltenweise durchgehen
for i := 0 to q.Fields.Count - 1 do
ShowMessage(q.Fields[i].AsString);
q.Next;
end;