Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   hora que guardo no cambia ayuda en firebird. (https://www.clubdelphi.com/foros/showthread.php?t=47189)

ronimaxh 21-08-2007 16:43:05

hora que guardo no cambia ayuda en firebird.
 
Hola amigos del club uso firebird 1.5 ibx y delphi 7, el tipo de fecha que uso es el TIMESTAMP para guardar la fecha y la hora, el componenete que hago referencia es DateTimePicker el guardado lo hago de la siguiente manera:
Código Delphi [-]
procedure tfrmprincipal.guarda_otros_ing;
begin
  with frmotros_ing do
  with frmdata.st do
       begin
         sql.Text:='select * from otros_ing where cod_ing='+QuotedStr(cod_ing);
         open;
         if recordcount=0 then
            begin
              with frmdata.otros_ing do
                   begin
                     open;
                     Insert;
                     FieldByName('cod_ing').AsInteger:=0;
                     FieldByName('descripcion').AsString:=descrip_edit.Text;
                     FieldByName('monto').Value:=monto_edit.Value;
                     FieldByName('fecha').AsDateTime:=fecha.Date;
                     FieldByName('periodo').AsString:=cbo_periodo.Text;
                     Post;
                     close;
                     Transaction.CommitRetaining;
                     limpiar_otros_ing;
                     presenta_otros_ing;
                     application.MessageBox('Ingreso Guardado','Atención',+MB_ICONINFORMATION);
                   end;
            end
            else
            begin
              with frmdata.otros_ing do
                   begin
                     open;
                     if Locate('cod_ing',cod_ing,[])=true then
                        begin
                           Edit;
                           FieldByName('descripcion').AsString:=descrip_edit.Text;
                           FieldByName('monto').Value:=monto_edit.Value;
                           FieldByName('fecha').AsDateTime:=fecha.Date;
                           FieldByName('periodo').AsString:=cbo_periodo.Text;
                           Post;
                           close;
                           Transaction.CommitRetaining;
                           limpiar_otros_ing;
                           presenta_otros_ing;
                           application.MessageBox('Ingreso Actualizado','Atención',+MB_ICONINFORMATION);
                       end;
                   end;
             end;
       end;

Nota: el problema es que cuando guardo la hora no cambia y no se porque, alguna ayudita les agradezco.

eduarcol 21-08-2007 16:51:18

Modifica el codigo asi:

Código Delphi [-]
procedure tfrmprincipal.guarda_otros_ing;
begin
  with frmotros_ing do
  with frmdata.st do
       begin
         sql.Text:='select * from otros_ing where cod_ing='+QuotedStr(cod_ing);
         open;
         if recordcount=0 then
            begin
              with frmdata.otros_ing do
                   begin
                     open;
                     Insert;
                     FieldByName('cod_ing').AsInteger:=0;
                     FieldByName('descripcion').AsString:=descrip_edit.Text;
                     FieldByName('monto').Value:=monto_edit.Value;
                     FieldByName('fecha').AsDateTime:=fecha.DateTime;
                     FieldByName('periodo').AsString:=cbo_periodo.Text;
                     Post;
                     close;
                     Transaction.CommitRetaining;
                     limpiar_otros_ing;
                     presenta_otros_ing;
                     application.MessageBox('Ingreso Guardado','Atención',+MB_ICONINFORMATION);
                   end;
            end
            else
            begin
              with frmdata.otros_ing do
                   begin
                     open;
                     if Locate('cod_ing',cod_ing,[])=true then
                        begin
                           Edit;
                           FieldByName('descripcion').AsString:=descrip_edit.Text;
                           FieldByName('monto').Value:=monto_edit.Value;
                           FieldByName('fecha').AsDateTime:=fecha.DateTime;
                           FieldByName('periodo').AsString:=cbo_periodo.Text;
                           Post;
                           close;
                           Transaction.CommitRetaining;
                           limpiar_otros_ing;
                           presenta_otros_ing;
                           application.MessageBox('Ingreso Actualizado','Atención',+MB_ICONINFORMATION);
                       end;
                   end;
             end;
       end;

y cuando inicializes Fecha.DateTime := Now;

ojo la hora no va a ser precisa

ronimaxh 21-08-2007 16:57:43

De la forma que dices ya lo habia probado y no cambia la hora

eduarcol 21-08-2007 17:05:54

es que lo que pasa qeu el control que utilizas la hora es estatica y solo va a guardar la hora a la que inicializes, vas a tener que armar tu DateTime dinamicamente sumando la fecha del control y la hora del sistema (TIME)

ronimaxh 21-08-2007 18:23:22

Ya he resuelto el problema, gracias amigo por la ayuda, segui tu sugerencia.


La franja horaria es GMT +2. Ahora son las 20:18:15.

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