Einzelnen Beitrag anzeigen

hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: Unterschied Fields[0] zu FieldByName(xy)

  Alt 24. Jul 2007, 09:05
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
Heiko
  Mit Zitat antworten Zitat