Hola.
Cuando usas componentes
IBX en relación maestro-detalle con
CachedUpdates, debes desactivar la propiedad
DataSource del detalle al momento de aplicar las actualizaciones.
Eso se debe a que cuando el
DataSet aplica actualizaciones, envía un mensaje al
DataSource como que el cursor se ha reposicionado, haciendo que se cierre y reabra en la nueva posición. Consecuentemente, se pierde la referencia.
La solución es desactivar el DataSource al momento de aplicar actualizaciones y restaurarlo después. V.gr.:
Código Delphi
[-]
Detalle.DataSource := nil;
try
Maestro.ApplyUpdates;
Detalle.ApplyUpdates;
finally
Detalle.DataSource := DataSourceMaster;
end;
Otros enlaces que se ha tratado este tema:
Saludos