Nachdem ich viele Einführungen gelesen habe, weiß ich, dass die Ausführungseffizienz von set rs=conn.execute(sql) viel höher ist als die von rs.open sql,conn,1,1, aber es gibt viele Ausführungsmethoden von set rs=conn. Der Nachteil besteht darin, dass es zunächst keine Paging-Attribute wie rs.pagesize, rs, absolutepage und andere auf diese Weise festgelegte Attribute hat Obwohl die Ausführungsgeschwindigkeit von rs=conn.execute(sql) schneller ist, kann das Paging nicht auf die normale Weise durchgeführt werden. ?
Am nächsten Tag überprüfte ich die Informationen im Internet und dachte plötzlich, ob ich die erforderlichen Daten in ein Array einfügen und das Array dann paginieren könnte. Zuerst habe ich das Abfrageergebnis von set rs=conn.execute(sql) herausgenommen und es über rs.getrows() an ein Array angehängt, also habe ich auf verschiedenen Websites nach Paginierungsbeiträgen gesucht, obwohl ich viele hocheffiziente Paginierungsbeiträge gefunden habe (Einschließlich gespeicherter Prozeduren usw.), aber es stellt sich heraus, dass alle über SQL ausgeführt werden müssen, das heißt, SQL-Anweisungen müssen beim Umblättern ausgeführt werden. Zu diesem Zeitpunkt ist mir schwindelig und nur SQL-Anweisungen sind optimiert . Im Moment gibt es wirklich keine Möglichkeit, also muss ich es selbst machen! Schließlich habe ich einen groben Entwurf der Array-Paginierung fertiggestellt. Der Code ist nicht sehr vollständig. Der Code lautet wie folgt:
Zuerst gibt es eine index.asp-Abfrageseite:
<html xmlns=http://www.w3.org/1999/xhtml>
<Kopf>
<meta http-equiv=Content-Type content=text/html;
<title>Unbenanntes Dokument</title>
</head>
<body><FORM id=SearchForm name=SearchForm method=post action=search.asp?act=cha>
<div class=input>
<input id=keyword onmouseover=this.focus() title=Durchsuchen Sie schnell Ihre Nachrichtendatensätze onfocus=this.select() class=in maxlength=35 name=keyword />
<select style=width:120px;margin-top:-25px name=ChannelID>
<option value=k2>Hinterlasse einen Kommentar</option>
<option value=k1>Nachrichteninhalt</option>
</select>
<Input id=search_btn type=submit value=query>
</div>
</FORM>
</body>
</html>
search.asp-Code:
<html xmlns=http://www.w3.org/1999/xhtml>
<Kopf>
<meta http-equiv=Content-Type content=text/html;
<title>Unbenanntes Dokument</title>
</head>
<Körper>
<%
Wenn request.querystring(act)=cha Dann
search_type=request.FORM(ChannelID)
keywords=request.form(keyword)
if search_type=k1 then 'Suche nach Nachrichteninhalt
sql=select * from gbook_rec where g_content like '%&keywords&%'
ElseIf search_type=k2 dann
'if search_type=k2 then 'Suchen Sie nach der Person, die die Nachricht hinterlassen hat
sql=select * from gbook_rec where g_name like '%&keywords&%'
Anders
Antwort.Ende
endIf
Setze rs=conn.execute(sql)
Wenn rs.eof und rs.bof dann
%>
<div class=search>Der gesuchte Datensatz wurde nicht gefunden! </div>
<%
Antwort.Ende
Anders
aResults=rs.getrows()' Nehmen Sie die Daten heraus und fügen Sie sie in das Array ROW ein
application(data)=aResults
Setze rs=nichts
conn.close 'Schließe die Datenbank
Beenden Sie IF
Ende wenn
aResults=application(data)
Dim i,row,pagesize,epage,numb,pagecount,fenye
numb=UBound(aResults,2)+1 'Gesamtzahl der aufgezeichneten Zeilen
pagesize=2 'Anzahl der Elemente pro Seite
Wenn numb Mod pagesize = 0, dann „Beurteilen Sie die Gesamtzahl der Seiten.“
pagecount=Int(numb/pagesize)
Anders
pagecount=Int(numb/pagesize)+1
Ende wenn
epage=request.querystring(page)
Wenn epage=, dann ist epage=1
Für i=(epage-1)*pagesize Zu epage*pagesize-1
Wenn i>UBound(aResults,2) oder i<0, dann beenden Sie für
%>
<div class=content>
<ul><li>Aufzeichnen<%=i+1%></li>
<li>Hinterlasse einen Kommentar: <%=aResults(1,i)%></li>
<li>Inhalt: <%=aResults(2,i)%></li>
<li>Zeit:<%=aResults(3,i)%></li>
<li>IP:<%=aResults(5,i)%></li>
</ul>
</div>
<%
Nächste
Wenn numb>pagesize Dann
fenye=<a href=search.asp?page=1>Startseite</a>
fenye=fenye&<a href=search.asp?page=&epage-1& title=&epage-1&>Vorherige Seite</a>
fenye=fenye&<a href=search.asp?page=&epage+1& title=&epage+1&>Nächste Seite</a>
fenye=fenye&<a href=search.asp?page=&pagecount&>letzte Seite</a>
fenye=fenye&<BR>
fenye=fenye&Gesamtzahl der Seiten &pagecount&, aktuelle Seite &epage&, Gesamtdatensätze sind: &numb
Antwort.schreibe Fenye
Beenden Sie, wenn
%>
</body>
</html>
Zusammenfassung: Ich denke, dass der obige Code außer bei der ersten Abfrage keine Verbindung zur Datenbank herstellen muss und auch zu anderen Zeiten keine Verbindung zur Datenbank herstellen muss. Dies ist sehr nützlich, um Ressourcen beim Abfragen großer Datenmengen zu sparen Es gibt viele Leute, die sich vernetzen! Darüber hinaus wird das Abfragearray im Anwendungsobjekt gespeichert, und Sie können anhand der Anwendung (Daten) (Benutzername) auch beurteilen, was jemand abgefragt hat. Dieser Code ist jedoch das erste Modell und muss durch die Bemühungen aller verbessert werden Zukunft! Ich hoffe, dass alle aufpassen und unterstützen, danke!
test.rar