... wenn ich mir jeweils den letzten Wert der Sortierungsspalte merke. Dann wäre die nächste Seite SELECT ... WHERE sort_column > last_value FETCH FIRST 100 ROWS ONLY. Man könnte dann zwar nicht eine gezielte Seite anspringen, sondern müsste sich imemr durchklicken, aber das wäre wohl zu verkraften.
Zu berücksichtigen ist noch das die Sortbegriff eindeutig sein müssen. Notfalls noch etwas daran hängen (eindeutiger fachlicher Schlüssel oder die ID).
Beispiel:
select * from rechnungen order by redatum
Seite 1:
Datum Re-Nr
...
12.12.08 #4001
20.12.08 #4002
31.12.08 #4003
31.12.08 #4004
31.12.08 #4005
Seite 2:
31.12.08 #4006
31.12.08 #4007
04.01.09 #5000
...
Bei nicht eindeutigen Schlüsseln geht in solchen Situationen etwas daneben.
Also besser: ... order by redatum, renr
und where ((redatum > :ledatum) or (redatum = :ledatum and renr > :lernr))
le... letzte Satz
Zusatzfrage: Machst du vorher ein COUNT(*)?
Wg. Seite=100, 400=Einträge der letzte Eintrag liefert kein eof, man bietet noch eine Seite an, welche dann leer ist.
Abhilfe: count(*) oder nach der Verarbeitungsschleife noch resultSet.next() zur Ermittlung des Endeflags.
/Robert