Recomendado: use ASP para llamar a las vistas y los procedimientos almacenados en la base de datos 1. Prefacio ASP (Páginas Active Server) es un entorno de secuencias de comandos del lado del servidor, compatible con el IIS3.0 o superior de Microsoft. Se puede utilizar para crear páginas web dinámicas o para generar potentes aplicaciones web. Las páginas ASP incluyen etiquetas HTML, texto y
¿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 en la actualidad, debe saber que para mejorar la velocidad de lectura de la página, el programa Electronic Bulletin Board generalmente no enumera todas las publicaciones en una página, pero las divide en múltiples páginas para mostrar un cierto número de publicaciones por página, como 20 publicaciones. Esta es la visualización de paginación de consultas de bases de datos. Si aún no lo comprende, lo comprenderá mirando los resultados de la consulta de motores de búsqueda como Yahoo.
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 cumplan con las condiciones de consulta en el conjunto de registros a la vez y guárdelos en la memoria. Luego, administre el procesamiento de la paginación a través de varios atributos proporcionados por el objeto ADO RecordSet que admite específicamente el procesamiento de la paginación: PageSize (tamaño de página), PageCount (número de página) y AbsoluTepage (páginas absolutas).
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 lee el número especificado de los registros que cumplen con las condiciones de consulta en la memoria, logrando directamente la función de la exhibición de la paginación.
Podemos sentir claramente que cuando el número de registros en la base de datos llega a 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 consulta la página, todos los registros que cumplen con los criterios deben almacenarse en la memoria del servidor, y luego se llevan a cabo el procesamiento y otro procesamiento. Si más de 100 clientes consultan en línea al mismo tiempo, la eficiencia de ejecución de la aplicación ASP se verá muy afectada. Sin embargo, cuando el número de registros en el servidor y el número de personas en línea al mismo tiempo no son muy grandes, la eficiencia de ejecución de los dos es casi la misma. En este momento, el primer método generalmente se adopta, porque la redacción del programa ASP del primer método es mucho más simple y claro que el segundo método.
Aquí, el autor tomará nuestro programa ASP BBS común como ejemplo para analizar cómo implementar la función de visualización de paginación en el programa BBS. Dado que el número de registros de bases de datos y el número de personas que acceden simultáneamente al programa BBS que generalmente usamos no son demasiados, por lo que los siguientes ejemplos del programa son el primer método de visualización de paginación introducido anteriormente.
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 AbsoluTepage: Establece la ubicación actual del registro en el que se encuentra la página. Propiedad 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 apuntada por el indicador actual. Usando los atributos BOF y EOF, podemos saber si un objeto de registro contiene registros o si la línea de registro móvil ha excedido el alcance del objeto RegistroSet.
como:
< % si no rs.eof entonces ... %>
< % si no (rs.bof y rs.eof) %>
Si la posición de registro actual es antes de la primera fila de un objeto RegistroSet, la propiedad BOF devuelve verdaderas, de lo contrario, devuelve False.
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 registros que quiere moverse cuando la posición de registro actual; NumRecords 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; Start es un elemento opcional para especificar la etiqueta para el inicio del registro.
Todos los objetos de registro admiten el método Move. Si el parámetro NumRecords es mayor que cero, la posición de registro actual se mueve al final; Si es menos de cero, la posición de registro actual se mueve al principio; Si un objeto de registro vacío llama al método Move, se generará un error.
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 qué página se encuentra el registro actual; Use la propiedad de PageSize para dividir el objeto Registro en páginas lógicas, y el número de registros para cada página es PageSize (a excepción de la última página que puede tener registros inferiores a las 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 moverse a la posición de registro de 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 PageSize. Incluso si el número de registros en la última página es menor que el valor de PageSize, la última página se considera una página de PageCount. Cabe señalar que no todos los proveedores de datos respaldan esta propiedad.
6. Atributo de páginas
La propiedad de PageSize es la clave para determinar cómo ADO se pagina al acceder a las bases de datos. Usándolo, puede decidir cuántos registros forman una página lógica. 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. A menudo usamos la propiedad RecordCount para averiguar cuántos registros contiene un objeto de conjunto de registros. Por ejemplo: < %TOTLE = RS.RecordCount %> Después de comprender las propiedades y métodos anteriores del objeto RegistroSet, consideremos cómo usarlos para lograr el propósito de nuestra pantalla de paginación. Primero, podemos establecer un valor para la propiedad de páginas, especificando así el número de filas que constituyen una página tomada del grupo de registros; luego use la propiedad RegistroCount para determinar el número total de registros; Luego divida el número total de registros por páginas para obtener el número total de páginas que se muestran; Finalmente, el acceso a las páginas especificadas se puede completar a través de la propiedad AbsoluTepage. Parece muy no complicado. Echemos un vistazo a cómo se debe implementar el programa.
Hemos creado una aplicación BBS tan simple, que tiene los siguientes cinco campos en su base de datos: ID, el número automático de cada publicación; sujeto, el sujeto de cada puesto; Nombre, el nombre del usuario que agregó la publicación; correo electrónico, la dirección de correo electrónico del usuario; Post -Date, el momento de agregar la 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:
| El siguiente es el contenido citado: /'---- BBS Show Post Paging ---- < %Sub showList () %> < % PGSZ = 20 /'SET SWITCH, 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.open SQL, 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 Response.write <p> <font color =/'Navy/'> <b> Resultados 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 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 = /'view.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 = Get Action = List.asp> <Input type = Hidden Name = Pageno Value = < % = Pageno % >> < % Si pageno> 1 entonces Response.write <input type = Subt name =/'scrollaction/' value =/'anterior página/'> final si Si RowCount = 0 y Pageno <> Total entonces Response.Write <Input type = Subt name =/'scrollaction/' value =/'siguiente página/'> 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. Dado que necesitamos aprobar parámetros que representen el número de página actual cada vez que se llama al programa, puede pensar en usar la sesión, pero en términos de guardar recursos del sistema y universalidad, el uso de una forma tan oculta para aprobar datos logrará mejores resultados.
Bien, es hora de decir adiós de nuevo. Si no comprende completamente los programas enumerados en este artículo, debe agregar algo de combustible a la gramática de VBScript; Si tiene algunas preguntas, puedo hacer todo lo posible para responderlas; Si tiene alguna sugerencia mejor, envíeme una carta.
Compartir: generar páginas web estáticas reemplazando las etiquetas Todos saben que las páginas web estáticas HTML tienen más probabilidades de ser indexadas por los motores de búsqueda. La generación dinámica de las páginas web HTML también puede aumentar el número de páginas web en el sitio web, y los motores de búsqueda también pueden incluir más. ¿Cuál es el punto de mejorar la calidad de las páginas web? Creo que todos también lo saben. para