ok aqui esta el metodo AppyUpdates modificado
function TCustomClientDataSet.ApplyUpdates(MaxErrors: Integer): Integer;
varRootDataset: TCustomClientDataset;
Aux:OleVariant;
begin CheckBrowseMode;
RootDataset := Self;
while RootDataset.FParentDataSet <> nil do RootDataset := RootDataset.FParentDataset;
with RootDataset do
if ChangeCount = 0 then
Result := 0 else
begin
Aux:=DoApplyUpdates(Delta, MaxErrors, Result);
if not VarIsNull(Aux) then
Reconcile(Aux);
end;
end;