Recommandé: utilisez ASP pour appeler les vues et les procédures stockées dans la base de données 1. Preface ASP (Pages de serveurs actifs) est un environnement de script côté serveur, qui est pris en charge par IIS3.0 de Microsoft ou supérieur. Il peut être utilisé pour créer des pages Web dynamiques ou pour générer des applications Web puissantes. Les pages ASP incluent des balises HTML, du texte et
Qu'est-ce que l'affichage de la pagination lorsque ADO accède aux bases de données? Si vous avez utilisé le programme électronique du babillard sur de nombreux sites Web à l'heure actuelle, vous devez savoir que pour améliorer la vitesse de lecture de la page, le programme électronique du babillard ne répertorie généralement pas tous les publications dans une seule page, mais les divise en plusieurs pages pour afficher un certain nombre de messages par page, tels que 20 publications. Il s'agit de l'affichage de pagination des requêtes de base de données. Si vous ne le comprenez pas encore, vous le comprendrez en regardant les résultats de la requête de moteurs de recherche tels que Yahoo.
Alors, comment pouvons-nous paginer les résultats de la requête de la base de données? Il y a en fait de nombreuses façons, mais il existe deux façons principales:
1. Lisez tous les enregistrements de la base de données qui remplissent les conditions de requête dans le plateau d'enregistrement à la fois et les stockez en mémoire. Gérez ensuite le traitement de pagination via plusieurs attributs fournis par l'objet RecordSet ADO qui prend en charge spécifiquement le traitement de la pagination: Pagesize (taille de la page), PageCount (numéro de page) et Absolutepage (pages absolues).
2. Selon les instructions du client, le nombre spécifié d'enregistrements doit être lu et affiché à partir des enregistrements qui remplissent les conditions de requête à chaque fois.
La principale différence entre les deux est que le premier lit tous les enregistrements dans la mémoire à la fois, puis fait des jugements et des analyses en séquence en fonction des instructions pour atteindre l'effet de l'affichage de la pagination, tandis que le second porte des jugements basés sur les instructions et lit le nombre spécifié d'enregistrements qui remplissent les conditions de requête en mémoire, ainsi en fonction de la fonction de la pagination.
Nous pouvons clairement sentir que lorsque le nombre d'enregistrements dans la base de données atteint des dizaines de milliers ou plus, l'efficacité d'exécution de la première méthode sera nettement inférieure à celle de la deuxième méthode, car lorsque chaque client interroge la page, tous les enregistrements qui répondent aux critères doivent être stockés dans la mémoire du serveur, puis la pagination et d'autres traitements sont emportés. Si plus de 100 clients interrogent en ligne en même temps, l'efficacité d'exécution de l'application ASP sera grandement affectée. Cependant, lorsque le nombre d'enregistrements sur le serveur et le nombre de personnes en ligne en même temps ne sont pas très importants, l'efficacité d'exécution des deux est presque la même. À l'heure actuelle, la première méthode est généralement adoptée, car la rédaction du programme ASP de la première méthode est beaucoup plus simple et plus claire que la deuxième méthode.
Ici, l'auteur prendra notre programme commun ASP BBS comme exemple pour analyser comment implémenter la fonction d'affichage de pagination dans le programme BBS. Étant donné que le nombre d'enregistrements de bases de données et le nombre de personnes accès simultanément dans le programme BBS que nous utilisons généralement ne sont pas trop, les exemples de programme suivants sont donc la première méthode d'affichage de pagination introduite précédemment.
L'affichage de pagination lorsque ADO accède à la base de données est en fait pour faire fonctionner les enregistrements de l'enregistrement. Nous devons donc d'abord comprendre les propriétés et les méthodes de l'objet de réordon:
Attribut BOF: L'indicateur actuel fait référence à la première transaction à l'enregistrement.
Attribut EOF: L'indicateur actuel fait référence à la dernière transaction à l'enregistrement.
Déplacer la méthode: déplacer les métriques vers un enregistrement dans le plateau de disques.
Propriété AbsolutePage: Définit l'emplacement actuel de l'enregistrement sur quelle page se trouve. Propriété absolue: l'emplacement actuel de la métrique dans le coffre-disque.
Propriété PageCount: affiche le nombre de pages de données qu'un objet RecordSet contient.
Propriété PageSize: Affiche le nombre d'enregistrements affichés sur chaque page de l'objet RecordSet.
Propriété RecordCount: affiche le nombre total d'enregistrements de l'objet RecordSet.
Examinons de plus près ces attributs et méthodes importants.
1. Attributs BOF et EOF
Habituellement, nous écrivons du code dans un programme ASP pour vérifier les attributs BOF et EOF pour connaître l'emplacement de l'enregistrement indiqué par l'indicateur actuel. En utilisant les attributs BOF et EOF, nous pouvons savoir si un objet RecordSet contient des enregistrements ou si la ligne d'enregistrement mobile a dépassé la portée de l'objet RecordSet.
comme:
<% sinon Rs.Eof alors ...%>
<% sinon (Rs.Bof et Rs.Eof)%>
Si la position d'enregistrement actuelle est avant la première ligne d'un objet RecordSet, la propriété BOF renvoie True, sinon il renvoie false.
Si la position d'enregistrement actuelle est après la dernière ligne d'un objet RecordSet, la propriété EOF renvoie True, sinon il renvoie False.
BOF et EOF sont faux: signifie que l'indicateur est situé dans le plateau de disques.
BOF est vrai: l'indicateur actuel fait référence au premier enregistrement à l'enregistrement. EOF est vrai: l'indicateur actuel fait référence au dernier enregistrement à l'enregistrement.
BOF et EOF sont vrais: il n'y a pas d'enregistrement dans le plateau de disques.
2. Déplacer la méthode
Vous pouvez utiliser la méthode de déplacement pour déplacer les métriques vers un enregistrement dans l'encords, avec la syntaxe comme suit:
Rs.Move numRecords, commencez
Ici, RS est une variable d'objet, indiquant un objet d'enregistrement qui veut se déplacer lorsque la position d'enregistrement actuelle; NumRecords est une formule de calcul du nombre positif et négatif qui définit le nombre de mouvements de la position d'enregistrement actuelle; Démarrer est un élément facultatif pour spécifier l'étiquette pour le début de l'enregistrement.
Tous les objets d'enregistrement prennent en charge la méthode Move. Si le paramètre numRecords est supérieur à zéro, la position d'enregistrement actuelle se déplace à la fin; S'il est inférieur à zéro, la position d'enregistrement actuelle passe au début; Si un objet RecordSet vide appelle la méthode Move, une erreur sera générée.
MOCHE MOTIFST: Déplacez la position d'enregistrement actuelle vers le premier enregistrement.
MOTHE MOVELAST: Déplacez la position d'enregistrement actuelle vers le dernier enregistrement.
MOTHODE MOVENEXT: Déplacez la position d'enregistrement actuelle vers l'enregistrement suivant. MethPrevious Méthode: déplacez la position d'enregistrement actuelle vers l'enregistrement précédent.
Déplacer la méthode [n]: déplacer l'index vers l'enregistrement du Nth Pen, n commence à partir de 0.
3. Absolutepage Attributs
La propriété Absolutepage définit le numéro de page de pages sur quelle page l'enregistrement actuel est situé; Utilisez la propriété PageSize pour diviser l'objet RecordSet en pages logiques, et le nombre d'enregistrements pour chaque page est pagesize (sauf pour la dernière page qui peut avoir moins de enregistrements de pages). Il faut noter ici que tous les fournisseurs de données ne prennent pas en charge cette propriété, alors soyez prudent lorsque vous l'utilisez.
Comme la propriété Absoluteposition, la propriété AbsolutePage commence par 1. Si l'enregistrement actuel est la première ligne du coffre-fort, l'Absolutepage est 1. La propriété Absolutepage peut être définie pour passer à la première position d'enregistrement de ligne d'une page spécifiée.
4. Propriété absolue
Si vous devez déterminer l'emplacement actuel de la métrique dans le coffre-fort, vous pouvez utiliser la propriété Absolutepos.
La valeur de la propriété Absoluteposition est la position de l'indicateur actuel par rapport à la première transaction, qui commence à partir de 1, c'est-à-dire que l'absoluteposition de la première transaction est 1.
Notez que lors de l'accès à des ensembles de registres, rien ne garantit que les ensembles de registres apparaîtront dans le même ordre à chaque fois.
Pour activer Absolutepos, vous devez d'abord le définir pour utiliser le curseur utilisateur (pointeur), et le code ASP est le suivant:
rs2.cursorlocation = 3
5. Propriété PageCount
Utilisez la propriété PageCount pour déterminer le nombre de pages de données qu'un objet RecordSet contient. La page ici est une collection d'enregistrements de données, et sa taille est égale au réglage de la propriété PageSize. Même si le nombre d'enregistrements sur la dernière page est inférieur à la valeur de la pages de pages, la dernière page est considérée comme une page de PageCount. Il faut noter que tous les fournisseurs de données ne prennent pas en charge cette propriété.
6. Attribut pages
La propriété PageSize est la clé pour déterminer comment ADO pagine lors de l'accès aux bases de données. L'utilisation, vous pouvez décider du nombre d'enregistrements former une page logique. Définit et crée une taille de page, permettant à la propriété AbsolutePage d'être déplacée vers le premier enregistrement d'autres pages logiques. La propriété PageSize peut être définie à tout moment.
7. Propriété RecordCount
Il s'agit également d'une propriété très courante et importante. Nous utilisons souvent la propriété RecordCount pour découvrir le nombre d'enregistrements qu'un objet RecordSet contient. Par exemple: <% totle = Rs.recordCount%> Après avoir compris les propriétés et les méthodes ci-dessus de l'objet RecordSet, considérons comment les utiliser pour atteindre le but de notre affichage de pagination. Tout d'abord, nous pouvons définir une valeur pour la propriété PageSize, spécifiant ainsi le nombre de lignes qui constituent une page tirée du groupe d'enregistrements; Utilisez ensuite la propriété RecordCount pour déterminer le nombre total d'enregistrements; Divisez ensuite le nombre total d'enregistrements par pages pour obtenir le nombre total de pages affichées; Enfin, l'accès aux pages spécifiées peut être terminée via la propriété Absolutepage. Cela semble très non compliqué. Voyons comment le programme doit être mis en œuvre?
Nous avons construit une application BBS aussi simple, qui a les cinq champs suivants dans sa base de données: ID, le numéro automatique de chaque message; Sujet, le sujet de chaque poste; Nom, le nom de l'utilisateur qui a ajouté le message; e-mail, l'adresse e-mail de l'utilisateur; Postdate, le temps d'ajouter le message. Le DSN de la base de données est BBS. Nous mettons toutes les étapes de l'affichage de la pagination de post dans un processus appelé showList () pour un appel facile. La procédure est la suivante:
| Ce qui suit est le contenu cité: / '---- bbs montrent la pagination de post ---- <% Sub showlist ()%> <% Pgsz = 20 / 'Set Interrupteur, spécifiez le nombre de messages affichés sur chaque page, la valeur par défaut est de 20 messages par page Définir Conn = Server.CreateObject (ADODB.Connection) Set rs = server.createObject (adodb.recordSet) SQL = SELECT * From Message Order by ID DESC / Interroger tous les messages et les organiser dans l'ordre inverse par ID de poste Conn.open bbs Rs.Open SQL, Conn, 1,1 Si Rs.RecordCount = 0 alors Response.Write <p> <Anter> Désolé, il n'y a pas d'informations pertinentes dans la base de données! </ Center> </p> autre Rs.PageSize = Cint (PGSZ) / 'Définissez la valeur de la propriété PageSize Total = int (Rs.RecordCount / pgsz * -1) * - 1 / 'Calculez le nombre total de pages qui peuvent être affichées Pageno = demande (pageno) Si pageno = alors Pageno = 1 autre Pageno = pageno 1 Pageno = pageno-1 terminer si ScrollAction = Request (ScrollAction) Si ScrollAction = page précédente alors Pageno = pageno-1 terminer si Si ScrollAction = page suivante alors Pageno = pageno 1 terminer si Si pageno <1 alors Pageno = 1 terminer si n = 1 Rs.Absolutepage = Pageno Réponse.write <enter> position = Rs.Pagesize * Pageno PageBegin = position-Rs.PageSize 1 Si la position <Rs.recordCount alors Pagend = position autre PAgend = Rs.recordCount terminer si Réponse.write <p> <font color = / 'navy /'> <b> Résultats de la requête de la base de données: </b> Response.Write (il y a un total de & Rs.RecordCount et des informations qui remplissent les conditions, afficher et pagebin & - & Pagend &) </font> </p> Response.Write <Table Width = 600 Border = 1 CellPadding = 4 CellSpacing = 0 bgColor = # ffffff> Response.Write <tr BgColor = # 5FB5E2> <font size = 2> <td> <b> Topic </b> </td> <td> <b> utilisateur </b> </td> <td> <b> Email </b> </td> <td> <b> Date </b> </td> </font> Faire tout en ne faisant pas (RS n'est rien) RowCount = Rs.PageSize Faire tout en ne faisant pas Rs.Eof et RowCount> 0 Si n = 1 alors Réponse.write <tr bgcolor = # ffffff> AUTRE Response.Write <tr bgColor = # eeeee> Terminer si n = 1-n%> <td> <span style = font-size: 9pt> <a href = / 'View.asp? Key = <% = rs (id)%> /'> <% = rs (sujet)%> </s> </span> </td> <td> <span style = font-size: 9pt> <% = rs (name)%> </ a> </span> </td> <td> <span style = Font-Size: 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 Boucle Définir RS = Rs.NextreCordset Boucle Conn.Close Définir RS = rien Définir Conn = Rien %> </ Table> <Formulaire méthode = get action = list.asp> <Type d'entrée = nom caché = Pageno Value = <% = Pageno% >> <% Si Pageno> 1 alors réponse.Write <Type de saisie = soumettre name = / 'ScrollAction /' Value = / 'Page précédente /'> terminer si Si rowcount = 0 et pageno <> total alors réponse.Write <Type d'entrée = soumettre name = / 'ScrollAction /' Value = / 'Page suivante /'> terminer si réponse.write </ form> Terminer si %> <% End sous%> |
Je crois que tout le monde devrait être en mesure de comprendre pleinement le programme ci-dessus, donc l'auteur ne l'expliquera pas en détail ici. Il convient de noter qu'une petite astuce a été utilisée dans ce programme, <Type d'entrée = nom caché = Pageno Value = <% = Pageno% >>, qui est un passage secret utilisé pour transmettre des données chaque fois que le fichier ASP est appelé. Étant donné que nous devons transmettre des paramètres représentant le numéro de page actuel à chaque fois que le programme est appelé, vous pouvez penser à utiliser la session, mais en termes de réduction des ressources du système et de l'universalité, l'utilisation d'une forme aussi cachée pour adopter des données obtiendra de meilleurs résultats.
D'accord, il est temps de dire au revoir. Si vous ne comprenez pas pleinement les programmes énumérés dans cet article, vous devez ajouter du carburant à la grammaire de VBScript; Si vous avez des questions, je peux faire de mon mieux pour y répondre; Si vous avez de meilleures suggestions, veuillez m'envoyer une lettre.
Partager: générer des pages Web statiques en remplaçant les balises Tout le monde sait que les pages Web statiques HTML sont plus susceptibles d'être indexées par les moteurs de recherche. La génération de pages Web HTML peut également augmenter le nombre de pages Web sur le site Web, et les moteurs de recherche peuvent également en inclure plus. Quel est l'intérêt d'améliorer la qualité des pages Web? Je pense que tout le monde le sait aussi. pour