Empfohlen: Verwenden Sie ASP, um Ansichten und gespeicherte Prozeduren in der Datenbank aufzurufen 1. Vorwort ASP (Active Server Pages) ist eine serverseitige Skriptumgebung, die von Microsofts IIS3.0 oder höher unterstützt wird. Es kann verwendet werden, um dynamische Webseiten zu erstellen oder leistungsstarke Webanwendungen zu generieren. ASP -Seiten enthalten HTML -Tags, Text und
Was lautet Pagination Display, wenn ADO zugreift Datenbanken? Wenn Sie das Electronic Bulletin Board -Programm derzeit auf vielen Websites verwendet haben, sollten Sie wissen, dass das Programm Electronic Bulletin Board, um die Lesegeschwindigkeit der Seite zu verbessern, im Allgemeinen nicht alle Beiträge in einer Seite auflistet, sondern in mehrere Seiten aufgeteilt wird, um eine bestimmte Anzahl von Beiträgen pro Seite anzuzeigen, z. B. 20 Beiträge. Dies ist die Paginierungsanzeige von Datenbankabfragen. Wenn Sie es noch nicht verstehen, werden Sie es verstehen, indem Sie sich die Abfrageergebnisse von Suchmaschinen wie Yahoo ansehen.
Wie können wir also die Abfrageergebnisse der Datenbank paginieren? Es gibt tatsächlich viele Möglichkeiten, aber es gibt zwei Hauptmethoden:
1. Lesen Sie alle Datensätze in der Datenbank, die die Abfragebedingungen gleichzeitig in den Datensatz erfüllen, und speichern Sie sie im Speicher. Verwalten Sie dann die Paging -Verarbeitung über mehrere Attribute, die vom ADO -Datensatz -Objekt bereitgestellt werden, das die Paging -Verarbeitung spezifisch unterstützt: PageSize (Seitengröße), PageCount (Seitenzahl) und AbsolutePage (Absolute Pages).
2. Gemäß den Anweisungen des Kunden muss die angegebene Anzahl der Datensätze ausgelesen und aus den Datensätzen angezeigt werden, die die Abfragebedingungen jedes Mal entsprechen.
Der Hauptunterschied zwischen beiden besteht darin, dass der erstere alle Aufzeichnungen gleichzeitig in das Gedächtnis liest und dann nach den Anweisungen beurteilt und analysiert werden, um die Auswirkung der Paginierungsanzeige zu erzielen, während die letzteren Urteile beruhen, die auf der Grundlage der Anweisungen anhand der angegebenen Anzahl von Datensätzen, die die Abfragebedingungen erfüllen, direkt die Funktion des Paginationspunktes erfüllen.
Wir können eindeutig das Gefühl haben, dass, wenn die Anzahl der Datensätze in der Datenbank Zehntausende oder mehr erreicht, die Ausführungseffizienz der ersten Methode erheblich niedriger ist als die der zweiten Methode, denn wenn jeder Kunde die Seite abfragt, müssen alle Datensätze, die die Kriterien erfüllen, im Serverspeicher gespeichert werden, und dann werden die Paging und andere Verarbeitung ausgeführt. Wenn mehr als 100 Kunden gleichzeitig online abfragen, wird die Ausführungseffizienz der ASP -Anwendung stark betroffen. Wenn jedoch die Anzahl der Aufzeichnungen auf dem Server und die Anzahl der Personen online nicht sehr groß ist, ist die Ausführungseffizienz der beiden fast gleich. Zu diesem Zeitpunkt wird die erste Methode im Allgemeinen angewendet, da das ASP -Programm -Schreiben der ersten Methode viel einfacher und klarer ist als die zweite Methode.
Hier nimmt der Autor unser gemeinsames ASP BBS -Programm als Beispiel, um zu analysieren, wie die Paginationsanzeigefunktion im BBS -Programm implementiert wird. Da die Anzahl der Datenbankdatensätze und die Anzahl der Personen, die gleichzeitig im BBS -Programm zugreifen, im Allgemeinen nicht zu viele sind, sind die folgenden Programmbeispiele die erste zuvor eingeführte Paginationsanzeigemethode.
Die Pagination wird angezeigt, wenn ADO auf die Datenbank zugreift, um die Datensätze des Datensatzes zu bedienen. Daher müssen wir zunächst die Eigenschaften und Methoden des Reordset -Objekts verstehen:
BOF -Attribut: Der aktuelle Indikator bezieht sich auf die erste Transaktion zum Datensatz.
EOF -Attribut: Der aktuelle Indikator bezieht sich auf die letzte Transaktion zum Datensatz.
MOVE -Methode: Metriken auf einen Datensatz im Datensatz verschieben.
AbsolutePage -Eigenschaft: Legt den aktuellen Ort des Datensatzes fest, auf dem sich die Seite befindet. AbsolutePosition -Eigenschaft: Der aktuelle Standort der Metrik im Datensatz.
PageCount -Eigenschaft: Zeigt an, wie viele Seiten von Daten ein Datensätze -Objekt enthält.
PageSize -Eigenschaft: Zeigt die Anzahl der Aufzeichnungen an, die auf jeder Seite des Recordset -Objekts angezeigt werden.
RecordCount -Eigenschaft: Zeigt die Gesamtzahl der Datensätze des Recordset -Objekts an.
Schauen wir uns diese wichtigen Attribute und Methoden genauer an.
1. BOF- und EOF -Attribute
Normalerweise schreiben wir Code in ein ASP -Programm, um die BOF- und EOF -Attribute zu überprüfen, um den Speicherort des Datensatzes zu kennen, auf das der aktuelle Indikator angezeigt wird. Unter Verwendung der BOF- und EOF -Attribute können wir wissen, ob ein Datensatzset -Objekt Datensätze enthält oder ob die Umzugsdatensatzzeile den Umfang des Recordset -Objekts überschritten hat.
wie:
< % wenn nicht rs.eof dann ... %>
< % wenn nicht (Rs.Bof und Rs.eof) %>
Wenn die aktuelle Datensatzposition vor der ersten Zeile eines Recordset -Objekts liegt, gibt die BOF -Eigenschaft true zurück, andernfalls gibt sie false zurück.
Wenn die aktuelle Datensatzposition nach der letzten Zeile eines Recordset -Objekts erfolgt, gibt die EOF -Eigenschaft true zurück, andernfalls gibt sie false zurück.
Sowohl BOF als auch EOF sind falsch: bedeutet, dass sich der Indikator im Datensatz befindet.
BOF ist wahr: Der aktuelle Indikator bezieht sich auf den ersten Datensatz zum Datensatz. EOF ist wahr: Der aktuelle Indikator bezieht sich auf den letzten Datensatz zum Datensatz.
Sowohl BOF als auch EOF sind wahr: Es gibt keinen Datensatz im Datensatz.
2. Verschieben Sie die Methode
Sie können die Move -Methode verwenden, um Metriken auf einen Datensatz im Datensatz mit der Syntax wie folgt zu verschieben:
rs.move numrecords, starten Sie
Hier ist RS eine Objektvariable, die ein Recordset -Objekt angibt, das sich bei der aktuellen Datensatzposition bewegen möchte. NumRecords ist eine positive und negative Zahlenberechnung, die die Anzahl der Bewegungen der aktuellen Datensatzposition festlegt. Start ist ein optionales Element, mit dem das Etikett für den Start des Datensatzes angegeben wird.
Alle Recordset -Objekte unterstützen die Verschiebungsmethode. Wenn der Parameter NumRecords größer als Null ist, bewegt sich die aktuelle Datensatzposition zum Ende; Wenn es weniger als Null ist, bewegt sich die aktuelle Datensatzposition zum Anfang; Wenn ein leeres Recordset -Objekt die Verschiebungsmethode aufruft, wird ein Fehler generiert.
MOVEFIRST -Methode: Verschieben Sie die aktuelle Datensatzposition auf den ersten Datensatz.
MOVELAST -Methode: Verschieben Sie die aktuelle Datensatzposition auf den letzten Datensatz.
MOVENEXT -Methode: Verschieben Sie die aktuelle Datensatzposition auf den nächsten Datensatz. MovePrevious -Methode: Verschieben Sie die aktuelle Datensatzposition auf den vorherigen Datensatz.
Move [n] Methode: Verschieben Sie den Index in den n -ten Stiftdatensatz, n startet von 0.
3.. Absolutepage -Attribute
Die AbsolutePage -Eigenschaft legt die Seitenzahl der Seiten fest, auf der sich der aktuelle Datensatz befindet. Verwenden Sie die PageSize -Eigenschaft, um das Recordset -Objekt in logische Seiten zu unterteilen, und die Anzahl der Datensätze für jede Seite ist pageSize (mit Ausnahme der letzten Seite, die möglicherweise weniger als pagessize -Datensätze haben). Es muss hier angemerkt werden, dass nicht alle Datenanbieter diese Eigenschaft unterstützen. Seien Sie also vorsichtig, wenn Sie sie verwenden.
Das Gleiche wie die AbsolutePosition -Eigenschaft, beginnt die Absolutepage -Eigenschaft mit 1. Wenn der aktuelle Datensatz die erste Zeile des Rekordsets ist, ist die Absolutepage 1. Die AbsolutePage -Eigenschaft kann so eingestellt werden, dass sie zur ersten Zeilenrekordposition einer bestimmten Seite umgestellt werden.
4. Absolutepositionseigenschaft
Wenn Sie den aktuellen Standort der Metrik im Datensatz festlegen müssen, können Sie die AbsolutePosition -Eigenschaft verwenden.
Der Wert der Absolutepositionseigenschaft ist die Position des Stromindikators relativ zur ersten Transaktion, die ab 1 beginnt, dh die Absoluteposition der ersten Transaktion ist 1.
Beachten Sie, dass beim Zugriff auf Datensätze keine Garantie dafür gibt, dass Datensätze jedes Mal in derselben Reihenfolge angezeigt werden.
Um AbsolutePosition zu ermöglichen, müssen Sie es zunächst so einstellen, dass der Benutzer Cursor (Zeiger) verwendet wird, und der ASP -Code lautet wie folgt:
rs2.cursorLocation = 3
5. PageCount -Eigentum
Verwenden Sie die PageCount -Eigenschaft, um festzustellen, wie viele Seiten von Daten ein Datensatz eingesetzt werden. Die Seite hier ist eine Sammlung von Datenaufzeichnungen, und ihre Größe entspricht der Einstellung der PageSize -Eigenschaft. Auch wenn die Anzahl der Datensätze auf der letzten Seite geringer ist als der Wert von PageSize, wird die letzte Seite als Seite von PageCount angesehen. Es muss beachtet werden, dass nicht alle Datenanbieter diese Eigenschaft unterstützen.
6. PageSize Attribut
Die PageSize -Eigenschaft ist der Schlüssel zur Bestimmung, wie Ado beim Zugriff auf Datenbanken paginiert. Mit der Verwendung können Sie entscheiden, wie viele Datensätze eine logische Seite bilden. Setzt und erstellt eine Seitengröße, sodass die AbsolutePage -Eigenschaft auf den ersten Aufzeichnung anderer logischer Seiten verschoben werden kann. Die PageSize -Eigenschaft kann jederzeit festgelegt werden.
7. RecordCount -Eigentum
Dies ist auch eine sehr häufige und wichtige Eigenschaft. Wir verwenden häufig die RecordCount -Eigenschaft, um herauszufinden, wie viele Datensätze ein Recordset -Objekt enthält. Zum Beispiel: < %Totle = Rs.RecordCount %> Nach dem Verständnis der oben genannten Eigenschaften und Methoden des Recordset -Objekts überlegen wir, wie Sie sie verwenden, um den Zweck unserer Pagination zu erreichen. Zunächst können wir einen Wert für die PageSize -Eigenschaft festlegen, wodurch die Anzahl der Zeilen angibt, die eine Seite aus der Datensatzgruppe darstellen. Verwenden Sie dann die RecordCount -Eigenschaft, um die Gesamtzahl der Datensätze zu bestimmen. Teilen Sie dann die Gesamtzahl der Datensätze nach PageSize, um die Gesamtzahl der angezeigten Seiten zu erhalten. Schließlich kann der Zugriff auf die angegebenen Seiten über die AbsolutePage -Eigenschaft abgeschlossen werden. Es scheint sehr nicht kompliziert. Schauen wir uns an, wie das Programm implementiert werden soll?
Wir haben eine so einfache BBS -Anwendung erstellt, die die folgenden fünf Felder in der Datenbank enthält: ID, die automatische Anzahl jedes Beitrags; Betreff, Gegenstand jedes Beitrags; Name, der Name des Benutzers, der den Beitrag hinzugefügt hat; E -Mail, die E -Mail -Adresse des Benutzers; Postdatum, die Zeit des Hinzufügens des Beitrags. Der DSN der Datenbank ist BBS. Wir haben alle Schritte bei der Anzeige von Post Paging in einem Prozess namens Showlist () für einen einfachen Anruf eingesetzt. Das Verfahren ist wie folgt:
| Das Folgende ist der zitierte Inhalt: /'---- BBS Show Post Paging ---- < %Sub showlist () %> < % PGSZ = 20 /'Set Switch, Geben Sie die Anzahl der auf jeder Seite angezeigten Beiträge an. Der Standardwert beträgt 20 Beiträge pro Seite Setzen Sie conn = server.createObject (adodb.Connection) Setzen Sie rs = server.createObject (adodb.Recordset) SQL = SELECT * aus Nachrichtenreihenfolge nach ID dessen /'Fragen Sie alle Beiträge ab und ordnen Sie sie in umgekehrter Reihenfolge nach Post -ID an Conn.open Bbs Rs.open SQL, Conn, 1,1 Wenn rscordcount = 0 dann Antwort. < /center> < /p> anders Rs.PageSize = Cint (PGSZ) /'Setzen Sie den Wert der PageSize -Eigenschaft Total = int (rscordcount / pgsz * -1) * -1 / 'Berechnen Sie die Gesamtzahl der Seiten, die angezeigt werden können Pageno = Anfrage (Pageno) Wenn pageno = dann Pageno = 1 anders Pageno = Pageno 1 Pageno = pageno-1 Ende wenn Scrollaction = request (Scrollaction) Wenn scrollraction = vorherige Seite dann dann Pageno = pageno-1 Ende wenn Wenn scrollraction = nächste Seite dann Pageno = Pageno 1 Ende wenn Wenn Pageno <1 dann Pageno = 1 Ende wenn n = 1 Rs.absolutepage = Pageno Response.write <center> Position = Rs.PageSize*Pageno PageBegin = Position-Rs.pageSize 1 Wenn Position <Rs.RecordCount dann dann pagend = Position anders Pagend = Rs.RecordCount Ende wenn Antwort.Write <P> <font color =/'navy/'> <b> Datenbankabfrageergebnisse: </b> Response.write (es gibt insgesamt & rscordCount und Informationen, die die Bedingungen, Anzeige & PageBegin &-& Pagend &) < /font> < /p> erfüllen Antwort. Antwort. Tust während nicht (Rs ist nichts) RowCount = rs.pageSize Tun, während nicht Rs.eof und RowCount> 0 Wenn n = 1 dann Response.write <tr bgcolor =#ffffff> ANDERS Response.write <tr bgcolor =#eeeee> Ende wenn n = 1-n %> <Td> <span style = font-size: 9pt> <a href = /'view.asp? Taste = < % = rs (id) %> /'> < % = rs (Betreff) %> < /a> < /span> < /td> <Td> <span style = Schriftgröße: 9PT> < % = RS (Name) %> < /a> < /span> < /td> <Td> <span style = Schriftgröße: 9PT> <a href = mailto: < % = RS (E-Mail) % >> < % = RS (E-Mail) %> < /a> < /span> < /td> <Td> <span style = font-size: 9pt> < % = rs (postdate) %> < /span> < /td> < /Tr> < % RowCount = RowCount - 1 Rs.Movenext Schleife Stellen Sie Rs = Rs.NexTrecordset ein Schleife Conn.close Setzen Sie Rs = nichts Setzen Sie Conn = nichts %> < /Table> <Formmethode = Get action = list.asp> <Eingabetyp = Hidden Name = pageno value = < % = pageno % >> < % Wenn Pageno> 1 dann Antwort. Ende wenn Wenn RowCount = 0 und Pageno <> insgesamt dann dann Antwort. Ende wenn response.write < /form> Ende wenn %> < % Ende Sub %> |
Ich glaube, jeder sollte in der Lage sein, das obige Programm vollständig zu verstehen, sodass der Autor es hier nicht im Detail erklären wird. Es ist erwähnenswert, dass in diesem Programm ein kleiner Trick verwendet wurde. Da wir Parameter übergeben müssen, die die aktuelle Seitennummer jedes Mal, wenn das Programm aufgerufen wird, repräsentieren, können Sie die Verwendung der Sitzung überlegen. In Bezug auf das Speichern von Systemressourcen und die Universalität werden jedoch ein solches verstecktes Formular zur Übergabe von Daten bessere Ergebnisse erzielt.
Okay, es ist Zeit, sich wieder zu verabschieden. Wenn Sie die in diesem Artikel aufgeführten Programme nicht vollständig verstehen, müssen Sie der Grammatik von VBScript etwas Kraftstoff hinzufügen. Wenn Sie einige Fragen haben, kann ich mein Bestes tun, um sie zu beantworten. Wenn Sie bessere Vorschläge haben, senden Sie mir bitte einen Brief.
Teilen: Generieren Sie statische Webseiten, indem Sie Tags ersetzen Jeder weiß, dass die statischen HTML -Webseiten eher von Suchmaschinen indiziert werden. Das dynamische Generieren von HTML -Webseiten kann auch die Anzahl der Webseiten auf der Website erhöhen, und Suchmaschinen können auch mehr enthalten. Was bringt es, die Qualität der Webseiten zu verbessern? Ich denke, jeder weiß es auch. für