anchor.diff:      constructor Create;
       destructor Destroy; override;
   
  -    procedure AddValue(const aFieldName: String; const aValue: TAbstractNullable; const aSkipIfNull: boolean);
  +    procedure AddValue(const aFieldName: String; const aValue: TAbstractNullable; const aSkipIfNull: boolean; const aMaxLength : integer = 0);
       procedure AddJson(const aJsonString : String);
       function GetJson : String;
     end;
  
positive.code:     class function VariantToString(const aValue: Variant): String;
  
      function AsString : String; override;
      function AsJson(const aFieldName : String; const aSkipIfNull: boolean): String; override;
  
      property Value : TDateTime read GetValue write SetValue;
    end;
  
negative.code:   SetTagChanged(false);
  end;
  
  function TAbstractNullable.AsJson(const aFieldName: String; const aSkipIfNull: boolean; const aMaxLength: integer = 0): String;
  var
    tmp : String;
  begin
    if Self.IsNull and aSkipIfNull then
      Result := ''
    else
    begin
      tmp := Self.AsString;
      if aMaxLength > 0 then
        tmp := Copy(tmp, 1, aMaxLength);
      Result := '"' + aFieldName + '":"' + tmp + '"';
    end;
  end;
  
  end.
  