Ich mache es so:
Meine Tabelle hat ein AutoInc-Feld 'ID'. Das ist der Primary Key. Bei MS-
SQL legt man einen 'CLUSTERED INDEX' rauf.
Um dase rste Datenpaket von 100 Records abzurufen:
SELECT TOP 100 * FROM MyTables WHERE ID > 0
Man merkt sich nun die ID des untersten Records dieses Paketes. Sagen wir ID[unten] := 1234. Um nun die nächsten 100 Records zu lesen, reicht es, das hier auszuführen:
SELECT TOP 100 * FROM MyTables WHERE ID > 1234
Von diesem Paket merken wir uns wieder die ID des untersten Records usw. Auf diese Weise kann ich Stück für Stück durch den Datenbestand 'scrollen'. Nachteil: Das Rückwärtsscrollen lässt sich nur schwierig realisieren: Es müssen ja die bereits geladenen Datensätze oder zumindest die ID der ersten/letzten Einträge gespeichert werden. Bei hinreichend grossen Paketgrößen sollte Letzteres ausreichende Datenmengen verwalten können.