Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

Hallo Zusammen,

ich suche nach einer Möglichkeit Datensätze aus einer Datenbank, unabhängig vom benutzten DBMS, "portioniert" abzufragen.

Ich möchte also nicht die klassische Pagination nutzen, wo alle Datensätze erst einmal in den Speicher geladen werden und dann im UI aufgeteilt werden. Sondern bei sagen wir mal 1000 Datensätzen lediglich die ersten 100 aus der Datenbank holen, sollte der Benutzer mehr sehen wollen dann die nächsten 100 Datensätze usw.

Das Problem besteht für mich darin das ich die Datensätze pro Tabelle nicht global identifizieren kann, beispielsweise an einer vergebenen ID o.ä. Das gesamte System zu erklären dauert leider zu lange daher ist dieser Punkt als gegeben hinzunehmen. Zwar bieten mit PreparedStatements und ResultSets die Möglichkeit die Anzahl der zurückgebenen Datensätze auf n zu beschränken, aber ich habe keine Option um festzulegen: Gebe mir n Datensätze ab Position x. Was ich suche ist hier die Option "ab Position x".

Kurz zum Umfeld:

Ich entwickle ein Webfrontend unter Apache Wicket (Java) welches seine Daten im Hintergrund aus einer Datenbank zieht. Da hierbei mehrere DBMS unterstützt werden kann ich das leider nicht vom verwendeten SQL abhängig machen. Die Anzahl der Datensätze variiert von Kunde zu Kunde, so gibt es einige Systeme wo teilweise bis zu 500.000 Datensätze vorhanden sind. Um unnötigen Traffic zu sparen suche ich nun nach der oben beschriebenen Möglichkeit lediglich einen Teil der vorhandenen Datensätze abzurufen und den Rest, ebenfalls in kleinen Häppchen, auf Benutzeranfrage.

Ich hoffe es wird einigermaßen klar wonach ich suche und ihr könnt mir helfen.

Vielen Dank und liebe Grüße,

JulianB

Bearbeitet von JulianB

Und genau da liegt ja leider das Problem, Statements wie OFFSET, LIMIT oder TOP kann ich leider nicht benutzen, es muss für MSSQL, Oracle, DB2, Informix, usw. funktionieren...

Bearbeitet von JulianB

Wir haben letztens einen datenbankseitigen Pager gebaut. der das Suchergebnis zunächst in eine temporäre Tabelle kopiert, die wiederum via dynamischen SQL abgefragt wird.

Wenn du nicht die komplette Tabelle übertragen willst, bleibt dir nicht viel anderes übrig als die Seiten innerhalb der DB vorzubereiten.

Wie viele DBMS müssen unterstützt werden? Ein DB-neutrales Paging ist mir nicht bekannt.

edit: bei einer unbekannten Anzahl von Datenbanksystemen wird es nicht einfach.

Bearbeitet von Gooose

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.