Die Backend-Datenbank ist Access. Nachdem ich die Schnittstelle ein Jahr lang verwendet hatte, stellte ich fest, dass sich mehr als 50.000 Datensätze in der Datentabelle befanden Bei Tausenden von Datensätzen ist das Öffnen der Benutzeroberfläche sehr langsam, und beim Umblättern tritt das gleiche Problem auf. Die von mir gewählte Methode besteht darin, 20 Datensätze pro Seite zu laden, sie in einer Schleife zu schreiben und in der Tabelle anzuzeigen und dann vier Umblätterschlüssel festzulegen Um die Daten anzuzeigen, besteht das Problem darin: Obwohl jedes Mal nur zwanzig Datensätze auf die Seite geladen werden, müssen bei jedem Öffnen des Datensatzes alle Datensätze auf einmal geladen werden, sodass dies langsam ist.
Lösung eins:
1. Legen Sie ein Auto-Inkrement-Feld fest. Und das Feld ist INDEX.
2. Da es sich um ACCESS handelt, kann es nur für Front-End-Paging verwendet werden. Der Zweck des sich selbst erhöhenden Feldes besteht darin, die Paging-Funktion zu realisieren.
1> Notieren Sie den letzten selbst inkrementierten Wert der vorherigen Seite des Benutzers, z. B. M.
2> Nächste Seite, nehmen Sie den Startwert der Seite.M+1, den Endwert: M+1+1,5*PAGESIZE (Hinweis: Da die Datenbank über Additions- und Löschvorgänge verfügt, sollte es einen Koeffizienten für die Seitengröße geben . Sie können je nach Situation einen großen Koeffizienten von 1 anpassen.
3> Die Front-End-Schleife nimmt den ersten PAGESIZE-Balken von RS, schreibt ihn in einen neuen RS und kehrt zurück.
Hinweis: Der neue RS ist ein verbindungsloser RS.
Lösung zwei:
Hunderttausend Datensätze sind nicht die Grenze der Access-Datenbank. Darüber hinaus ist Ihre Methode kein Paging im eigentlichen Sinne (die Eigenschaften PageSize und AbsolutePage sollten verwendet werden).
VBScript-Code
Kopieren Sie den Codecode wie folgt:
Setze rs = Neues ADODB.Recordset
rs.CursorLocation = adUseClient
rs.PageSize = 20
rs.Open Select * Von Gast, iConc, adOpenKeyset, adLockOptimisticlng
Seiten = rs.PageCount
lngCurrentPage = 1
Der zu diesem Zeitpunkt geöffnete Datensatz enthält nur 20 Datensätze.
Beim Umblättern:
Kopieren Sie den Codecode wie folgt:
Wenn lngCurrentPage < lngPages, dann
lngCurrentPage = lngCurrentPage + 1
rs.AbsolutePage = lngCurrentPage
Ende wenn