Ver Mensaje Individual
  #3  
Antiguo 26-01-2015
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.806
Reputación: 22
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Por otro lado, no dices en qué línea tienes el error. Ese es el código que interesa. No creo que sea ninguna de las líneas que mencionas en tu post.
Supongo que es un poco mas tarde en el código, en donde tratas de hacer algo en el detalle (insert/update/delete) y el DataSet está cerrado.
Normalmente, no sería necesario utilizar transacciones ya que esa "cadena de conexiones" se encarga de todo.
Básicamente haces los cambios que quieras en los datos y luego le dices ApplyUpdates(0);

Código Delphi [-]
// Abro el detalle al abrir el maestro
procedure TDMClase.CDSMaestroAfterOpen(DataSet: TDataSet);
begin
   CDSDetalle.Open;
end;

// Cierro el detalle si cierro el maestro
procedure TDMClase.CDSMaestroBeforeClose(DataSet: TDataSet);
begin
   CDSDetalle.Close;
end;

// Aplico cambio después de hacer un Post
procedure TDMClase.CDSMaestroAfterPost(DataSet: TDataSet);
begin
   TClientDataSet(DataSet).ApplyUpdates(0);
end;

procedure TDMClase.CDSDetalleAfterPost(DataSet: TDataSet);
begin
   TClientDataSet(DataSet).ApplyUpdates(0);
end;

// Aplico cambios después de hacer un borrado de registro
procedure TDMConsultaLotes.CDSMaestroAfterDelete(DataSet: TDataSet);
begin
   TClientDataSet(DataSet).ApplyUpdates(0);
end;

procedure TDMConsultaLotes.CDSDetalleAfterDelete(DataSet: TDataSet);
begin
   TClientDataSet(DataSet).ApplyUpdates(0);
end;
Responder Con Cita