Value when using a Currency type is incorrect in a code first server

If I create a code first project and use a currency type with a standard bin message the value passed from the server is not what was set in the implementation file.

The same procedure in an rodl based server returns the expected value.

Any ideas what could be causing that?

Hi,

Are you using Delphi? is it correct?
can you create a simple testcase, that reproduces this case, pls?
you can attach it here or drop email to support@ if you want to keep it privately.

That is correct. Also using version .1463

I was using the Service Tester to test the app.

ROCodeFirstTest.zip (182.5 KB)

Thanks, logged as bugs://83750

Hi,

pls update uRORTTISupport.pas as

procedure TRORTTISerializerHelper.ReadValue(const aName: string;aObj : TRttiType; var aValue: TValue; ArrayElementId: integer; aCaller: TRttiObject);
var
  lCurrency: Currency; //added
..
      tkFloat: begin
..
         else if (aObj.Handle=TypeInfo(Currency)) then begin    // if block was added
           Read(aName, TypeInfo(Currency), lCurrency, ArrayElementId);
           aValue := TValue.From<Currency>(lCurrency);
         end
         else begin
..

procedure TRORTTISerializerHelper.WriteValue(const aName: string; aObj : TRttiType; const aValue: TValue; ArrayElementId: integer; aCaller: TRttiObject);
..
var
..
  lCurrency: Currency; //added
..
      tkFloat: begin
..
        else if (aObj.Handle=TypeInfo(Currency)) then begin  //if block was added
          lCurrency:= aValue.AsType<Currency>;
          Write(aName, TypeInfo(Currency), lCurrency, ArrayElementId);
        end
        else begin

this fix will be also in next public build

bugs://83750 got closed with status fixed.