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

si en sql 200 este codigo da error, lo que se debe hacer es meter todo el codigo en un string y ejecutarlo. El problema es con el TOP, que antes no era tan flexible como lo es ahora en el 2005.

Ese mismo procedimiento, cuando lo tenia en sql 2000 lo usaba asi

Código:
CREATE PROCEDURE DN_LIB_TraerNoticiasPag(
@num_registros int = 100,
@num_pagina int = 1
)
as
set nocount on
begin
/*
Retorna los noticias registradas por la pagina indicada.
*/
Declare @SQLstr as varchar(8000)
Declare @NoRegs as int
SET @NoRegs = @num_registros * (@num_pagina - 1)


SET @SQLstr =  'SELECT TOP ' + CAST(@num_registros AS VARCHAR(5)) +
'  N.cod_noticia  CodigoNoticia, ' +
'  N.nom_noticia NombreNoticia, ' +
'  substring(N.des_noticia,1,400) DescripcionNoticia, ' +
'  N.fec_ingreso FechaIngreso, ' +
'  N.num_vistas NumeroVisitas ' +
'FROM DN_LIB_NOTICIAS N ' +
'WHERE cod_noticia not in( ' +
'  SELECT TOP ' + CAST(@NoRegs AS VARCHAR(5)) + ' cod_noticia ' +
'  FROM DN_LIB_NOTICIAS ' +
'  ORDER BY cod_noticia DESC ' +
'  ) ' +
'ORDER BY cod_noticia DESC '

EXEC(@SQLstr)

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

end
Entonces ahi te queda el mismo procedimiento en las dos versiones para sql 2005 o sql 2000.
__________________
roy rojas
Programación en Español: DotNetcr.com