Paginacion y ordenación ( Para SQLRanger y versados en el tema

09/02/2005 - 18:09 por Carlos Durán Urenda | Informe spam
Saludos a todos

Estoy tratando de implementar paginacion, segun he leido ADO Net proporciona
un mecanismo de paginacion en el metodo Fill del Adaptador, ejemplo...

myDataAdapter.Fill(myDataSet, 9, 15, "Categories")

con 15 filas, comenzando en la fila 10 de la tabla Categories, esto segun la
alluda del VB.Net
Sin empargo segun lo que he leido, lo que en realidad sucede es que se
cargan todos los registros y posterirmente se descartan lo que quedan fuera
del rango especificado. de forma que resulta poco viable tratar de
implementar paginacion de tal manera.

El autor sugiere que utilice la Clausula TOP de SQL de forma que podria
cargar la Primer pagina Asi:

SELECT TOP 20 FROM Tabla ORDER BY CampoID

y para cargar las paginas siguientes sugiere...

SELECT TOP 20 FROM Tabla WHERE CampoID > ValorX ORDER BY CampoID

donde ValorX se refiere al último valor del CampoID, esto me suena bien solo
cuando la tabla se encuentre ordenada en base a un campo que identifiquie en
forma única a cada fila.


En mi caso, estoy controlando Las Ordenes de Trabajo (OT) que genera el
taller de la empresa, cada OT tiene un ID que la identifica de forma unica,
sin embargo, para consultar dichas ordenes, necesito poder tener la
flexibilidad de consultarlas ordenadas por Tecnico, por Cliente, por Fecha o
por Sucursal.

De forma que la sintaxis de la Clausula SELECT para la pagina siguiente no
me es de utilidad

Podrian por favor orientarme a cerca de como debo implementar la paginacion,
de forma que solo cargue los registros extrictamente necesarios?

Gracias
Carlos Durán

Preguntas similare

Leer las respuestas

#1 JOSE DAVID GALVIZ MUÑOZ
10/02/2005 - 18:31 | Informe spam
No puedo responderte porque no soy sqlRangey ni versado en el tema :)

Mentiras, pero antes que nada, no limites las personas que pueden
responderte colocando ese tipo de frases en el encabezado.

Creo que la solucion sería que la solución sería crear un sp que te
devulevas los datos de la meanera que quieres y al cual le indiques la
cantidad de filas a retornar, la posicion inicial y el orden seleccionado.



JOSE DAVID GALVIZ
MCAD
DCE 4 Estrella

"Carlos Durán Urenda" escribió en el mensaje
news:
Saludos a todos

Estoy tratando de implementar paginacion, segun he leido ADO Net
proporciona un mecanismo de paginacion en el metodo Fill del Adaptador,
ejemplo...

myDataAdapter.Fill(myDataSet, 9, 15, "Categories")

con 15 filas, comenzando en la fila 10 de la tabla Categories, esto segun
la alluda del VB.Net
Sin empargo segun lo que he leido, lo que en realidad sucede es que se
cargan todos los registros y posterirmente se descartan lo que quedan
fuera del rango especificado. de forma que resulta poco viable tratar de
implementar paginacion de tal manera.

El autor sugiere que utilice la Clausula TOP de SQL de forma que podria
cargar la Primer pagina Asi:

SELECT TOP 20 FROM Tabla ORDER BY CampoID

y para cargar las paginas siguientes sugiere...

SELECT TOP 20 FROM Tabla WHERE CampoID > ValorX ORDER BY CampoID

donde ValorX se refiere al último valor del CampoID, esto me suena bien
solo cuando la tabla se encuentre ordenada en base a un campo que
identifiquie en forma única a cada fila.


En mi caso, estoy controlando Las Ordenes de Trabajo (OT) que genera el
taller de la empresa, cada OT tiene un ID que la identifica de forma
unica, sin embargo, para consultar dichas ordenes, necesito poder tener la
flexibilidad de consultarlas ordenadas por Tecnico, por Cliente, por Fecha
o por Sucursal.

De forma que la sintaxis de la Clausula SELECT para la pagina siguiente no
me es de utilidad

Podrian por favor orientarme a cerca de como debo implementar la
paginacion, de forma que solo cargue los registros extrictamente
necesarios?

Gracias
Carlos Durán


Respuesta Responder a este mensaje
#2 Carlos Durán Urenda
10/02/2005 - 20:13 | Informe spam
Gracias

ya lo he resuelto utilizando condiciones WHERE y Sentencias ORDER BY que
incluyan tanto el campo en base al cual deseo ordenar y los campos llave, es
decir, mi sentencia seria ...

SELECT TOP 50 FORM Tabla WHERE Campo>ValorCampo AND CampoId >ValorCampoID
ORDER BY Campo, CampoID

Saludos
Carlos Durán


"JOSE DAVID GALVIZ MUÑOZ" escribió en el mensaje
news:
No puedo responderte porque no soy sqlRangey ni versado en el tema :)

Mentiras, pero antes que nada, no limites las personas que pueden
responderte colocando ese tipo de frases en el encabezado.

Creo que la solucion sería que la solución sería crear un sp que te
devulevas los datos de la meanera que quieres y al cual le indiques la
cantidad de filas a retornar, la posicion inicial y el orden seleccionado.



JOSE DAVID GALVIZ
MCAD
DCE 4 Estrella

"Carlos Durán Urenda" escribió en el mensaje
news:
Saludos a todos

Estoy tratando de implementar paginacion, segun he leido ADO Net
proporciona un mecanismo de paginacion en el metodo Fill del Adaptador,
ejemplo...

myDataAdapter.Fill(myDataSet, 9, 15, "Categories")

con 15 filas, comenzando en la fila 10 de la tabla Categories, esto segun
la alluda del VB.Net
Sin empargo segun lo que he leido, lo que en realidad sucede es que se
cargan todos los registros y posterirmente se descartan lo que quedan
fuera del rango especificado. de forma que resulta poco viable tratar de
implementar paginacion de tal manera.

El autor sugiere que utilice la Clausula TOP de SQL de forma que podria
cargar la Primer pagina Asi:

SELECT TOP 20 FROM Tabla ORDER BY CampoID

y para cargar las paginas siguientes sugiere...

SELECT TOP 20 FROM Tabla WHERE CampoID > ValorX ORDER BY CampoID

donde ValorX se refiere al último valor del CampoID, esto me suena bien
solo cuando la tabla se encuentre ordenada en base a un campo que
identifiquie en forma única a cada fila.


En mi caso, estoy controlando Las Ordenes de Trabajo (OT) que genera el
taller de la empresa, cada OT tiene un ID que la identifica de forma
unica, sin embargo, para consultar dichas ordenes, necesito poder tener
la flexibilidad de consultarlas ordenadas por Tecnico, por Cliente, por
Fecha o por Sucursal.

De forma que la sintaxis de la Clausula SELECT para la pagina siguiente
no me es de utilidad

Podrian por favor orientarme a cerca de como debo implementar la
paginacion, de forma que solo cargue los registros extrictamente
necesarios?

Gracias
Carlos Durán






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