The next version of Delphi will be released soon – and there’s again the question if SAP will support ADS for the upcoming version. Personally I wouldn’t bet on it.
But it’s quite easy to get the packages compiled by yourself. I’ve described the steps to get ADS into Delphi 10.1 Berlin here. The same does apply for Delphi 10.2. Tokyo. You just need to use an additional definition in versions.inc. Tokyo release has compiler version 320:

{$IFDEF VER300}
   {$DEFINE ADSDELPHI10SEATTLE}
{$ENDIF}

{$IFDEF VER310}
   {$DEFINE ADSDELPHIBERLIN}
{$ENDIF}

{$IFDEF VER320}
   {$DEFINE ADSDELPHITOKYO}
{$ENDIF}

And a couple of lines down, mark this version as being supported.

{$DEFINE ADSDELPHI10SEATTLE_OR_NEWER}
{$IFNDEF ADSDELPHI10SEATTLE}
  {$DEFINE ADSDELPHIBERLIN_OR_NEWER}
  {$IFNDEF ADSDELPHIBERLIN}
    {$DEFINE ADSDELPHITOKYO_OR_NEWER}
    {$IFNDEF ADSDELPHITOKYO}
This version of Delphi/C++Builder is not yet supported!
    {$ENDIF}
  {$ENDIF}
{$ENDIF}

These modifications are sufficient. Just compile and install – and you’ll be able to compile ADS based Windows applications with Delphi 10.2 Tokyo.
But what about Linux? Well, in theory this should work aswell. But there are a lot of modifications required to get it running. I’ve started to translate ace.pas (as the basic interface into the Advantage Client Engine) to work under Linux and got it running for some basic API calls (see this blog post). But when trying to compile ADS TDataset packages, a lot of errors have been thrown. The components use a lot of Windows specific functionality that simply don’t compile under the nextgen compiler (e.g. lots of ANSI calls). So finally I gave up.
I strongly recommend to use the Delphi FireDAC components instead. They may have limited functionality compared with SAP’s ADS components, but at least they’re supported under recent and upcoming Delphi IDEs.

ADS and Delphi 10.2 Tokyo
Markiert in:             

12 Gedanken zu „ADS and Delphi 10.2 Tokyo

  • 27. Oktober 2017 um 18:03
    Permalink

    Trying Delphi 10.2.1 Tokyo and came across an interesting bug, a simple statement that returns a null value such as:

    Select Cast(Null AS SQL_MONEY) Value From System.iota;

    Returns a value of: -922337203685477.58, instead of Null

    (Test by attaching a DBGrid to DataSOirce to AdsQuery)

    Did same test with FDQuery (FireDac) using ADS driver, and it works properly.

    Antworten
  • 13. November 2017 um 8:56
    Permalink

    Hallo Herr Dürr,
    bei der Komponenteninstallation für Tokyo 10.2 gehe ich nach Ihrer exakten Anleitung ( für 10.1 ) vor und komme bis zur eigentlichen Installation. Dort scheitere ich, wie auch im Blog zu 10.1 beschrieben, an der Meldung „Package … kann nicht geladen werden. Das angegebene Modul wurde nicht gefunden.“ Wie komme ich hier weiter?
    Danke im Voraus und Grüße aus dem Taunus
    Wieland Scholz

    Antworten
    • 13. November 2017 um 9:25
      Permalink

      hört sich entweder nach der falschen Reihenfolge (zuerst das Runtime Package, dann das Design-Time Package), nach falscher Abhängigkeit (im Designtime-Package mal prüfen, ob das richtige unter REQUIRED steht und nicht evtl ein altes) oder fehlenden Rechten an (IDE nicht als Admin gestartet).

      Antworten
  • 13. November 2017 um 9:39
    Permalink

    Hallo Herr Dürr,
    ich starte BDS.exe als Admin, dann erzeuge ich C:\Program Files (x86)\Advantage 12.0\TDataset\DelphiXE102Tokyo\Win32\Source\adsdxe102tokyostudio.dproj, wobei bei DCP- und BPL-Ausgabepfad „.\“ eingetragen wurde. Das BPL ict im angegebenen Verzeichnis danach vorhanden. Dann erzeuge ich adsdxe102tokyodstudio, wobei im REQUIRED das File adsdxe102tokyodstudio.dcp eingetragen ist. Auch dieses BPL wird erzeugt und ist dann in C:\Program Files (x86)\Advantage 12.0\TDataset\DelphiXE102Tokyo\Win32\Source vorhanden. Trotzdem kommt beim Installieren die geannte Meldung. Auch wenn ich über den Menüpunkt „Package installieren“ gehe , passiert dies.
    Viele Grüße
    Wieland Scholz

    Antworten
    • 13. November 2017 um 10:08
      Permalink

      Als required sollte das Runtime package drinstehen, nicht das Designtime package.

      Antworten
  • 13. November 2017 um 10:11
    Permalink

    Da habe ich wohl etwas übersehen, danke!
    Viele Grüße
    Wieland Scholz

    Antworten
  • 24. November 2018 um 13:35
    Permalink

    Until we have something official.

    to run on Delphi 10.3 River

    Follow the roadmap for Delphi Tokyo and
    {$IFDEF VER330}
    {$DEFINE ADSDELPHITOKYO}
    {$ENDIF}

    Antworten
    • 5. Dezember 2018 um 15:36
      Permalink

      sorry – didn’t get a notification, so the reply is delayed. I’ll post the steps for Rio ASAP.

      Antworten
  • Pingback:ADS and Delphi 10.3 Rio – Joachim Dürr softwareengineering

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.