!!!Anmerkung für die RLA Liebhaber!!!

die bei weitem schnellste Variante ist Array mit DIM(999) anlegen und mit SQL per Blockfetch mit statischem Cursor auf einen ratsch füllen und dann alles Speicher resident machen, inklusive absolute Positionierung.

@fetch positionieren: curpos merken und optimiert (kürzester Weg) von curpos, first, last positionieren.

@Subfilegröße:
ich wage es zu bezweifeln, dass ein Benutzer wirklich 9999 Sätze blättern will, maximale Größe festlegen, count(*) vorweg und ggf Fehlermeldung und flexible Auswahl anbieten.

@ Programm merken: dto. plus mit zwei Arrays arbeiten, eins für die Position, eins für aufsetzen - Hauptspeicher schlägt Datenbank

@aufsetzen: mit zwei Cursorn arbeiten, einer ab Position vorwärts, der andere ab Position rückwärts. Cursor erst öffnen, wenn überhaupt benötigt!

@sauber: sauber ist da im engeren Sinne nix, da die Daten sich während der Anzeige ändern können, ansonsten ist der Sauberkeitsgrad bei allen Varianten gleich, wenn man das fehlerfrei programmiert.

D*B