hola
tengo una bd en access con dos campos fecha/hora donde en uno almaceno la fecha y en otro la hora
desde delphi accedo a la bd por medio de BDE y utilizo un query para hacer consultas, insertar, borrar... registros
el problema es que el campo donde almaceno la hora me esta dando problemas;
Agrego registros de esta manera
Código Delphi
[-]
var t:Ttime ;
...
t:=cbhoras.text+':'+cbminutos.text+':00' ;
edtid.text := formatdatetime('ddmmyyyyhhnnss',fh);
query1.SQL.Add('INSERT INTO CALENDARIO (Id,fecha,hora,evento,notas,estado,aviso,email)'+chr(13)
+ ' VALUES (:id,:fecha,:hora,:evento,:notas,:estado,:aviso,:email)') ;
query1.ParamByName('id').asstring := edtid.Text ;
query1.ParamByName('fecha').asstring := datetostr(dtfecha.Date) ;
query1.ParamByName('hora').asstring := timetostr(t) ;
query1.ParamByName('evento').asstring := edtevento.Text ;
query1.ParamByName('notas').asstring := edtnotas.Text ;
query1.ParamByName('aviso').asstring := cboxaviso.text;
if checkboxaviso.State = cbchecked then query1.parambyname('estado').Value := true
else query1.ParamByName('estado').value := false ;
query1.ParamByName('email').asstring := edtemail.Text ;
...
el registro se agrega sin ningun problema; ahora bien, a la hora de mostrar los datos en el dbgrid ejecutando:
Código Delphi
[-]
query1.SQL.Add('SELECT * FROM CALENDARIO WHERE FECHA >= :fecha ORDER BY FECHA') ;
query1.ParamByName('fecha').asstring := datetostr(monthcalendar1.Date) ;
en lugar de mostrar solo la hora, me agrega la fecha por delante; cosa que si miro en la bd de acces no ocurre;agrego dos imagenes donde puede verse lo que me ocurre; en delphi muestra la fecha por delante de la hora y el acces se muestra bien la hora
Código:
Id Fecha Hora
xxx 07/11/2012 30/12/1899 5:04:00
en cambio si pongo el campo hora en access como texto en lugar de como fecha/hora me guarda bien los datos pero eso no me interesa porque luego no puedo ordenar las consultas por fecha y por hora
no se que mas cambios hacer; he probado todo lo que se me ha ocurrido
Código Delphi
[-]
formatdatetime('h:mm:ss',t)