Ce qui suit est le fragment de code: '************************************************* **************************************************** **************************************************** **************************************************** **************************************************** **************, ********************** '** Nom de ce programme: programme de pagination "Infinite Stream" '** Auteur: Arbitre (AASX) '** Version: Million Niveau '** '** qq: 22222xx '** Courriel: [email protected] '** http://www.images.org/ '************************************************* **************************************************** **************************************************** **************************************************** **************************************************** **************, ********************** '** '** [Paroles de l'auteur] '** «Le programme de pagination est sans aucun doute une chose plus gênante parmi de nombreuses fonctions de programme réseau. '** La plupart des gens utilisent encore la méthode de pagination traditionnelle (Rs.PageSize = xx) pour comprendre '** Les opérations de base de données savent que cette méthode traditionnelle a un désavantage: lorsque la page est ouverte pour la première fois, '** Il lira tous les ensembles d'enregistrements. '** Les pages seront également très lentes, occupant des ressources. Pour des données de plus de 100 000 ou plus '** bibliothèque Cette méthode de pagination traditionnelle est devenue très faible, sans parler d'un million de niveaux (je ne peux pas baiser du tout '** faire). Pour cette raison, je m'a incité à faire ce programme. '** '** [fonction du programme] '** '** Fonctionnement de paglot pour les grandes bases de données, le volume d'enregistrement de données de fonctionnement idéal est de 2 millions «** (Max Level Edition limitera d'innombrables quantités, et quelle que soit la taille de la base de données, la vitesse de virage de la page est '** inchangé), il s'agit du programme de pagination de la version Million Level dans Saiyang 1G, Memory 512, Win2K Ring '** Tester les données dans le royaume: '** '** SQLSERVER 2K 100 000 Records montrent 20 pièces par page: '** Page moyenne Vitesse de virage: 45 ms '** SQLSERVER 2K 1 MILLIONS RECORDS Affichez 20 pièces par page: '** Page moyenne Vitesse de virage: 350 ms '** '** '** [principe de pagling] '** '** Ce programme n'utilise plus la méthode Rs.PageSize en pages, et le type de curseur connectant la base de données '** n'utilise pas Conn, 1, x, mais Conn, 0,1, qui devrait être le type de curseur le plus rapide, ne pas '** pense que cela rendra le programme compliqué. '** Ce devrait être mon style de programmation. Le centre de la pagination de '** "Infinite Stream" est: ne lisez que les enregistrements qui doivent être affichés par page, plus comme la tradition '** Le programme Pagling lit toutes les données pré-lis '** La vitesse rationnelle a également été considérablement améliorée, surtout lorsque la quantité de données est plus élevée, son avantage de vitesse '** Plus évident (seulement environ 350 ms). '** Lorsque le programme est exécuté, le premier enregistrement affiché par Curcorbegin et Curcorend '** Enregistrement et la valeur d'identification du dernier enregistrement, comme marque de la page suivante, puis utilisez le top xx pour prendre '** Les données requises les montrent, puis enregistrent la valeur d'ID. '** '** [Conclusion] '** '** Ce programme est une version partagée, fournie à divers amateurs de programme pour étudier et utiliser, réimprimer, répartir, réparer '** Modifier ou être utilisé à d'autres fins, veuillez respecter le travail acharné de l'auteur et indiquer la source. '** S'il existe des inconvénients tels que l'erreur et l'optimisation dans ce programme, veuillez consulter le développement Web de www.csdn.net/ '** La chronique ASP a publié une discussion, pour le développement de l'industrie des logiciels chinois, veuillez ne pas rester seul :) '** '************************************************* **************************************************** **************************************************** **************************************************** **************************************************** **************, ************************ Option explicite 'Response.flush Dim Begintime, EndTime Begintime = minuterie Dim Conn, Sqlstr, Rs, Defrecordnum, Cursorbegin, Cursorend, Curpagenium, Hav, Hav Defrecordnum = 20 '-------------- Obtenez des paramètres pertinents -------------------------------- --------------------- Si demande ("cursorbegin") = "alors cursorbegin = 0 else cursorbegin = request (" cursorbegin ")) Si demande ("cursorend") = "le cursorend = 0 else cursorend = request (" cursorend ") Si demande ("curpagenum") <> "alors Curpageninum = clng (request ("curpagenum") Ifurpagenum <= 0 puis capagenim = 1 Autre Curpageninum = 1 Terminer si Hav = request ("hav") Si hav = "" alors hav = "suivant" '------------------------------------------------- -------------------------------------------------- --------------------------------- '------------ 显示翻页内容函数 -------- Fonction Turnpagefs (disprecordnum) Dim n Bien que non (Rs.Eof) et n <disprecordnum n = n 1 Réponse.write "<Ter>" & _ "<td bgColor = 'efefef'>" & rs (0) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (1) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (2) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (3) & "</td>" & _ "<td bgColor = 'efefef'>" & rs (4) & "</td>" & _ "<td bgcolor = 'efefef'>" & rs (5) & "</td>" & _ "</tr>" "" Si n = 1 le cursorbegin = rs (0) Si n = defrecordnum ou Rs.Eof, alors cursorend = rs (0) Rs.MovEnext Se promener Fonction finale '------------------------------------------------- ------------------------ Définir Conn = Server.CreateObject ("Adodb.Connection") 'Sqlstr = "provider = Microsoft.Jet.oledb.4.0; Data Source =" & Server.Mappath ("Mlodata.mdb")) Sqlstr = "Driver = {sql server}; server = arbiter; uid = arbiter; pwd = 123456; database = mldata" "" " Conn.Open SQLSTR '--------- STATISTICS TOTAL RECORDS / TOTAL PAGES --------------------------- '-PS: Count (ID) recommandé, ID est le numéro et l'index automatique, sinon la vitesse peut être considérablement actualisée '-PS: Ces statistiques font partie des ressources les plus consommées de ce programme. Totalrcords DIM, Total Pages SQLSTR = "SELECT COUNT (ID) AS RECORNSUM à ABC" Set rs = const.execute (sqlstr, 0,1) TotalRecords = Rs ("Recordsum") TotalPages = ABS (int (TotalRecords / Defrecordnum * (- 1))) Rs.Close Définir RS = rien '-------- Sélectionnez les chaînes SQL correspondantes basées sur Hav ------ Sélectionner le cas (HAV) Cas "dos" Cursorend = cursorbegin Sqlstr = "select top" & defalecordnum & "_ Id, title, nom de fichier, k, imgsize, nameson _ De ABC où id <"& cursorbegin & _ "Et id dans (sélectionnez le haut" et defrecordnum_ & "Id d'ABC où id <" & cursorbegin_ & "Order by id desc) Order by Id" Cas "Suivant" Sqlstr = "select top" et defrecordnum_ & "Id, titre, nom de fichier, k, imgsize, nomson de ABC où id>" & cursorend & _ "Ordre par id" Fin de sélection Set rs = const.execute (sqlstr, 0,1) %>
|