7 Stimmen

Paging mit Oracle und Sql-Server und generisches Paging-Verfahren

Ich möchte das Blättern in einem Gridview oder in einer html-Tabelle implementieren, die ich mit Ajax füllen werde. Wie sollte ich Abfragen schreiben, um das Blättern zu unterstützen? Wenn zum Beispiel die Seitengröße 20 ist und der Benutzer auf Seite 3 klickt, müssen die Zeilen zwischen 41 und 60 in der Tabelle angezeigt werden. Zunächst kann ich alle Datensätze abrufen und in den Cache stellen, aber ich denke, das ist der falsche Weg. Denn die Daten können sehr groß sein und die Daten können sich in anderen Sitzungen ändern. Wie kann ich das also implementieren? Gibt es eine generische Methode (für alle Datenbanken)?

0voto

user34850 Punkte 1794

Wenn der erwartete Datensatz sehr groß ist, würde ich empfehlen, eine temporäre Tabelle, einen View oder einen Snapshot (materialisierte Ansicht) zu erstellen, um die Abfrageergebnisse + eine Zeilennummer zu speichern, die entweder mit der analytischen Funktion ROWNUM oder ROW_NUMBER abgerufen wird. Danach können Sie diesen temporären Speicher einfach mit Zeilennummernbereichen abfragen. Grundsätzlich müssen Sie den eigentlichen Datenabruf vom Paging trennen.

0voto

Tanveer Badar Punkte 4934

Es gibt keine einheitliche Methode, um das Paging über verschiedene RDBMS-Produkte hinweg zu gewährleisten. Oracle bietet Ihnen rownum, das Sie in der where-Klausel verwenden können:

where rownum < 1000

SQL Server bietet die Funktion row_id( ), die ähnlich wie die Funktion rownum von Oracle verwendet werden kann. Allerdings ist die Funktion row_id( ) vor SQL Server 2005 nicht verfügbar.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X