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.
Please give the files
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.
I’d suggest to contact SAP and report the bug.
edit: found the bug and fixed it https://www.jd-engineering.de/advantage-returning-wrong-value-on-null-in-delphi-tokyo/
Thanks, fix works.
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
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).
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
Als required sollte das Runtime package drinstehen, nicht das Designtime package.
Da habe ich wohl etwas übersehen, danke!
Viele Grüße
Wieland Scholz
Until we have something official.
to run on Delphi 10.3 River
Follow the roadmap for Delphi Tokyo and
{$IFDEF VER330}
{$DEFINE ADSDELPHITOKYO}
{$ENDIF}
sorry – didn’t get a notification, so the reply is delayed. I’ll post the steps for Rio ASAP.
Pingback:ADS and Delphi 10.3 Rio – Joachim Dürr softwareengineering