Foros del Web » Programando para Internet » ASP Clásico »

Reordenar resultados

Estas en el tema de Reordenar resultados en el foro de ASP Clásico en Foros del Web. Hola :) Quiero ofrecer al usuario la posibilidad de reordenar a su gusto un listado, resultado de una consulta a una BBDD. (El usuario cliquearía ...
  #1 (permalink)  
Antiguo 10/05/2005, 10:55
 
Fecha de Ingreso: septiembre-2004
Mensajes: 17
Antigüedad: 19 años, 8 meses
Puntos: 0
Reordenar resultados

Hola :)

Quiero ofrecer al usuario la posibilidad de reordenar a su gusto un listado, resultado de una consulta a una BBDD.

(El usuario cliquearía sobre la cabecera de la columna que desea que sea preferente de orden)

Inicialmente se me ocurre avanzar sobre tres posibles direcciones:

1. Crear las cabeceras de columnas como links a la misma página de resultados, pasandole por queryString el "order" de la consulta sql que pedira a la BBDD.
(Le veo el inconveniente de tener que realizar la consulta a la BBDD cada vez para obtener los mismos datos y recargar la misma página de nuevo. Quizás redundante y poco optimizado).

2. Aprovechar que tengo los datos en el recordSet y utilizar RS.Sort.
(No lo he utilizado nunca. Esto quizá evitaria realizar nuevas consultas a la BBDD. Pero para ejecutar la reordenación deberia ¿usar RS.Update o un refresh de la página?)

3. GetRows, y ordenar el array.
(No lo he usado nunca, ¿requiere forzar refresco?, ¿a nivel de seguridad es viable?)

Que os parece a vosotros ... cual creeis más óptimo ;)

Gracias.
  #2 (permalink)  
Antiguo 10/05/2005, 11:43
Avatar de El_Metallick  
Fecha de Ingreso: noviembre-2002
Ubicación: Santiago, Chile
Mensajes: 1.718
Antigüedad: 21 años, 7 meses
Puntos: 16
bueno yo haria un formulario en el que daria las alternativas de orden en la base de datos.... y cuando llamo a la base de datos haria un select * from tabla order by " & orden & "

ejemplo

orden = request.form("orden")

eso suponiendo que en el formulario las opciones se lleman orden pues

y despues pondria

SQL = "SELECT * FROM tabla ORDER BY " & orden & "

prueba y ve si te sirbe..... saludos y suerte
__________________
Haz la guerra en la cama y el amor donde se te de la gana...
El tiempo es el mejor maestro, lo único malo es que te mata...¡¡Aprovecha tu tiempo!!
  #3 (permalink)  
Antiguo 10/05/2005, 12:10
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
No sabia que el RS tenia esa propiedad SORT... estas seguro que no es para ASP.NET?, y si no es asi... como la utilizas? me podrías pasar un ejemplo?, saludos Geminis.
  #4 (permalink)  
Antiguo 10/05/2005, 12:25
Avatar de Muzztein  
Fecha de Ingreso: agosto-2002
Ubicación: Hangar 18
Mensajes: 1.703
Antigüedad: 21 años, 9 meses
Puntos: 16
con xml y xsl .
  #5 (permalink)  
Antiguo 10/05/2005, 13:47
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Hola

Muzztein ---> con xml y xsl .

he visto ese mensaje muchas veces?, te refieres a usar esa tecnologia ?, y bueno eso es lo mas seguro, pero que ventajas tiene, o como se usa, puedes poner un ejemplo ?

Para II GemInIs II

Los metodos que menciona (rs.sort NO LO HE USADO), tienen ventajas y desventajas, depende del poder de tus servidores (WEB y DB) cual debes implementar mejor.
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
  #6 (permalink)  
Antiguo 10/05/2005, 14:47
 
Fecha de Ingreso: septiembre-2004
Mensajes: 17
Antigüedad: 19 años, 8 meses
Puntos: 0
Cita:
Iniciado por El_Metallick
bueno yo haria un formulario en el que daria las alternativas de orden en la base de datos.... y cuando llamo a la base de datos haria un select * from tabla order by " & orden & "
Gracias El_Metallick, pero dijeramos que lo que deseo es un ordenar "al_vuelo", el cliente ya esta visualizando un listado de información y se trata de que pueda ordenarla al gusto solo clickando sobre la columna que desea que haga de orden primario. Gracias por tu interés de todos modos. :)

Lo que me propones es justo la via (1) que comentaba anteriormente, que es la que habitualmente usaria, pero me repatea tener que consultar la BBDD cuando ya la tengo en ls RS ... por eso valoro la posibilidad de las otras dos opciones RS.SORT y GetRows ... ¿Que opinais sobre esas otras opciones?
  #7 (permalink)  
Antiguo 10/05/2005, 17:38
Avatar de trasgukabi  
Fecha de Ingreso: septiembre-2004
Mensajes: 2.749
Antigüedad: 19 años, 9 meses
Puntos: 18
y qué mas da que uses sort o getrows o lo que se a si vas a tener que recargar la página de siempre? creo que la mejor opción es la que ha dicho el metallick
  #8 (permalink)  
Antiguo 10/05/2005, 18:16
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 5 meses
Puntos: 98
Correcto, siempre recargarás la página, a menos que quieras jugar un poco con arreglos de javascript, pero si tu recordset es grande, olvídalo, a recargar se ha dicho!
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 11/05/2005, 03:02
 
Fecha de Ingreso: septiembre-2004
Mensajes: 17
Antigüedad: 19 años, 8 meses
Puntos: 0
Bueno, la diferencia básica radica en: reordenar en memoria o volver a realizar la consulta a la BBDD del servidor. ¿no?
  #10 (permalink)  
Antiguo 11/05/2005, 09:43
Avatar de Neuron_376  
Fecha de Ingreso: abril-2005
Mensajes: 1.051
Antigüedad: 19 años, 2 meses
Puntos: 2
Cierto!!

Por eso te mencionaba arriba que depende del poder de tus servidores, dependiendo donde tienes más poder debes adecuar tu sistema, o bien, pensar en algo más avanzado donde reaprtes el trabajo, una parte en memoria y otra parte en el database, como por segmentos, es decir, en lugar de cargar todos los registros en memoria, guardar X parte, y cuando has pasado de esos X registros vuelves a pedir... en fin, se trata específicamente de como aprovechar los recursos que tienes.

Suerte!!
__________________
NeuronaNet.com... la idea correcta.
http://www.NeuronaNet.com
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




La zona horaria es GMT -6. Ahora son las 01:44.