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

Preguntas similare

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

Respuesta Responder a este mensaje
#2 Maxi [MVP]
10/03/2006 - 23:45 | Informe spam
Hola, si usas SQL2005 no debes recaer en SQL dinamico que es muy inseguro,m
podrias usar top @n


Salu2
-
[MVP] SQL Server
Orador para Culminis Latam
www.sqlgurus.org

MSN:

"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

Respuesta Responder a este mensaje
#3 Alejandro Mesa
11/03/2006 - 00:26 | Informe spam
How do I page through a recordset?
http://www.aspfaq.com/show.asp?id!20


AMB

"CHAR72" wrote:

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



Respuesta Responder a este mensaje
#4 Developers
13/03/2006 - 15:40 | Informe spam
Otra formar lo tienes de esta manera, Usando Store Procedure

http://www.netveloper.com/contenido2.aspx?IDCc_0


CHAR72 escribió:
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


email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida