Ver Mensaje Individual
  #3  
Antiguo 03-04-2008
Avatar de axesys
axesys axesys is offline
Miembro
 
Registrado: ene 2007
Ubicación: Los Mochis Sinaloa
Posts: 208
Reputación: 18
axesys Va por buen camino
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;

Última edición por axesys fecha: 03-04-2008 a las 19:13:52. Razón: Me faltaron las etiquetas
Responder Con Cita