Kommt drauf an, was du mit dem X machen willst.
Die RecNo zählt jedenfalls auch von 1 beginnend.
PS: Beim DataSnap gibt es mit den Streams das Gleiche.
Wenn die Daten in einem Datenblock (waren 32 oder 64 KB) übertragen werden, dann steht Stream.Size auf der realen Datenmenge,
aber bei mehr steht es ebenfalls auf -1 und man muß mit Read so lange lesen, bis Dieses 0 sagt, also bis nichts mehr kommt ... hier würde es also so lange laufen, bis EOF sagt, dass Schluß ist.
Fazit: Wenn es -1 ist dann so lange lesen, bis es endet
oder wenn das nicht -1 sein soll, dann den Modus wechsel oder schauen, ob es eine Art "FetchAll" Befehl gibt, welcher angibt, dass erstmal alle Daten geholt werden müssen, bevor es weitergeht.