anchor.diff:      Self.ChangeToBlankIfNull;
   end;
   
  -function TNullableStringRecord.CheckIfDifferentAndAssign(const aValue: Variant): boolean;
  -begin
  -  if VarIsNull(aValue) then
  -  begin
  -    Result := not IsNull;
  -    CreateAsNull;
  -  end
  -  else
  -  begin
  -    if Self.IsNull then
  -      Result := true
  -    else
  -      Result := aValue <> Value;
  -    if Result then
  -      CreateWithValue(aValue);
  -  end;
  -end;
   
   function TNullableStringRecord.AsVariant: Variant;
   begin
  
positive.code: 
  { TNullableDoubleRecord }
  
  procedure TNullableDoubleRecord.CreateAsNull;
  begin
    IsNull:= true;
    Value:= 0;
  end;
  
  procedure TNullableDoubleRecord.CreateWithValue(const aValue: Double);
  begin
    IsNull:= false;
    Value:= aValue;
  
negative.code: 
      function CheckIfDifferentAndAssign(const aValue : Variant) : boolean; override;
      function AsVariant: Variant; override;
      function AsString: String; override;
      function AsBoolean: Boolean;
  
      class function StringToVariant(const aValue: String): Variant;
      class function VariantToString(const aValue: Variant): String;
  