Uncaught exception with 'DB connection error' on line 18

Delphi RIO – TJSONArrayEnumerator nicht mehr definiert

TJSONArrayEnumerator ist nicht mehr in Delphi RIO definiert. In Delphi Tokyo war es keine Problem. Die Kontext-Hilfe für TJSONArrayEnumerator läßt sich in Rio aufrufen, aber was dort steht ist falsch. Erst die Suche im Quellcode „System.JSON“ gab Aufschluß.

Statt TJSONArrayEnumerator ist in Rio TJSONArray.TEnumerator defniert. Mit einer bedingten Kompilierung kann man mit beiden Delphi Versionen wieder kompilieren.

{$IFDEF VER330}  // Rio
  AJSONArrayIterator : TJSONArray.TEnumerator ;
{$ENDIF}
{$IFDEF VER320}   // Tokyo
  AJSONArrayIterator : TJSONArrayEnumerator ;
{$ENDIF}
......
{$IFDEF VER330}  // Rio
    AJSONArrayIterator := TJSONArray.TEnumerator.Create(AJSONValue as TJSONArray) ;
{$ENDIF}
{$IFDEF VER320}   // Tokyo
    AJSONArrayIterator := TJSONArrayEnumerator.Create(AJSONValue as TJSONArray) ;
{$ENDIF}
    while AJSONArrayIterator.MoveNext do begin

Das war’s…