Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/10/2007, 09:28
Avatar de royrojas
royrojas
 
Fecha de Ingreso: diciembre-2004
Mensajes: 458
Antigüedad: 19 años, 4 meses
Puntos: 3
Re: Paginar resultados

yo utilizo un procedimiento almacenado que me pagina. yo le paso por parametros el numero de registros que va a tener la pagina y la pagina que quiero mostrar.
Al final del procedimiento llamo a la funcion CantidadPaginas, lo que hace es retornarme la cantidad de paginas que corresponderian a esta consulta, para yo poder hacer la paginacion manual.

a mi me parece que asi es mucho mas eficiente y yo manejando grandes cantidades de datos me ha resultado muy bien.


CREATE PROCEDURE [rcListar_Noticia_Pag](
@num_registros smallint = 100,
@num_pagina smallint = 1)
AS
SET NOCOUNT ON
BEGIN

Declare @NoRegs as smallint
SET @NoRegs = @num_registros * (@num_pagina - 1)

SELECT TOP(@num_registros)
[id_noticia]
,[nom_noticia]
--,[des_noticia]
,[fec_noticia]
,[fec_vencimiento]
,[ind_estado]
,[num_vistas]
FROM [vrcNoticia]
WHERE [id_noticia] not in(
SELECT TOP(@NoRegs) [id_noticia]
FROM vrcNoticia
ORDER BY [id_noticia] DESC)
ORDER BY [id_noticia] DESC

/* Retorna el numero total de paginas */
DECLARE @CantidadRegistros as smallint
SELECT @CantidadRegistros = COUNT(*) FROM [vrcNoticia]
SELECT dbo.CantidadPaginas(@CantidadRegistros,@num_regist ros) TotalPaginas

END
__________________
roy rojas
Programación en Español: DotNetcr.com