Muchísima gracias por todas sus ayudas, pero ya lo solucione, el error me tiraba aquí:
Código Delphi
[-]DM.DSET_pacEDAD.Value:=YearsBetween(Now, DM.DSET_pacFECHA_DE_NACIMIENTO.Value);
DM.DSET_pacMESES.Value:=MonthsBetween(Now, DM.DSET_pacMESES.Value);
porque yo quería modificar la tabla DSET_pac dentro de un evento OnChange de un DBEdit y no había puesto la tabla en modo de edición, la solución es:
Código Delphi
[-] DM.DSET_pac.Edit;
DM.DSET_pacEDAD.Value:=YearsBetween(Now, DM.DSET_pacFECHA_DE_NACIMIENTO.Value);
DM.DSET_pacMESES.Value:=MonthsBetween(Now, DM.DSET_pacMESES.Value);
y luego me marco otra vez el mismo error pero haciendo el seguimiento, me faltaba poner en edición la tabla (DSET_pac):
Código Delphi
[-]Try
DM.DSET_pacESTADO.Value:=0;
DM.DSET_pacMESES.Value:=0;
if (DM.DSET_pacAPELLIDO_Y_NOMBRE.Value='')then
begin
ShowMessage('Verifica que hay campos obligatorios que no están cargados');
DM.DSET_pac.Cancel;
DM.Transaccion.RollbackRetaining;
end;
if(DM.DSET_pacTIPO_DOCUMENTO.Value='')then
begin
ShowMessage('Verifica que hay campos obligatorios que no están cargados');
DM.DSET_pac.Cancel;
DM.Transaccion.RollbackRetaining;
end;
if(DM.DSET_pacNUMERO_DOCUMENTO.Value='')then
begin
ShowMessage('Verifica que hay campos obligatorios que no están cargados');
DM.DSET_pac.Cancel;
DM.Transaccion.RollbackRetaining;
end;
if(DM.DSET_pacFECHA_DE_NACIMIENTO.Value=null)then
begin
ShowMessage('Verifica que hay campos obligatorios que no están cargados');
DM.DSET_pac.Cancel;
DM.Transaccion.RollbackRetaining;
end;
if(DM.DSET_pacSEXO.Value='')then
begin
ShowMessage('Verifica que hay campos obligatorios que no están cargados');
DM.DSET_pac.Cancel;
DM.Transaccion.RollbackRetaining;
end;
if(DM.DSET_pacDIRECCION.Value='')then
begin
ShowMessage('Verifica que hay campos obligatorios que no están cargados');
DM.DSET_pac.Cancel;
DM.Transaccion.RollbackRetaining;
end;
if(DM.DSET_pacNUM_DIR.Value=0)then
begin
ShowMessage('Verifica que hay campos obligatorios que no están cargados');
DM.DSET_pac.Cancel;
DM.Transaccion.RollbackRetaining;
end;
if(DM.DSET_pacPROFESIONAL.Value=null)then
begin
ShowMessage('Verifica que hay campos obligatorios que no están cargados');
DM.DSET_pac.Cancel;
DM.Transaccion.RollbackRetaining;
end;
DM.DSET_pac.Edit;
DM.DSET_pacID_PROF.Value:=DM.DSET_profID_PROF.Value;
DM.DSET_pacID_COBER.Value:=DM.DSET_cob_medID_COBER.Value;
DM.DSET_pacID_LOC.Value:=DM.DSET_locID_LOC.Value;
DM.DSET_num.Edit;
DM.DSET_numTIPO.Value:='H';
DM.DSET_numCOMENTARIO.Value:='HISTORIA CLINICA';
DM.DSET_numNUMERO.Value:=DM.DSET_numNUMERO.Value + 1;
DM.DSET_pacNUMERO_HISTORIA_CLINICA.Value:=DM.DSET_numNUMERO.Value;
DM.DSET_pac.Post;
DM.DSET_num.Post;
DM.Transaccion.CommitRetaining;
DM.DSET_pac.Append;
ape_nom_pac_a.SetFocus;
except
ShowMessage('No se puede ingresar un registro en blanco');
DM.DSET_pac.Cancel;
DM.Transaccion.RollbackRetaining;
end;
end;
lo que agrege y me realiza bien todo lo que deseo.
Pero igual agradezco su tiempo...