Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-12-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
orden en un listado

Hola,
trabajo con Paradox y delphi 5. Tengo una tabla "alumno" cuyo indice es un código. Tengo también un dbgrid donde muestro la lista de alumnos. Lo que quiero es que el orden de los alumnos venga dado por el nombre y no por el codigo. Cómo hago eso? Es que claro, al insertar por ejemplo un nuevo alumno, me lo coloca en el ultimo lugar de la lista y yo quiero que quede colocado por orden alfabetico. Cómo puedo hacerlo?
Muchas gracias
Responder Con Cita
  #2  
Antiguo 14-12-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo primero tendrás que crear si aún no lo tienes un índice por apellidos y activarlo antes de mostrar la rejilla.

MiTabla.IndexName:='Apellidos';

Con esto al dar un alta se colocará en donde le corresponda por apellidos.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 14-12-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
se me olvido decir que la tabla alumno es una tabla detalle que depende de una tabla curso. En indexname tengo puesto "curso" para que me enseñe los alumnos de cada curso. Entonces...como lo hago? hay alguna forma?
Responder Con Cita
  #4  
Antiguo 14-12-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Pues mientras sea detalle no porque el índice activo obligatoriamente tiene que ser el que case con la tabla maestra que según dices es código.

Si sueltas la relación maestro detalle, entonces podrías ordenarla como quisieras en este caso podrías simular la relación maestro detalle por ejemplo mediante un filtro.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #5  
Antiguo 14-12-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
se un poco más concreto porfa estoy muy perdida con lo que dices. Entendi eso de que no puede haber otro indice activo que no sea el que lo relacione con la tabla maestro pero entonces como lo hago sin perder esa relación maestro/detalle? cuanto más concreto seas mejor.
muchas graciassss
Responder Con Cita
  #6  
Antiguo 14-12-2003
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo que quiero decir es que desactives la relación maestro-detalle y entonces simulas dicha relación mediante un filtro:

MiTablaAlumnos.Filter:='Codigo ='+ QuotedStr(MiTablaMaestraMiCampo.Value)
MiTablaAlumnos.Filtered:=True;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #7  
Antiguo 14-12-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
otra opción sería utilizar un Inner Join de SQL para hacer el listado y, en el Order By de la sentencia, poner la ordenación deseada
Responder Con Cita
  #8  
Antiguo 14-12-2003
vetustas vetustas is offline
Miembro
 
Registrado: oct 2003
Posts: 77
Poder: 21
vetustas Va por buen camino
Cadetill gracias por contestar. Y con eso que me propones tendria que quitar también la relacion maestro/detalle? Me puedes poner especificamente el código sql q tengo que usar?

Muchas gracias
Responder Con Cita
  #9  
Antiguo 14-12-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
veamos

necesitas un TQuery (o el componente de conexión que utilices)
luego, en su propiedad SQL pones algo así

Código:
select campo1, campo2,...,campoN
from tabla1 t1 inner join tabla2 t2 on (t2.relacion = t1.relacion)
where
    t1.campoX = loQueSea and/or MasCondiciones
Responder Con Cita
  #10  
Antiguo 16-12-2003
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
con la venia de cadetill, me permito la osadia de añadir algo más

Código:
select campo1, campo2,...,campoN
from tabla1 t1 inner join tabla2 t2 on (t2.relacion = t1.relacion)
where
    t1.campoX = loQueSea and/or MasCondiciones
ORDER BY t1.codigo, t1.campo1 Asc ,t2.campo2 Desc;
Asc = orden ascendente
Desc = orden descendente

Lógicamente si ordenas por un campo único (como el código) no hará caso al resto de ordenación

Saluditos
Responder Con Cita
  #11  
Antiguo 16-12-2003
__cadetill __cadetill is offline
Miembro
 
Registrado: may 2003
Posts: 3.387
Poder: 25
__cadetill Va por buen camino
Cita:
Lepe comentó:
con la venia de cadetill, me permito la osadia de añadir algo más
Faltaría más!!! Muy bien añadido
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


La franja horaria es GMT +2. Ahora son las 13:34:07.


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