PDA

Ver la Versión Completa : hora que guardo no cambia ayuda en firebird.


ronimaxh
21-08-2007, 16:43:05
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:

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:


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.