Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > Lazarus, FreePascal, Kylix, etc.
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-09-2006
kanyrosana kanyrosana is offline
Registrado
 
Registrado: sep 2006
Posts: 8
Poder: 0
kanyrosana Va por buen camino
Rxdbgrid

Alguien tiene el código de cómo ordenar un rxdbgrid, he leido que el usuario Cadetill ha publicado algo pero no funcionan los links que aparecen.
lo que necesito es que al hacer click en el titulo de la grilla me ordene por ese campo.
Responder Con Cita
  #2  
Antiguo 13-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Realmente no se ordena un DBGrid o RxDBGrid, sino los datos del DataSet asociado. Así que básicamente lo que has de hacer es manejar el evento OnTitleClick (creo que es así) y, basándote en el campo correspondiente, relanzar la consulta SQL (si usas un Query) o activar el índice que corresponda en el DataSet.

// Saludos
Responder Con Cita
  #3  
Antiguo 14-09-2006
kanyrosana kanyrosana is offline
Registrado
 
Registrado: sep 2006
Posts: 8
Poder: 0
kanyrosana Va por buen camino
Gracias por tu respuesta, lo que pasa es que no quiero volver a ejecutar la consulta porque se demora un par de segundos en ejecutarse, por eso queria saber si existe otra forma mas rápida de ordenar los datos del dataset sin tener que relanzar la consulta SQL agregando el order by correspondiente
Responder Con Cita
  #4  
Antiguo 14-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Eso depende del dataset que uses.

Podrías intentar simplemente establecer el valor de la propiedad IndexFieldNames. Tené en cuenta que si los registros son muchos, esto puede tener un costo de tiempo mucho mas alto que reabrir la consulta.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 14-09-2006
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cualquier reordenamiento que implique una comunicación con el servidor demorará un poco. Pero siempre puedes interponer un ClientDataSet entre el DataSet original y el DBGrid. El reordenamiento en el ClientDataSet será muy rápido al tener todos los registros en memoria. Pero esto obviamente puede ser contraproducente en el gasto de recursos.

// Saludos
Responder Con Cita
  #6  
Antiguo 14-09-2006
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Cita:
Empezado por roman
El reordenamiento en el ClientDataSet será muy rápido al tener todos los registros en memoria.
Recordá que un clientdataset puede ser configurado para traer solo un puñado de registros al abrirse, independientemente del resultado completo de la consulta. Si el resultado de esta fuese muy grande, un reordenamiento del ClientDataSet también sería costoso en tiempo, pues como ya ha dicho roman, para reordenarse este tiene que disponer de todos los datos en memoria.. y eso puede ser muy pesado en tiempo (obtener primero todos los registros).

Como anécdota curiosa... tengo un proceso donde un ClientDataSet, cuando se le pide traer todos los registros de una consulta, tarda horas en obtener unos 390,000 registros de una ubicación a 200 Km. de aquí, con un enlace punto a punto mas o menos decente... (no preocuparse, es para procesamiento automatizado, nada donde intervenga la mano humana )

En local es una operación que tarda apenas unos minutos...

¡Te imaginas un reordenamiento sobre este ClientDataSet cuando solo ha traido los primeros 200 registros (que es al ritmo que los trae regularmente)!

Saludos.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
RXDBGrid.OnDrawColumnCell Cabanyaler Conexión con bases de datos 9 22-11-2005 08:56:46
Scroll en RxDBGrid JANDREGUE Varios 0 07-09-2004 00:17:43
RxDBGrid y los CheckBox Nuria OOP 10 01-04-2004 13:06:03
autoresize en un rxdbgrid xerkan Varios 1 21-01-2004 11:48:11
RxDbGrid y KeyDown javiermorales OOP 2 25-09-2003 11:54:14


La franja horaria es GMT +2. Ahora son las 11:53:28.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi