Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Paginar Con Sql Server 7.0

Estas en el tema de Paginar Con Sql Server 7.0 en el foro de SQL Server en Foros del Web. Hola, Estoy haciendo una paginacion de un listado para un sitio web, e intento utilizar el store procedure CREATE PROCEDURE GetContactsNextPage @PageSize int, @BottomLastName nvarchar(50), ...
  #1 (permalink)  
Antiguo 26/07/2007, 13:12
 
Fecha de Ingreso: julio-2007
Mensajes: 3
Antigüedad: 16 años, 8 meses
Puntos: 0
Mensaje Paginar Con Sql Server 7.0

Hola,
Estoy haciendo una paginacion de un listado para un sitio web, e intento utilizar el store procedure
CREATE PROCEDURE GetContactsNextPage
@PageSize int,
@BottomLastName nvarchar(50),
@BottomContactID int
AS
SELECT TOP (@PageSize) ContactID, FirstName,
MiddleName, LastName, EmailAddress, Phone
FROM Person.Contact
WHERE LastName > @BottomLastName OR
(LastName = @BottomLastName AND
ContactID > @BottomContactID)
ORDER BY LastName, ContactID

GO
Entre otros, este procedimiento funciona para sql sever 2005 pero no para la version 7.0, particularmente por la clusula "TOP (@PageSize)"

Alguien sabe que cambio debo hacer par que funcione en SQL SERVER 7.0

Muchas Gracias,
Nicolas
  #2 (permalink)  
Antiguo 26/07/2007, 13:15
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 4 meses
Puntos: 38
Re: Paginar Con Sql Server 7.0

la variable en el Top solo funciona en la version 2005, en versiones anteriores puede utilizar sql dinámico para construir el query...

puedes empezar a buscarle con el sp : sp_executesql

saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #3 (permalink)  
Antiguo 26/07/2007, 13:48
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Re: Paginar Con Sql Server 7.0

Bueno yo he encontrado un STORE PROCEDURE que sirve para SQL SEVER 7.0 (¿Aun existe?, es broma):

CREATE PROCEDURE MyProcedure

@Page int,
@Size int

AS

DECLARE @Start int, @End int

BEGIN TRANSACTION GetDataSet

SET @Start = (((@Page - 1) * @Size) + 1)
IF @@ERROR <> 0
GOTO ErrorHandler

SET @End = (@Start + @Size - 1)
IF @@ERROR <> 0
GOTO ErrorHandler

CREATE TABLE #TemporaryTable
(
Row int IDENTITY(1,1) PRIMARY KEY,
Project varchar(100),
Buyer int,
Bidder int,
AverageBid money
)
IF @@ERROR <> 0
GOTO ErrorHandler

INSERT INTO #TemporaryTable
SELECT ...
// Any kind of select statement is possible with however many joins
// as long as the data selected can fit into the temporary table.
IF @@ERROR <> 0
GOTO ErrorHandler

SELECT Project, Buyer, Bidder, AverageBid
FROM #TemporaryTable
WHERE (Row >= @Start) AND (Row <= @End)
IF @@ERROR <> 0
GOTO ErrorHandler

DROP TABLE #TemporaryTable

COMMIT TRANSACTION GetDataSet
RETURN 0

ErrorHandler:
ROLLBACK TRANSACTION GetDataSet
RETURN @@ERROR
  #4 (permalink)  
Antiguo 15/08/2007, 10:48
Avatar de Mithrandir
Colaborador
 
Fecha de Ingreso: abril-2003
Mensajes: 12.106
Antigüedad: 21 años
Puntos: 25
Re: Paginar Con Sql Server 7.0

Solo un pequeño acote. TOP funciona en SQL Server 7. Lo que no funciona más que a partir de 2005 es TOP (@var).

El resto es cierto. Si quieres manejar valores variables tienes que recurrir al SQL dinámico. Pero si tienes tamaños fijos un TOP directo funcionará.
__________________
"El hombre, en su orgullo, creó a Dios a su imagen y semejanza."
Friedrich Nietzsche
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:21.