Estoy utilizando un modulo de datos llamado DM y dentro de este tengo un componente Database (DB).
En un formulario "ancestro" inserte dos Querys (QCabecera y QDetalle) los datasources correspondientes y dos componentes UpdateSQL, todos los componentes del BDE.
DSDetalle.Dataset:=QDetalle;
QDetalle.Datasource:=DSCabecera;
DSCabecera.Dataset:=QCabecera;
Para grabar utilizo este codigo
Código Delphi
[-]
procedure TFormCabDet.BitBtnGuardarClick(Sender: TObject);
begin
try
QCabecera.Post;
QDetalle.DataSource := nil;
DM.DB.ApplyUpdates([QCabecera,QDetalle]);
except
on E:Exception do
begin
ShowMessage(E.ClassName + ' - ' + E.Message);
QCabecera.Edit;
QDetalle.DataSource := DSCabecera;
exit;
end;
end;
end;
Y luego heredo el formulario.
La base de datos es Interbase 6.5.