anchor.diff:  
     LIndex: Integer;
     LValue: string;
  +
  +  LCustomProvider: TContextValueProviderProc;
   begin
     Result := TValue.Empty;
     LNameTokens := AName.Split([PARAM_AND_MACRO_DELIMITER]);
  
positive.code:       const ASliceName: string = ''): TArray<string>;
      class procedure CloseConnectionDefs(const AConnectionDefNames: TArray<string>);
      class function CreateConnectionByDefName(const AConnectionDefName: string): TFDConnection;
    end;
  
    function MacroDataTypeToFieldType(const AMacroDataType: TFDMacroDataType): TFieldType;
  
negative.code:   else if SameText(LSubject, 'URL') then
      Result := ReadPropertyValue(ActivationRecord.URL, LIdentifier)
    else if SameText(LSubject, 'URLPrototype') then
      Result := ReadPropertyValue(ActivationRecord.URLPrototype, LIdentifier)
    else // last chance, custom injection
      for LCustomProvider in FContextValueProviders do
        LCustomProvider(ActivationRecord, AName, ADesiredType, Result);
  end;
  
  procedure TMARSFireDAC.InjectParamAndMacroValues(const ACommand: TFDCustomCommand);
  