MichaelN
I'm new here

Access-API: Pagination bei session.executeQuery

Hallo,

ich möchte eine große Menge an Daten aus einem Content Store mittels  session.executeQuery holen.

Den Constraint habe ich mir schon zusammengebaut, aber ich bekomme jetzt immer alle Datensätze.

Ich möchte hier aber Pagination (à la LIMIT in MySQL) nutzen um die Clientlast hier zu minimieren.

Sprich immer z.B. tausenderweise. Erst die Datensätze von 0 bis 999, dann die von 1000 bis 1999 usw.

Wie ich gesehen habe gibt es zwar die Möglichkeiten den Result mittels setMaxResultCount zu

kürzen, aber die Query inkl. ResultSet-Bildung wird ja glaube ich schon vorher ausgeführt und außerdem

erhalte ich aj dann wohl immer die ersten MaxResultCounts, also von 0 ab.

Wie kann ich also From und Count in dem Select angeben?

Schönen Gruß

Michael

0 Kudos
1 Reply
Peter_Jodeleit
Crownpeak employee

Es wird transparent schon eine "pagination" gemacht und auf den Client werden im ersten Schritt nur die IDs der Datensätze übertragen.

Üblicherweise sind aber für einen Redakteur Treffermengen ab einer gewissen Grösse eh nicht handelbar und sollten dann eher über geeignete Einschränkungen verkleinert werden. Google z.B. zeigt zwar einen Text der Form "Ungefähr 5.080.000.000 Ergebnisse" an, bietet aber zunächst in der Navigation nur 10 Trefferseiten an.

Wenn man alle Treffer haben will, aber ab einer gewissen Anzahl von Datensätzen auch die Übertragung der IDs dieser Treffer nicht praktikabel ist, muss man eine eigene Paginierung bauen.

Wie ich gesehen habe gibt es zwar die Möglichkeiten den Result mittels setMaxResultCount zu kürzen, aber die Query inkl. ResultSet-Bildung wird ja glaube ich schon vorher ausgeführt und außerdem erhalte ich aj dann wohl immer die ersten MaxResultCounts, also von 0 ab.

Die erste Vermutung stimmt nicht, man kann "maxResultCount" vor der Abfrage setzen, und das wird zur Datenbank durchgereicht. Es stimmt aber, das es keinen Parameter "offset" gibt, den muss man  simulieren (z.B. über eine Sortierung und ein "> x" in nachgelagerten Abfragen).

Peter
0 Kudos