Un programa de paginación asp + sqlserver mío: la característica de este programa es colocar los registros de la página actual en la página. El rendimiento es bueno y no hay necesidad de procedimientos almacenados. Dado que el código no está encapsulado, está muy fragmentado. Para usarlo en su programa, debe leerlo brevemente. Luego presta atención al significado de los lugares que debes fijarte. Algunas pueden omitirse. También se puede omitir el paso de algunos parámetros.
El código es el siguiente:
'''' La herramienta de paginación Snow de Saibei (servidor SQL) no requiere procedimientos almacenados --------------------------- ---
'Hay # en los comentarios ## requiere configuración de usuario
'Hay una descripción del paso de parámetros** en el comentario que se pasará a través de los parámetros.
'Definir variables
tenue tOption 'condiciones de consulta
dim tOrder 'Ordenar cadenas
dim tOrderField 'El campo de pedido se puede obtener mediante parámetros: order_field
dim tOrderDirection 'La dirección de clasificación se puede obtener mediante parámetros: order_direction
dim tPageSize 'Tamaño de página
dim tTotalCount 'El número total de registros se puede obtener mediante parámetros: t_count
dim tPageCount 'Número de páginas
dim tCurPage 'El número de página actual se puede obtener mediante parámetros: page
dim tTableName 'Nombre de tabla o vista
dim tFieldAlias 'alias del número de línea
dim tFieldList 'Lista de campos de consulta
dim tPageField 'Campo utilizado para paginar
dim r_count 'Número de registros encontrados
set rs=server.createobject("adodb.recordset") 'Objeto de conjunto de registros
' procesamiento de clasificación
tOrderField=Request("order_field") 'Obtener el campo de clasificación (paso de parámetros**)
tOrderDirection=Request("order_dir") 'Obtener la dirección de clasificación (paso de parámetros**)
si(tOrderField="") entonces tOrderField="item_code" ' ### Establecer el campo de clasificación predeterminado
if(tOrderDirection="") then tOrderDirection="asc" ' ### Establece la dirección de clasificación predeterminada
'www.downcodes.com
tOrder=" ordenar por " & tOrderField & " " & tOrderDirection & " " 'Generar cadena de clasificación
'Definir parámetros
tPageSize=find_rs_count ' ### Establecer tamaño de página
tTableName="view_select1" ' ### Establecer y consultar la tabla o vista
tFieldList=" * " ' ### Lista de campos a consultar
tPageField="item_code" ' ### Establece una clave principal o un campo de índice único para los cálculos de paginación
'Procesamiento de página
tCurPage=Request("page") 'Obtener la página actual (paso de parámetro**)
tTotalCount=Request("t_count") 'Obtiene el número total de páginas (pase de parámetros**)
si(tCurPage="") entonces tCurPage=1
si(cint(tCurPage)=0) entonces tCurPage=1
si(tPageCount="") entonces tPageCount =1
if(cint(tPageCount)=0) then tPageCount=1
' Construye condiciones de consulta, que definitivamente serán diferentes según el programa específico. Pero la última condición debe ser "¿dónde ???"
tOption=" issues_flag='Y'" ' ### Establecer condiciones
if f_c<>"" entonces tOPtion= tOPtion & f_c ' ### Establecer condiciones
if trim(tOption)="" entonces
tOption = " donde 1=1 " 'Si no hay ninguna condición, agregue una usted mismo.
demás
tOption= " donde " & tOPción
terminar si
'Construya la cadena de consulta, el núcleo de este programa de paginación. Esta cadena de consulta es el registro que necesitamos para descargar solo la página actual.
si(tCurPage>1) entonces
conStr="seleccione arriba " & tPageSize & " " & tFieldList & " from " & tTableName & tOption
conStr = conStr & " y " & tPageField & " no en (seleccione arriba " & tPageSize*(tCurPage-1) & " " & tPageField & " from " & tTableName & tOption & " " & tOrder & ") " & tOrder
demás
conStr="seleccione arriba " & tPageSize & " " & tFieldList & " de " & tTableName & tOption & " " & tOrder
terminar si
'Ejecutar la consulta principal y obtener el conjunto de registros correspondiente
Llamar a ConnDataBase() ' ### Establecer una conexión a la base de datos
rs.ubicación del cursor = 3
rs.open conStr,conn,3,1 'Ejecutar consulta
r_count = rs.recordcount
'Cuando no se ha consultado el número total de registros y el número total de registros excede el tamaño de la página, consulte el número total de registros en las condiciones actuales
si(r_count>=tPageSize o tCurPage>1) y tTotalCount=0 entonces
set rr=conn.execute("seleccione recuento (*) de " & tTableName & " " & tOption)
tTotalCount=rr(0)
rr.cerrar()
setrr=nada
terminar si
if(cint(tTotalCount)=0) then tTotalCount=r_count 'Si el total de registros es 0, establezca el número de registros en los registros de diferencia actuales establecidos en el número total de registros, lo que indica que el número total actual de registros es menor que el tamaño de la página
'Calcule el número de páginas utilizando el tamaño de página y el número total de registros
si (cint (tTotalCount)>cint (tPageSize)) entonces
tPageCount=cint((cint(tTotalCount) cint(tPageSize)))
si(cint(tTotalCount) mod cint(tPageSize))>0 entonces
tRecuentoPáginas =tRecuentoPáginas +1
terminar si
terminar si
tCurPágina=cint(tCurPágina)
tPageCount=cint(tPageCount)
'------------------------------------------------ - -------------------
Este es el código completo. Los amigos que estén interesados pueden estudiarlo o encapsularlo y agregar navegación de paginación y otros métodos. De todos modos, espero que este código pueda ser útil para todos.