Tengo un problema con esta sp para paginar , funciona cuando pagina
ordenando por codigo, pero no se que tengo que modificar cuando quiero que
pagine ordenando por descricao, muchas gracias desde ya por cualquier ayuda
Alejandro Santos
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
ALTER PROCEDURE PROC_PAGINA(@TABELA VARCHAR(50) = '',@CAMPOS VARCHAR(150) '' , @QTDPAGINA INT = 0 , @PAGINA INT = 0 )
AS
DECLARE @TOTAL INT
DECLARE @codigo numeric
DECLARE @referencia VARCHAR(14)
DECLARE @descricao VARCHAR(50)
DECLARE @COMANDO VARCHAR(200)
DECLARE @DADOS INT
DECLARE @INICIO INT
SET NOCOUNT ON
IF @TABELA <> '' AND @QTDPAGINA <> 0 AND @PAGINA <> 0
BEGIN
CREATE TABLE #TEMP
(
codigo numeric,
referencia VARCHAR(14),
descricao VARCHAR(50)
)
SET @COMANDO = 'DECLARE CUR_MEU CURSOR FAST_FORWARD FOR SELECT ' +
@CAMPOS + ' FROM ' +@TABELA + ' order by descricao'
EXECUTE(@COMANDO)
OPEN CUR_MEU
FETCH NEXT FROM CUR_MEU
INTO
@Codigo,
@referencia,
@descricao
SET @INICIO = 0
SET @DADOS = 0
WHILE @@FETCH_STATUS = 0
BEGIN
IF @INICIO >= ( @PAGINA * @QTDPAGINA ) - @QTDPAGINA
BEGIN
INSERT INTO #TEMP VALUES(@codigo,@referencia,@descricao)
SET @DADOS = @DADOS + 1
IF @DADOS >= @QTDPAGINA
BEGIN
BREAK
END
END
SET @INICIO = @INICIO + 1
FETCH NEXT FROM CUR_MEU
INTO @codigo,@referencia,@descricao
END
CLOSE CUR_MEU
DEALLOCATE CUR_MEU
SELECT codigo,referencia,descricao FROM #TEMP
DROP TABLE #TEMP
END
SET NOCOUNT OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
Leer las respuestas