Sobre paginado de consultas

10/03/2006 - 22:07 por CHAR72 | Informe spam
Es mi primera experiencia en mostrar datos con ASP en una pagina html. Mi
pagina de busqueda tiene varios criterios, algunos devulven pocos y otros
muchos registros, obviamente si devuelve 600 registros el usuario puede no
leerlos pero tendria de rigor que mostrarlos, y sobre este punto es mi
consulta.
Encontre un ejemplo de paginado buscando (guarde el sp pero no el enlace):

declare @currentPage int, @pageSize int

DECLARE @Out int, @rowsToRetrieve int, @SQLSTRING nvarchar(1000)

set @currentPage = 1
set @pageSize 
SET @rowsToRetrieve = (@pageSize * @currentPage)

SET NOCOUNT ON
SET @SQLSTRING = N'select Cliente_ID,Cliente from (SELECT TOP '+
CAST(@pageSize as varchar(10)) + 'Cliente_ID,Cliente from (SELECT TOP ' +
CAST(@rowsToRetrieve as varchar(10)) +
'Cliente_ID,Cliente
FROM (SELECT TOP ' + CAST(@rowsToRetrieve as varchar(10)) +
'Cliente_ID,Cliente FROM Clientes as T1
ORDER BY Cliente) AS T2 ORDER BY Cliente DESC ) AS T3) As T4 ORDER
BY Cliente ASC'

EXEC(@SQLSTRING)

select cliente_id,cliente from clientes order by cliente

y funciona, tambien vi que se usa las opciones de paginado de ADO, pero en
la realidad cual seria mas optimo?
Tambien seria valido poner un TOP 1000 por ejemplo a todas la consultas?

Espero vuestras ayudas.

Saludos

Carlos
 

Leer las respuestas

#1 CHAR72
10/03/2006 - 22:11 | Informe spam
Lo saque de esta direccion:

How To Page Records in _NET
Applications.mht!http://msdn.microsoft.com/library/e...e&_r=1

"CHAR72" <char72[nos pa m]@gmail.com> escribió en el mensaje
news:
Es mi primera experiencia en mostrar datos con ASP en una pagina html. Mi
pagina de busqueda tiene varios criterios, algunos devulven pocos y otros
muchos registros, obviamente si devuelve 600 registros el usuario puede no
leerlos pero tendria de rigor que mostrarlos, y sobre este punto es mi
consulta.
Encontre un ejemplo de paginado buscando (guarde el sp pero no el enlace):

declare @currentPage int, @pageSize int

DECLARE @Out int, @rowsToRetrieve int, @SQLSTRING nvarchar(1000)

set @currentPage = 1
set @pageSize 
SET @rowsToRetrieve = (@pageSize * @currentPage)

SET NOCOUNT ON
SET @SQLSTRING = N'select Cliente_ID,Cliente from (SELECT TOP '+
CAST(@pageSize as varchar(10)) + 'Cliente_ID,Cliente from (SELECT TOP ' +
CAST(@rowsToRetrieve as varchar(10)) +
'Cliente_ID,Cliente
FROM (SELECT TOP ' + CAST(@rowsToRetrieve as varchar(10)) +
'Cliente_ID,Cliente FROM Clientes as T1
ORDER BY Cliente) AS T2 ORDER BY Cliente DESC ) AS T3) As T4 ORDER
BY Cliente ASC'

EXEC(@SQLSTRING)

select cliente_id,cliente from clientes order by cliente

y funciona, tambien vi que se usa las opciones de paginado de ADO, pero en
la realidad cual seria mas optimo?
Tambien seria valido poner un TOP 1000 por ejemplo a todas la consultas?

Espero vuestras ayudas.

Saludos

Carlos

Preguntas similares