Après avoir lu de nombreuses introductions, je sais que l'efficacité d'exécution de set rs=conn.execute(sql) est bien supérieure à celle de rs.open sql,conn,1,1, mais il existe de nombreuses méthodes d'exécution de set rs=conn. exécuter(sql). Inconvénients, tout d'abord, il n'a pas d'attributs de pagination, tels que rs.pagesize, rs, Absolutepage et d'autres attributs. Dans ce cas, définis de cette manière. Bien que la vitesse d'exécution de rs=conn.execute(sql) soit plus rapide, la pagination ne peut pas se faire normalement. Que dois-je faire ? ?
Le lendemain, j'ai vérifié les informations sur Internet et j'ai soudainement pensé si je pouvais mettre les données requises dans un tableau, puis paginer le tableau ? Tout d'abord, j'ai extrait le résultat de la requête de set rs=conn.execute(sql) et l'ai attaché à un tableau via rs.getrows(). J'ai donc recherché des articles de pagination sur divers sites Web, bien que j'ai trouvé de nombreux articles de pagination à haute efficacité. (Y compris les procédures stockées, etc.), mais il s'avère que tout doit être exécuté via SQL, c'est-à-dire que les instructions SQL doivent être exécutées lorsque je tourne les pages. À ce moment-là, j'ai la tête qui tourne et seules les instructions SQL sont optimisées. . Pour le moment, il n’y a vraiment aucun moyen, donc je dois le faire moi-même. Excellent travail ! Enfin, j'ai terminé une ébauche de pagination des tableaux. Le code n'est pas très complet. Laissez tout le monde l'étudier ensemble ! Le code est le suivant :
Il y a d’abord une page de requête index.asp :
<html xmlns=http://www.w3.org/1999/xhtml>
<tête>
<méta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>Document sans titre</title>
</tête>
<body><FORM id=SearchForm name=SearchForm method=post action=search.asp?act=cha>
<classe div=entrée>
<input id=keyword onmouseover=this.focus() title=Recherchez rapidement vos enregistrements de messages onfocus=this.select() class=in maxlength=35 name=keyword />
<select style=width:120px;margin-top:-25px name=ChannelID>
<option value=k2>Laisser un commentaire</option>
<option value=k1>Contenu du message</option>
</sélectionner>
<ID d'entrée=search_btn type=submit value=query>
</div>
</FORM>
</corps>
</html>
code search.asp :
<html xmlns=http://www.w3.org/1999/xhtml>
<tête>
<méta http-equiv=Content-Type content=text/html; charset=gb2312 />
<title>Document sans titre</title>
</tête>
<corps>
<%
Si request.querystring(act)=cha Alors
search_type=request.FORM(ChannelID)
mots-clés=request.form(mot-clé)
if search_type=k1 then 'Recherche selon le contenu du message
sql=select * from gbook_rec où g_content comme '%&keywords&%'
SinonSi search_type=k2 alors
'if search_type=k2 then 'Recherche selon la personne qui a laissé le message
sql=select * from gbook_rec où g_name comme '%&keywords&%'
Autre
réponse.end
finSi
Définir rs=conn.execute(sql)
Si rs.eof et rs.bof Alors
%>
<div class=search>L'enregistrement que vous recherchez est introuvable ! </div>
<%
réponse.Fin
Autre
aResults=rs.getrows()' Retirez les données et placez-les dans le tableau ROW
application (données) = aRésultats
Définir rs = rien
conn.close 'Fermer la base de données
Fin SI
Fin si
aResults=application(données)
Dim i, ligne, taille de page, epage, engourdi, nombre de pages, fenye
numb=UBound(aResults,2)+1 'Nombre total de lignes enregistrées
pagesize=2 'Nombre d'éléments par page
Si engourdi Mod pagesize = 0 Alors « Jugez le nombre total de pages »
nombre de pages = Int (engourdissement/taille de la page)
Autre
nombre de pages=Int(engourdissement/taille de la page)+1
Fin si
epage=request.querystring(page)
Si epage= Alors epage=1
Pour i=(epage-1)*pagesize Pour epage*pagesize-1
Si i>UBound(aResults,2) ou i<0 Alors quittez pour
%>
<div classe=contenu>
<ul><li>Enregistrer<%=i+1%></li>
<li>Laisser un commentaire : <%=aResults(1,i)%></li>
<li>Contenu : <%=aResults(2,i)%></li>
<li>Heure :<%=aResults(3,i)%></li>
<li>IP :<%=aResults(5,i)%></li>
</ul>
</div>
<%
Suivant
Si engourdi> taille de la page Alors
fenye=<a href=search.asp?page=1>Page d'accueil</a>
fenye=fenye&<a href=search.asp?page=&epage-1& title=&epage-1&>Page précédente</a>
fenye=fenye&<a href=search.asp?page=&epage+1& title=&epage+1&>Page suivante</a>
fenye=fenye&<a href=search.asp?page=&pagecount&>dernière page</a>
fenye=fenye&<BR>
fenye=fenye&Nombre total de pages &pagecount&, page actuelle &epage&, le nombre total d'enregistrements est : &numb
réponse.écrire fenye
Terminer si
%>
</corps>
</html>
Résumé : Je pense que le code ci-dessus n'a pas besoin de se connecter à la base de données, sauf pour la requête initiale, et il n'a pas besoin de se connecter à la base de données à d'autres moments. Il est très utile pour économiser des ressources lors de l'interrogation de données volumineuses ou lorsqu'il y en a. il y a beaucoup de gens qui se connectent ! De plus, le tableau de requête est enregistré sur l'objet d'application et vous pouvez également juger ce que quelqu'un a interrogé en fonction de l'application (données) (nom d'utilisateur). Cependant, ce code est le premier modèle et doit être amélioré par les efforts de chacun. avenir! J'espère que tout le monde y prêtera attention et soutien, merci !
test.rar