Hola a todos y un agradecimiento por adelantado por el que me ayude con este problema.
Tengo un problema con la fecha y la hora en el sistema que estoy realizando, la escuestión es cuando guardo un nuevo registro en mi base de datos (utilizo firebird) y lo quiero visualizar en mi ventana de diseño(utilizando Delphi 7) guarda el registro pero todos con la misma hora. Si por ejemplo en mi Grid en la propiedad FieldName elijo fecha_evento como clave muestra y guarda la fecha correcta pero no la hora, ya que muestra la misma en todas, si elijo hra_evento como clave el problema es todo lo contrario, osea hora correcta pero fecha incorrecta. ¿A que se debe esta situación?. Este parte de codigo es donde guardo los datos.
Código Delphi
[-]
procedure TfrmPropEvento.FormCreate(Sender: TObject);
begin
qryTipoEven.Active:=true;
qryTipoEven.FetchAll;
cmbcve_tipo.KeyValue:=qryTipoEven.fieldbyname('cve_tipo').AsInteger;
qryMpo.Active:=true;
qryMpo.FetchAll;
cmbcve_mpo.KeyValue:=qryMpo.fieldbyname('cve_mpo').AsInteger;
hubocambio:=false;
cmbFecha_evento.Date:=date;
cmbHra_evento.DateTime:=Now;
end;
procedure TfrmPropEvento.GuardaProp(nuevo:boolean);
begin
DataMod.qryTemp.Active:=false;
DataMod.qryTemp.SQL.Clear;
if nuevo then begin
DataMod.qryTemp.SQL.Add('insert into eventos ');
DataMod.qryTemp.SQL.Add('(fecha_evento,cve_mpo,cve_edo, ');
DataMod.qryTemp.SQL.Add('cve_tipo,hra_evento,cancel) values ');
DataMod.qryTemp.SQL.Add('(:fecha_evento,:cve_mpo,:cve_edo, ');
DataMod.qryTemp.SQL.Add(':cve_tipo,:hra_evento,:cancel) ');
end else begin
DataMod.qryTemp.SQL.Add('update eventos ');
DataMod.qryTemp.SQL.Add('set fecha_evento=:fecha_evento,cve_mpo=:cve_mpo, ');
DataMod.qryTemp.SQL.Add('cve_edo=:cve_edo, cve_tipo=:cve_tipo,hra_evento=:hra_evento,cancel=:cancel ');
DataMod.qryTemp.SQL.Add(' where cve_evento=:cve_evento ');
DataMod.qryTemp.ParamByName('cve_evento').AsInteger:=cve_evento;
end;
DataMod.qryTemp.ParamByName('fecha_evento').AsDate:=
cmbFecha_evento.Date;
DataMod.qryTemp.ParamByName('cve_mpo').AsInteger:=
cmbcve_mpo.KeyValue;
DataMod.qryTemp.ParamByName('cve_edo').AsInteger:=31;
DataMod.qryTemp.ParamByName('cve_tipo').AsInteger:=
cmbcve_tipo.KeyValue;
DataMod.qryTemp.ParamByName('hra_evento').AsDateTime:=
cmbHra_evento.DateTime;
Esta otra parte es donde lo edito y visualizo
procedure TfrmEventos.tbtneditarClick(Sender: TObject);
begin
if QryEventos.IsEmpty then exit;
frmPropEvento:=tfrmPropEvento.Create(self);
frmPropEvento.cve_evento:=QryEventos.fieldbyname('cve_evento').AsInteger;
frmPropEvento.cmbcve_tipo.KeyValue:=QryEventos.fieldbyname('cve_tipo').AsInteger;
frmPropEvento.cmbcve_mpo.KeyValue:=QryEventos.fieldbyname('cve_mpo').AsInteger;
frmPropEvento.cmbFecha_evento.Date:=QryEventos.fieldbyname('fecha_evento').AsDate;
frmPropEvento.cmbHra_evento.DateTime:=QryEventos.fieldbyname('hra_evento').Asdatetime;