Red de conocimiento informático - Problemas con los teléfonos móviles - Cómo implementar la paginación de datos en SQL requiere declaraciones específicas, gracias

Cómo implementar la paginación de datos en SQL requiere declaraciones específicas, gracias

Sí, use procedimientos almacenados

El procedimiento almacenado de paginación es el siguiente

CREAR PROCEDIMIENTO GetRecordFromPage

@tblName varchar(255), -- Nombre de la tabla

@RetColumns varchar(1000) = '*', -- Las columnas que se devolverán, el valor predeterminado es todas

@Orderfld varchar(255), -- Nombre del campo de clasificación

@PageSize int = 10, -- tamaño de página

@PageIndex int = 1, -- número de página

@IsCount bit = 0, -- devuelve el número total de registros, se devolverán valores distintos de 0

@OrderType varchar(50) = 'asc', -- Establece el tipo de clasificación, los valores no asc estar en orden descendente

@strWhere varchar(1000) = ' ' -- Condiciones de consulta (nota: no agregue dónde)

AS

declarar @strSQL varchar(1000) -- Declaración principal

declarar @strTmp varchar( 300) -- Variable temporal

declarar @strOrder varchar(400) -- Tipo de clasificación

if @IsCount != 0 -- Estadísticas totales de ejecución

comenzar

if @strWhere != ''

set @strSQL = "select count(* ) como Total de [" + @tblName + "] donde " + @strWhere

else

set @strSQL = "select count(*) as Total from [" + @tblName + "]"

fin

else --Ejecutar operación de consulta

comenzar

si @OrderType != 'asc'

comenzar

> set @strTmp = "<(select min"

set @strOrder = " ordenar por [" + @Orderfld +"] desc"

end

else

comenzar

set @strTmp = ">(select max"

set @strOrder = " ordenar por [" + @Orderfld +"] asc"

end

set @strSQL = "select top " + str(@PageSize) + " " + @RetColumns + " from ["

+ @tblName + "] donde [" + @Orderfld + "]" + @strTmp + "(["

+ @Orderfld + "]) de (seleccione arriba " + str((@PageIndex-1)* @PageSize) + " ["

+ @Orderfld + "] de [" + @tblName + "]" + @strOrder + ") como tblTmp)"

+ @strOrder

if @strWhere != ''

set @strSQL = "select top " + str(@PageSize) + " " + @RetColumns + " from ["

+ @tblName + "] donde [" + @Orderfld + "]" + @strTmp + "(["

+ @Orderfld + "]) de (seleccione arriba " + str(( @PageIndex-1)*@PageSize) + " ["

+ @Orderfld + "] de [" + @tblName + "] donde (" + @strWhere + ") "

+ @strOrder + ")

como tblTmp) y (" + @strWhere + ") " + @strOrder

si @PageIndex = 1

comenzar

set @strTmp = ""

if @strWhere != ''

set @strTmp = " donde (" + @strWhere + ")"

set @strSQL = "select top " + str(@PageSize) + " " + @RetColumns + " de ["

+ @tblName + "]" + @strTmp + " " + @strOrder

fin

final

ejecutivo (@strSQL)