Hallo,
wie schon geschrieben, als Bsp.
Select Count(*) As MySum From Table1.
Durch das
As sagst du dem
SQL-Server,
dass er das Feld "Umbenennen" soll.
Du kannst jetzt per Fields[0].AsInteger oder durch FieldByName('MySum').AsInteger
drauf zugreifen.
Das Fields[0] ist hier einfach schneller,
weil FieldByName intern eine Schleife ist,
die das Feld über den Name sucht.
Wenn ich schneller sage, muss man allerdings das relativ sehen,
die Schleife macht lokal einen Stringvergleich.
Gemessen an den SQLKosten (
Query) Netzwerk-Kosten (Traffic)
sollte es verschwindend gering sein.
Ich persönlich benutzen Fields[0] genau dann,
wenn das Ergebnis nur ein Feld ist.
Bei allen anderen Sachen nehme ich FieldByName,
weil dadurch sichergestellt ist, das ich in meinem Code
keinen Fehler (zumindestens in dieser Hinsicht) habe.
Ändert sich z.B. eine
Query und ich vergesse das an einer Stelle,
findet das mein dunit sofort raus, bei Fields kann an der betrreffenden
Stelle ja wer weiss was stehen.
Heiko