Paginacion en un Pcodemiento

28/04/2004 - 18:29 por Nadia | Informe spam
La plataforma en que estoy desarrollando esta bajo
j2ee, por eso os pedia ayuda sobre la posibilidad de
páginar dentro del propio procedimiento SQL- SERVER.
El que me expone Javi lo he probado y funciona!! el único
problema es que yo no quiero lanzar n-veces el
procedimiento para posiciorme dentro de un rango de
registros sino que con un parametro de entrada (pagina )
el procedimiento me devuelva los n-registros que numera esa
página.

Muchas gracias a todos.

Nadia.

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
29/04/2004 - 04:29 | Informe spam
Hola, y hacerlo en la aplicacion? por ejemplo en .NET el Datagrid pagina ;-)
en Java me imagino nomas que debes poder hacer algo asi, solo me imagino,
sino podes migrar a .NET :-))))))))

Suerte


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"Nadia" escribió en el mensaje
news:589701c42d3e$0186a4c0$
La plataforma en que estoy desarrollando esta bajo
j2ee, por eso os pedia ayuda sobre la posibilidad de
páginar dentro del propio procedimiento SQL- SERVER.
El que me expone Javi lo he probado y funciona!! el único
problema es que yo no quiero lanzar n-veces el
procedimiento para posiciorme dentro de un rango de
registros sino que con un parametro de entrada (pagina )
el procedimiento me devuelva los n-registros que numera esa
página.

Muchas gracias a todos.

Nadia.
Respuesta Responder a este mensaje
#2 Javier Loria
02/05/2004 - 12:29 | Informe spam
Hola Nadia:
Antes del codigo, recomendarte que te alejes de este tipo de soluciones,
el SQL esta fundamentado en la teoria de conjunto de datos, el concepto de
identificar una fila por su posicion es totalmente contrario a estos
fundamentos y los rowid, identities y otros artificios lo unico que logran
es limitarte mentalmente al asociar el concepto de tabla con matriz. No se
identifican las filas por su posicion relativa en el conjunto se identifican
por sus llaves primarias..
Dicho esto, tienes 2 alternativas que se me ocurren:
1) Simulacion de Numero de Fila
=CREATE PROC Autores_Paginados(
@NumPagina INT,
@FilasxPag INT
)
AS
SELECT a.au_id
, a.au_lname
, a.au_fname
, a.phone
, a.address
, a.city
, a.state
, a.zip
, a.contract
FROM authors AS a
JOIN authors AS b
ON a.au_id>=b.au_id
GROUP BY a.au_id
, a.au_lname
, a.au_fname
, a.phone
, a.address
, a.city
, a.state
, a.zip
, a.contract
HAVING COUNT(*) BETWEEN ((@NumPagina-1)*@FilasxPag)+1
AND @NumPagina*@FilasxPag
GO
EXEC Autores_Paginados 2, 5


2) Cursores de ADO
ÞCLARE @P1 int, @P2 int, @P3 int, @P4 int
SELECT @P10150000, @P2=1, @P3=1, @P4#
EXEC sp_cursoropen @P1 output, N'SELECT * FROM authors ORDER BY AU_ID', @P2
output, @P3 output, @P4 output
exec sp_cursorfetch @p1, 16, 1, 5
exec sp_cursorfetch @p1, 16, 6, 5
exec sp_cursorclose @p1

El primero es probable que sea muy lento con tablas grandes y su
funcionalidad es limitada, la segunda debe ser sustancialmente mas rapido
pero usa procedimientos de sistema no documentados que te daran problemas
con nuevas versiones de SQL, tiene problemas de escalabilidad porque
mantiene el estado en el Servidor pero en conjuntos de datos grandes debe
ser mas rapido que el primero y permite navegacion relativa.
Espero te sirva el codigo, pero preferiria que no lo usaras :)
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

Nadia escribio:
La plataforma en que estoy desarrollando esta bajo
j2ee, por eso os pedia ayuda sobre la posibilidad de
páginar dentro del propio procedimiento SQL- SERVER.
El que me expone Javi lo he probado y funciona!! el único
problema es que yo no quiero lanzar n-veces el
procedimiento para posiciorme dentro de un rango de
registros sino que con un parametro de entrada (pagina )
el procedimiento me devuelva los n-registros que numera esa
página.

Muchas gracias a todos.

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