¿Qué es la pantalla de paginación cuando ADO accede a las bases de datos? Si ha utilizado el programa de tablas de anuncios electrónicos en muchos sitios web, debe saber que para mejorar la velocidad de lectura de la página, el programa de tablas de anuncios electrónicos generalmente no enumera todas las publicaciones en una página, sino que se divide en múltiples Páginas para mostrar, y cada página muestra un cierto número de publicaciones, como 20. ¿Quiere saber cómo implementar la pantalla de paginación? ¡Lea este artículo!
El artículo "Dieciocho artes marciales del diseño de sitios web dinámicos" ha pasado la mayor parte de medio año con amigos desde el primer número. y practicar. De las cartas que he recibido de mis amigos, podemos sentir claramente que las habilidades de ASP de todos están mejorando constantemente. Recientemente, muchos amigos me han escrito y esperan que pueda escribir algunos ejemplos de ASP en uso de la vida real. Por lo tanto, a partir de este tema, decidí cambiar el posicionamiento de "Dieciocho artes marciales de la edición dinámica de diseño de sitios web-Asp", desde la introducción y el aprendizaje de los conocimientos básicos de ASP hasta discutir y profundizar la operación real de ASP. A petición de mis amigos, en este tema, me centraré en cómo mostrar la paginación de la base de datos ADO al acceder a él.
¿Qué es la pantalla de paginación cuando ADO accede a las bases de datos? Si ha utilizado el programa de tablas de anuncios electrónicos en muchos sitios web, debe saber que para mejorar la velocidad de lectura de la página, el programa de tablas de anuncios electrónicos generalmente no enumera todas las publicaciones en una página, sino que se divide en múltiples Páginas para mostrar, y cada página muestra un cierto número de publicaciones, como 20. Esta es la exhibición de la paginación de consultas de base de datos.
Entonces, ¿cómo podemos paginar los resultados de la consulta de la base de datos? En realidad, hay muchas maneras, pero hay dos formas principales:
1. Lea todos los registros en la base de datos que cumplen con las condiciones de consulta en el conjunto de registros a la vez y guardelos en la memoria. (Número de página) y AbsoluTepage (página absoluta) para administrar el procesamiento de la paginación.
2. Según las instrucciones del cliente, el número especificado de registros se leerá y se mostrará a partir de los registros que cumplan con las condiciones de consulta cada vez.
La principal diferencia entre los dos es que el primero lee todos los registros en la memoria a la vez y luego hace juicios y análisis en secuencia de acuerdo con las instrucciones para lograr el efecto de la pantalla de paginación, mientras que el segundo hace juicios basados en las instrucciones y establece el Número especificado para cumplir con las condiciones de consulta.
Podemos sentir claramente que cuando el número de registros en la base de datos alcanza decenas de miles o más, la eficiencia de ejecución del primer método será significativamente menor que el del segundo método, porque cuando cada cliente consulte la página, todos los resultados deben ser transferidos. Sin embargo, cuando el número de registros en la base de datos en el servidor y el número de personas en línea al mismo tiempo no son grandes, la eficiencia de ejecución de los dos es casi la misma. El programa ASP del primer método está relativamente escrito, el segundo método es mucho más simple y claro.
Aquí, el autor tomará nuestro programa ASPBBS común como un ejemplo para analizar cómo implementar la función de visualización de paginación en el programa BBS. muchos.
La pantalla de paginación cuando ADO accede a la base de datos es en realidad operar los registros del conjunto de registros. Por lo tanto, primero debemos comprender las propiedades y métodos del objeto ReordSet:
Atributo BOF: el indicador actual se refiere a la primera transacción al conjunto de registros.
Atributo EOF: el indicador actual se refiere a la última transacción al conjunto de registros.
MOTE MÉTODO: Mueva las métricas a un registro en el conjunto de registros.
Propiedad de AbsoluTepage: Establece la ubicación actual del registro en el que se encuentra la página AbsolutEposition: la ubicación actual de la métrica en el conjunto de registros.
Propiedad PageCount: muestra cuántas páginas de datos contiene un objeto de conjunto de registros.
Propiedad PageSize: muestra el número de registros que se muestran en cada página del objeto RecordSet.
Propiedad Registro: muestra el número total de registros del objeto RegistroSet.
Echemos un vistazo más de cerca a estos importantes atributos y métodos
1. Atributos BOF y EOF
Por lo general, escribimos código en un programa ASP para verificar los atributos BOF y EOF para conocer la ubicación del conjunto de registros que señala el indicador. ¿Se ha excedido el alcance del objeto de conjunto de registros?
Por ejemplo: < %si no rs.eof entonces ... %>
< % si no (rs.bof y rs.eof) %>
Si la ubicación de registro actual está en un objeto de registro
Cuando se registra la primera línea, el atributo BOF devuelve verdadero, de lo contrario falso.
Si la posición de registro actual es después de la última fila de un objeto RegistroSet, la propiedad EOF devuelve verdaderas, de lo contrario, devuelve falso.
Tanto BOF como EOF son falsos: significa que el indicador se encuentra en el conjunto de registros.
BOF es verdadero: el indicador actual se refiere al primer registro al conjunto de registros. EOF es verdadero: el indicador actual se refiere al último registro al conjunto de registros.
Tanto BOF como EOF son ciertos: no hay registro en el conjunto de registros.
2. MOVER MÉTODO
Puede usar el método Move para mover las métricas a un registro en el conjunto de registros, con la sintaxis de la siguiente manera:
Rs.Move NumRecords, comienza
Aquí RS es una variable de objeto, que indica un objeto de conjunto de registro que quiere moverse cuando la posición de registro actual es una fórmula de cálculo de número positivo y negativo que establece el número de movimientos de la posición de registro actual; la etiqueta de inicio.
Todos los objetos de registro admiten el método de movimiento. Método, se generará un error A.
MOTO MOTO MÉTODO: Mueva la posición de registro actual al primer registro.
Método de Movelast: mueva la posición de registro actual al último registro.
Método MoveNext: mueva la posición de registro actual al siguiente registro. MOTO MOVEPREVIUS: Mueva la posición de registro actual al registro anterior.
Mueva [n] Método: mueva el índice al enésimo registro de la pluma, n comienza desde 0.
3. Atributos de AbsolutePage
La propiedad AbsoluTepage establece el número de página de páginas en las que se encuentra la página; Registros de páginas). Cabe señalar aquí que no todos los proveedores de datos respaldan esta propiedad, así que tenga cuidado al usarla.
Lo mismo que la propiedad AbsoluTePosition, la propiedad AbsoluTepage comienza con 1. Si el registro actual es la primera fila del conjunto de registros, el AbsoluTepage es 1. La propiedad AbsoluTepage se puede configurar para pasar a la posición de registro de la primera fila de una página especificada.
4. Propiedad de AbsolutePosition
Si necesita determinar la ubicación actual de la métrica en el conjunto de registros, puede usar la propiedad AbsoluTePosition.
El valor de la propiedad AbsoluTeposition es la posición del indicador actual en relación con la primera transacción, que comienza desde 1, es decir, la capacidad de absoluta de la primera transacción es 1.
Tenga en cuenta que al acceder a los registros, no hay garantía de que los registros aparezcan en el mismo orden cada vez.
Para habilitar AbsoluTePosition, primero debe configurarlo para usar el Cursor del usuario (puntero), y el código ASP es el siguiente:
rs2.cursorlocation = 3
5. Propiedad de PageCount
Use la propiedad PAGECOUNT para determinar cuántas páginas de datos contiene un objeto Registro. La página aquí es una colección de registros de datos, y su tamaño es igual a la configuración de la propiedad de PageSize. . Cabe señalar que no todos los proveedores de datos respaldan esta propiedad.
6. Propiedad de páginas
La propiedad de PageSize es la clave para determinar cómo ADO se pagina al acceder a las bases de datos. Establece y crea un tamaño de página, lo que permite que la propiedad AbsoluTepage se mueva al primer registro de otras páginas lógicas. La propiedad de PageSize se puede establecer en cualquier momento.
7. Propiedad de registro
Esta es también una propiedad muy común e importante. Por ejemplo: < %Totle = Rs.RecordCount %>
Después de comprender las propiedades y métodos anteriores de los objetos de conjunto de registros, consideremos cómo usarlos para lograr el propósito de nuestra pantalla de paginación. Primero, podemos establecer un valor para la propiedad de PageSize, especificando así el número de filas que constituyen una página tomada del grupo de registro; Para obtener el número total de la página que se muestra; Parece muy complicado.
Hemos creado una aplicación BBS tan simple, que tiene los siguientes cinco campos en su base de datos: ID, número automático de cada publicación; Tiempo de publicación. El DSN de la base de datos es BBS. Ponemos todos los pasos para mostrar la publicación posterior en un proceso llamado ShowList () para una fácil llamada. El procedimiento es el siguiente:
'---- BBS Show Post Paging ---
< %Sub showList () %>
< %
PGSZ = 20 'SET STISTE, especifique el número de publicaciones que se muestran en cada página, el valor predeterminado es 20 publicaciones por página
Establecer conn = server.createObject (ADODB.Connection)
Establecer rs = server.createObject (ADODB.RecordSet)
sql = seleccionar* de la orden de mensajes por ID DESC
'Consulta todas las publicaciones y organizarlas en orden inverso por ID de publicación
Conn.open bbs
Rs.opensql, Conn, 1,1
Si Rs.RecordCount = 0 entonces
Response.Write <P> <Center> Lo siento, no hay información relevante en la base de datos! < /Center> </p>
demás
Rs.pagesize = cint (PGSZ) 'Establezca el valor de la propiedad PageSize
Total = int (Rs.RecordCount / PGSZ * -1) * -1 'Calcule el número total de páginas que se pueden mostrar
Pageno = solicitud (pageno)
si pageno = entonces
Pageno = 1
demás
Pageno = pageno+1
Pageno = pageno-1
final si
Scrollaction = request (scrollaction)
Si scrollaction = página anterior entonces
Pageno = pageno-1
final si
Si scrollaction = página siguiente entonces
Pageno = pageno+1
final si
Si pageno <1 entonces
Pageno = 1
final si
n = 1
Rs.AbsolutePage = Pageno
Respuesta.Write <Center>
posición = rs.pagesize*pageno
PageBegin = Position-Rs.Pagesize+1
Si posición <rs.RecordCount entonces
pagend = posición
demás
pagend = Rs.RecordCount
final si
Respuesta.Write <P> <font color = 'Navy'> <b> Resultado de la consulta de la base de datos: </b>
Response.Write (hay un total de & rs.RecordCount & piezas de información que cumplen con las condiciones, Display & PageBegin &-& Pagend &) </font> </p>
Response.Write <Tabla Width = 600 Border = 1 CellPadding = 4 CellSpacing = 0 BGColor =#ffffff>
Respuesta.Write <Tr BgColor =#5FB5E2> <font size = 2> <td> <b> tema </b> </td> <td> <b> user </b> </td> <td> <bd> <bd <s B> Correo electrónico </b> </td> <td> <b> fecha publicada </b> </td> </font> <tr bgcolor =#ffffff>
Hazlo mientras no (RS no es nada)
RowCount = Rs.Pagesize
Haga mientras no Rs.eof y RowCount> 0
Si n = 1 entonces
Response.write <tr bgcolor =#ffffff>
DEMÁS
Response.Write <Tr Bgcolor =#eeeee>
Final si
n = 1-N %>
<TD> <span style = font-size: 9pt> <a href = 'ver.asp? Key = < % = rs (id) %>'> < % = rs (sujeto) %> < /a> </ / span> </td>
<TD> <span style = font-size: 9pt> < % = rs (name) %> </a> </span> </td>
<TD> <span style = font-size: 9pt> <a href = mailto: < % = rs (correo electrónico) % >> < % = rs (correo electrónico) %> </a> </span> </td>
<TD> <span style = font-size: 9pt> < % = rs (postdate) %> </span> </td>
</tr>
< %
RowCount = RowCount - 1
Rs.Movenext
Bucle
establecer rs = rs.nextrecordset
Bucle
Conn.clar
establecer RS = nada
establecer conn = nada
%>
</table>
<Form Method = getAction = list.asp>
<Input type = Hidden Name = Pageno Value = < % = Pageno % >>
< %
Si pageno> 1 entonces
Response.write <input type = Subt name = 'scrollaction' valor = 'página anterior'>
final si
Si RowCount = 0 y Pageno <> Total entonces
Response.write <input type = Subt name = 'scrollaction' valor = 'página siguiente'>
final si
Response.Write </form>
Final si
%>
< % Final sub %>
Creo que todos deberían poder comprender completamente el programa anterior, por lo que el autor no lo explicará en detalle aquí. Vale la pena señalar que se usó un pequeño truco en este programa <input type = hidden name = pageno value = < % = pageno % >>, que es un pasaje secreto utilizado para pasar datos cada vez que se llama al archivo ASP, porque nosotros Necesita aprobar parámetros que representen el número de página actual cada vez que llamamos al programa, y puede pensar en usar la sesión, pero en términos de guardar recursos y universalidad del sistema, el uso de una forma tan oculta para aprobar datos logrará mejores resultados.
De acuerdo, es hora de decir adiós. ; si tienes alguna sugerencia mejor, por favor envíame una carta :)