anchor.diff:    TmDatabaseConnectionsTandem = class
     strict private
       FOwnedConnection : TmDatabaseConnection;
  +    FAncestorConnection : TmDatabaseConnection;
       FSharedConnection : TmDatabaseConnection;
       FConnectionInfo : TmDatabaseConnectionInfo;
       procedure SetSharedConnection (aConnection : TmDatabaseConnection);
  
positive.code: { TmDatabaseConnectionsTandem }
  
  constructor TmDatabaseConnectionsTandem.Create(const aConnectionInfo: TmDatabaseConnectionInfo; aSharedTransaction : TmDataManagerTransaction);
  begin
    FOwnedConnection := nil;
    FSharedConnection := nil;
  
    FConnectionInfo := aConnectionInfo;
    if Assigned(aSharedTransaction) then
  
negative.code:   end;
  end;
  
  function TmDatabaseConnection.FindAncestorConnection(const aConnectionInfo: TmDatabaseConnectionInfo): TmDatabaseConnection;
  var
    currentAncestor : TmDatabaseConnection;
  begin
    Result := nil;
    currentAncestor := Self.FAncestor;
    while Assigned(currentAncestor) do
    begin
      if currentAncestor.ConnectionInfo.IsEqual(aConnectionInfo) then
      begin
        Result := currentAncestor;
        exit;
      end
      else
        currentAncestor := currentAncestor.FAncestor;
    end;
  end;
  
  constructor TmDatabaseConnection.Create;
  begin
    FImplementation := nil;
    FOwnsConnectionInfo:= false;
    FCached:= false;
    FLocked:= false;
    FAncestor := nil;
  end;
  
  constructor TmDatabaseConnection.Create(aConnectionInfo: TmDatabaseConnectionInfo; const aOwnsConnectionInfo: boolean);
  