Problemas al guardar HORA
Saludos.
Uso DELPHI 6, FIREBIRD 1.5 y componentes de acceso a la BD FIBPLUS. Se me plantea el siguiente problema. Campo HORA, tipo TIME en una tabla cualquiera. Desde código Delphi, en el evento AfterInset del componente de la tabla hago tbl_MyTablaHORA.Value := Now;. Al insertar un registro, se presenta el valor correcto en pantalla, p.e. las 16:30:40. Pues bien, al hacer el Post del registro el valor cambia a 7:29:15, que es exactamente el tiempo que falta hasta las 23:59:59. Siempre se reproduce este comportamiento. He comprobado que a la base de datos le llega el valor cambiado, por lo que el problema deberá estar en el programa y/o sus componentes. Si dejo el campo HORA sin asignar, como en un Trigger BeforeInsert de la tabla tengo puesto IF (NEW.HORA IS NULL) THEN NEW.HORA = CURRENT_TIME, todo va bien. Pero no puedo asignar un valor desde el programa porque cambia el valor según lo explicado anteriormente. ¿Alguien ha tenido un problema parecido o puede darme una explicación del porqué de este comportamiento aparentemente anormal?. Gracias. Sara Paz. |
Solucionado el problema. Comunico la solución enviada por el Equipo de Desarrollo de FIBPlus para conocimiento general de aquellos que usen estos componentes.
Hay que hacer lo siguiente:
method function TFIBXSQLVAR.GetAsDateTime: TDateTime;
begin Result:= PISC_QUAD(FXSQLVAR^.sqldata)^.gds_quad_high-IBDateDelta+ PISC_QUAD(FXSQLVAR^.sqldata)^.gds_quad_low/MSecsPerDay10; end;
begin Result:= HookTimeStampToDateTime(AsTimeStamp); end;
Sara Paz. |
Gracias por compartirlo :)
|
La franja horaria es GMT +2. Ahora son las 11:55:29. |
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