Muchas gracias era lo que necesitaba.
Cita:
Empezado por axesys
Yo lo hago por medio de esta función en el datamodulo a la que le envío como parametro el form
Código Delphi [-]procedure TDM.Guardar(frmForma: TForm);
var i: integer; iTamanioArreglo: Integer; dsArreglo: array of TDataSource;
begin iTamanioArreglo := 0; for i:= 0 to Pred(frmForma.ComponentCount) do if frmForma.Components[i] is TDataSource then begin Inc(iTamanioArreglo); SetLength(dsArreglo, iTamanioArreglo); dsArreglo[Pred(iTamanioArreglo)] := TDataSource(frmForma.Components[i]); end;
with TransaccionEscritura do try if not InTransaction then StartTransaction; for i := 0 to High(dsArreglo) do dsArreglo[i].DataSet.Post; CommitRetaining; except RollbackRetaining; raise end;
end;
En mi form al momento de llamar el action que guarda ejecuto
Código Delphi [-]procedure TfrmModulo.actGuardarExecute(Sender: TObject);
begin DM.Guardar(Self) end;
|