Para crear una aplicación web, la función de navegación de paginación es esencial. Este problema es muy común en el procesamiento de la base de datos. De hecho, este método de paginación solo es aplicable a una pequeña cantidad de datos. ¡Seguimos al editor del New Technology Channel incorrecto para obtener más información!
Fuente de ideas:
Saque los registros del enésimo hasta MTH desde la tabla Publish:
Seleccione Top M-N+1 *
De publicar
Donde (no estoy en
(Seleccione Top N-1 ID
De publicar))
El siguiente es el procedimiento almacenado:
La copia del código es la siguiente:Crear procedimiento Pagination3
@tblname varchar (255), - Nombre de la tabla
@strgetfields varchar (1000) = '*', - columnas a devolver
@fldname varchar (255) = '', - Nombre de campo de clasificación
@Pagesize int = 10, - tamaño de página
@PageIndex int = 1, - número de página
@doCount bit = 0, - Devuelve el número total de registros, devuelve si un valor no es 0
@OrderType bit = 0, - Establezca el tipo de clasificación, y si el valor no es 0, descendiendo
@Strwhere Varchar (1500) = '' - Condiciones de consulta (nota: No agregue dónde)
COMO
declarar @strsql varchar (5000) - declaración de asunto
declarar @strtmp varchar (110) - variable temporal
Declarar @Strorder Varchar (400) - Tipo de clasificación
si @docount! = 0
Comenzar
si @strway! = ''
establecer @strsql = 'select Count (*) como Total de [' + @tblname + '] donde' + @strwher
demás
set @strsql = 'select Count (*) como total de [' + @tblname + ']'
fin
-El código anterior significa que si el @doCount pasa no es 0, el recuento total se ejecutará. Todos los siguientes códigos son casos en el que @docount es 0:
demás
Comenzar
Si @OrderType! = 0
Comenzar
set @strtmp = '<(Seleccione Min'
set @Strorder = 'Order by [' + @fldname + '] Desc'
--I @OrderType no es 0, luego realice un orden descendente. ¡Esta oración es muy importante!
fin
demás
Comenzar
set @strtmp = '> (seleccione Max'
set @Strorder = 'Order by [' + @fldname + '] ASC'
fin
Si @PageIndex = 1
Comenzar
si @strway! = ''
set @strsql = 'select top' + str (@pagesize) + '' + @strgetfields + 'de [' + @tblname + '] donde' + @strwhere + '' + @strorde
demás
set @strsql = 'select top'+ str (@pagesize)+ ''+ @strgetfields+ 'de ['+ @tblname+ ']'+ @strorded
-Si es la primera página, ejecute el código anterior, que acelerará la velocidad de ejecución
fin
demás
Comenzar
set @strsql = 'select top' + str (@pagesize) + '' +@strgetfields + 'de ['
+ @tblname + '] donde [' + @fldname + ']' + @strtmp + '([['
+ @fldname + ']) de (seleccione Top' + Str ((@PageIndex-1)*@PageSize) + '['
+ @fldname + '] de [' + @tblname + ']' + @Strorder + ') como tbltmp)'
+ @Strorder
si @strway! = ''
set @strsql = 'select top' + str (@pagesize) + '' +@strgetfields + 'de ['
+ @tblname + '] donde [' + @fldname + ']' + @strtmp + '([['
+ @fldname + ']) de (seleccione Top' + Str ((@PageIndex-1)*@PageSize) + '['
+ @fldname + '] de [' + @tblname + '] donde' + @strwhere + ''
+ @Strorder + ') como tbltmp) y' + @strway + '' + @strorded
fin
fin
ejecutor (@strsql)
--print @strsql
IR
A través del contenido introducido por el editor del 未分 New Technology Channel, creo que todos tienen un cierto entendimiento. Si desea saber más contenido técnico, ¡continúe prestando atención al 未分 未分 nuevo canal de tecnología!