Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-11-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
Question Ordenar registros de dbgrid de forma acendente o decendente

Hola amigos estuve buscando un poco en los foros y por mas que busque no encontre algo que me ayudara, tal ves si habia pero se me paso, espero me puedan ayudar o darme alguna pista, veran tengo un dbgrid el cual tengo conectado asi dbgrid-> tdatasource-> ttable-> tdatabase ocupo delphi2006 y mi base de datos es postgre, no me gusta mencionar postgre por que la mayoria cre que es un bicho raro y se espanta, pero postgre es como que un equivalente a mysql, en fin en este caso no es tan importante creo la bd,asi que olviden que escribi postgre.

Bien en mi tabla tengo id_semana,anio,numero_semana y otros datos, la llave principal es id_semana, entonces veran en el dbgrid muestro los siguientes datos, anio numero_semana fecha y otros datos mas
mi tabla mas o menos es asi:
Código SQL [-]
 
|id_semana|   anio   |numero_semana|campox|campox2|
      1          2007            1                  x           x
      2          2007            2                  x           x
      3          2008            1                  x           x
      4          2007            3                  x           x
      5          2008            2                  x           x
      .              .              .                   .           .
     99         2010            9                  x           x ....etc.

lo que yo quiero es que se muestren asi pero en el grid, es decir, que se ordenen por el anio y numero_semana

Código SQL [-]
 
|id_semana|   anio   |numero_semana|campox|campox2|
      1          2007            1                  x           x
      2          2007            2                  x           x
      3          2007            3                  x           x
      4          2008            1                  x           x
      5          2008            2                  x           x
      .              .              .                   .           .
     99         2010            9                  x           x ....etc.

ahora bien, mi problema es que en el dbgrid, me trae los registros tal y como estan en la tabla, lo que yo quiero saber es como ordenar en el dbgrid los registros de manera que me los ordene por año y numero de semana, intente utilizar filter pero no encontre la sintaxys correcta, para que se den una idea de lo que quiero hacer es algo asi se que esa instruccion esta mal escrita pero la escribi asi para que vean que es lo que pretendo hacer:
Código Delphi [-]
DBGrid1.DataSource.DataSet.Filter:='(order by[anio] and [numero_semana]asc o desc)
pero no encuentro la sintaxys o forma correcta de hacerlo, solo quiero que el dbgrid me ordene por anio y numero_semana de forma acendente o desendente, si conocen otra manera les estaria muy agradecido, si se me paso decir algo, pueden preguntarme y lo posteo, gracias por su atencion
__________________
En movimiento...
Responder Con Cita
  #2  
Antiguo 08-11-2007
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Hola thelibmx,
Te recomendaría que usaras un TQuery. Con el obtendrás más rapidez, además que te evitas estar trayendo toda la tabla entera de una, lo cual te consume mucha memoria. El TTable demora en abrir la tabla y solo es útil con pocos registros.

Con el TQuery puedes lanzar un SQL así:

Código SQL [-]
select * from tabla order by campo1, campo2, ... campoN DESC

Puedes cambiar ASC o DESC del modo que sea necesario.

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #3  
Antiguo 08-11-2007
Avatar de thelibmx
thelibmx thelibmx is offline
Miembro
 
Registrado: mar 2007
Posts: 515
Poder: 18
thelibmx Va por buen camino
pues si con un query se soluciona el problema pero me trae otro
Código SQL [-]
table does not support this operation because it is not uniquely indexed
nose realmente a que se refiera ese mensaje de error, pero suena complicado, me huele a mas problemas que la solucion, tu sabes, sale mas caro el remedio que la enfermedad, lo que pasa es que ya tengo varias cosas programadas y me llevaria tiempo depurarlas y ahorita lo que menos tengo es tiempo jeje,si cambio la forma en que ligo el grid tendria que cambiar mucho codigo que ya tengo, seria mas facil solo ordenar el grid y listo, o el ttable, conoces alguna propiedad como el filter en el cual se pueda ordenar por añio y numero de semana ? o algo similar
__________________
En movimiento...
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
Ordenar registros de manera descendente con ClientDataSet alucardo Conexión con bases de datos 2 31-05-2006 18:27:34
alguna forma de Insertar registros en entorno de red. Arturo MySQL 2 06-01-2006 23:07:18
FIBPlus - Ordenar Registros y Control Concurrencia Gabriel Conexión con bases de datos 0 25-08-2005 11:45:55
ordenar registros davidgaldo SQL 2 20-04-2005 15:47:23
Buscar registros de forma rapida Tecnic2 Conexión con bases de datos 2 29-09-2004 18:11:56


La franja horaria es GMT +2. Ahora son las 11:13:51.


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