FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Ordenar por un campo de una tabla que es de tipo date
Hola amigos, tengo una tabla la cual tiene una ID q es la clave, q es autoincrementable, y luego varios campos mas, entre ellos FechaIni y FechaFin, por ejemplo:
ID FechaIni FechaFin 1 02/04/2008 05/04/2008 2 08/04/2008 14/04/2008 3 06/04/2008 07/04/2008 Los campos de fechas son de tipo Date, no de tipo String, y bueno, mi problema viene al querer mostrar estos datos por pantalla, ya que los muestro en un TListBox y me salen en el orden en que fueron creados, que viene determinado por la ID, pero si veis, no está ordenado por la fecha inicio que es lo que quiero (fechaIni no es campo clave y no puede serlo), ya que la tercera linea (ID 3), deberia ir en la segunda linea, vamos que quiero que esté ordenado por la fecha ini cuando lo muestre en pantalla (me da = como este en la base de datos). pero me los ordena segun se crearon, y quiero saber si hay alguna forma de ordenar estas tablas que están en el Database Desktop. Y no me vale la propiedad del listbox que pone sorted, ya que esto m los ordena mirandolos como String una vez ya están dentro del list box, por ejemplo: 02/04/2008 05/04/2008 06/03/2008 07/04/2008 08/03/2008 14/04/2008 y claro, las 2 ultimas fechas de inicio m las pone debajo pq son los dias 6 y 8, pero deberían ir arriba pq son del mes 3, pero me las ordena por string no porque sean Date que es lo q tengo puesto en la base de datos del Database Desktop, y quiero que me las ordene por DATE. hasta ahora las habia agregado sin mas asi: ModuloDatos.T_Reserva.Open; ListBox_Reservas.Items.Clear; while not ModuloDatos.T_Reserva.Eof do begin ListBox_Reservas.Items.Add( DateToStr(ModuloDatos.T_ReservaFechaIni.AsDateTime) + ' ' + DateToStr(ModuloDatos.T_ReservaFechaFin.AsDateTime)) ModuloDatos.T_Reserva.Next; end; ModuloDatos.T_Reserva.Close; y como veis me las coje de la base de datos segun se hayan creado, y quiero que me las coja, las ordene por la fecha de inicio (ordenadas por date, no por string) y entoncs las agrego al list box y me las muestre ordenadas por date. Nose si se puede utilizar un Query y hacer un order by o algo de esto. haber si pueden ayudarme, gracias¡ Última edición por mancurnino fecha: 20-04-2008 a las 15:55:26. |
#2
|
||||
|
||||
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#3
|
|||
|
|||
he puesto esto:
ModuloDatos.Query_OrdenarReservas.SQL.Add('Select * '); ModuloDatos.Query_OrdenarReservas.SQL.Add('From ' + ModuloDatos.T_Reserva.TableName); ModuloDatos.Query_OrdenarReservas.SQL.Add('Order By ' + ModuloDatos.T_ReservaFechaIni.FieldName); y debajo de esto tengo el codigo de antes: while not ModuloDatos.T_Reserva.Eof do begin ListBox_Reservas.Items.Add( .... .... nose si sería este el proceso, el query se supone q te modifica la base de datos? pq al añadir elementos al listbox los cojo de ModuloDatos, y el query es una consulta, y el resultao se warda en el query no? no tendria q añadir en el listbox dsd el query en vez desde modulodatos? es que no se como iria esto. Última edición por mancurnino fecha: 20-04-2008 a las 16:38:15. |
#4
|
||||
|
||||
Hola mancurnino, sería mejor que hicieras la consulta directamente sin tener que sacar el nombre de la tabla y el campo desde tu Table T_Reserva y tienes que recorrer tu Query y no tu Table. Mientras no hagas un insert, update... tu query no te modificara tu Base de Datos, solo recuperaras los registros que tu le indiques en tu consulta.
Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar. |
#5
|
|||
|
|||
es que cuando añado al list box no me sale nada de eso que me pones de:
ModuloDatos.Query_OrdenarReservas.AsDateTime Solo puedo acceder al codigo que le he metido (selex * from...) pero no al resultado, nose, lo que quiero sería algo asi como ModuloDatos.Query_OrdenarReservas.FechaIni.AsString + ModuloDatos.Query_OrdenarReservas.FechaFin.AsString que son las fechas que he obtenido y como ya estan ordenadas, las pongo como string y las añado al listbox, pero digamos que no puedo acceder a el resultado del query, o nose como se hace bien |
#6
|
||||
|
||||
es que debes colocar el nombre de tus objetos, pero asi como lo tiene Caro deberia funcionar
Ojo solo debes cambiar el nombre de los objetos
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#7
|
|||
|
|||
he puesto:
pero en ListBox_Reservas.Items.Add(DateToStr(ModuloDatos.Query_OrdenarReservas)) no puedo poner .AsDateTime Última edición por mancurnino fecha: 21-04-2008 a las 19:17:57. |
#8
|
||||
|
||||
Cita:
seria
__________________
...Yo naci en esta ribera del arauca vibr@d0r Soy hermano de la espuma, de la garza, de la rosa y del sol... Viva Venezuela |
#9
|
|||
|
|||
vale, ya está, gracias a todos jejeje.me quedo así:
Última edición por mancurnino fecha: 21-04-2008 a las 23:18:49. |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Ordenar Una tabla por un Campo de otras Tabla | teletranx | Conexión con bases de datos | 2 | 18-08-2006 15:56:35 |
Ordenar por un campo calculado | IVAND | SQL | 0 | 24-11-2004 02:17:28 |
Ordenar por campo | ElCherchu | Varios | 3 | 20-10-2004 19:24:51 |
ordenar tabla | davidgaldo | Conexión con bases de datos | 7 | 25-02-2004 13:03:02 |
Ordenar por campo lookup | xerkan | Firebird e Interbase | 5 | 16-01-2004 09:59:08 |
|