A new Delphi version (10.3 Rio) was released recently and again there’s no Advantage Database Server component kit available. So it’s time to do it again. As already described here and here, you just need to edit versions.inc.
The new compiler version is 330:
{$IFDEF VER330} {$DEFINE ADSDELPHIRIO} {$ENDIF} //... {$DEFINE ADSDELPHIRIO_OR_NEWER} {$IFNDEF ADSDELPHIRIO} This version of Delphi/C++Builder is not yet supported! {$ENDIF}
Make a copy of \program files (x86)\Advantage 12.0\TDataset\DelphiXE10.1, name it DelphiXE10.3. Then replace all occurences of version.inc of that folder with the edited one.
Launch Delphi/RadStudio as Administrator, open the runtime package, save it as adsdxe10RioStudio and build. Then open the design time package, save it as adsdxe10RioDStudio, remove adsdxe10TokyoStudio.dcp from the requires part and replace it with adsdxe10RioStudio.dcp. Build the project and install the components. That’s it!
Ich habs mir fast gedacht… so kann denn das tote Pferd noch eine Weile geritten werden.
I’ve tried this many times, everything is fine until the very last click on „Install“. I get a
dcc32 Error E2466 Never-build package ‚.adsdxe10Riodstudio‘ requires always-build package adsdxe10Riostudio‘
I’ve tried using a different folder, using the original projects without renaming them, and I also get this error when trying to install:
Can’t load package C:\Users\Public\Documents\Embarcadero\Studio\20.0\bpl\adsdxe10Riostudio.bpl. The Specified module could not be found.
That file does exist, with the time/date that is just a minute old. In my path I have
c:\Program Files\Embarcadero\Studio\20.0\bin
c:\Program Files\Embarcadero\Studio\20.0\bpl
c:\Program Files\Embarcadero\Studio\20.0\dcp
c:\Program files\Advantage 12.0\TDataSet\Rio\Win32
c:\Program files\Advantage 12.0\TDataSet\Rio\Win32\Source
Doug,
for the examples I changed the output directory to ./
I tried changing the DCP output directory to ./ and the package output to ./ I did this for both projects.
I get the same error but in the local folder
Can’t load package c:\Program files\Advantage 12.0\TDataSet\Rio\Win32\Source. The Specified module could not be found.
I really appreciate your help!!!
Did you copy the (correct) client engine DLLS to the Windows system (syswow64) folder?
My main PC has C++ Builder, so I cannot compile the Advantage source code. So I ZIPPED the files from the Delphi PC, the entire \Program Files\Advantage 12.0 folder, then unzipped onto my C++ Builder PC. I searched \Windows for all of the required DLL’s and the AdsAdditionalDesigners.dll and made sure there was 1 copy of each and that they were all version 12.0. The file aicu32.dll was installed in the ARC and SERVER folders, as well as REDISTRIBUTE folder and the file in REDISTRIBUTE was 64 bytes smaller than the other 2 files. I used the file in the REDISTRIBUTE folder. I then tried to „Install Packages“. It failed, saying it could not find a file. I copied the two .BPL files (adsdxe10RioStudio.bpl and adsdxe10RiodStudio.bpl) to \Program files (x86)\Embarcadero\Studio\20.0\bin. I then tried „Install Packages“, and browsed to the \Program files (x86)\Embarcadero\Studio\20.0\bin folder and installed adsdxe10RiodStudio.bpl successfully. I think the .BPL files need to be in the Windows PATH.
The reason I needed to install 12.0 was because after I installed Rio I have a table that has a MONEY field type shows a random value if the field is null. I thought my 11.10 Advantage installation was corrupt or had mismatched DLL’s since I have had so many versions of Advantage over the years. After installing 12.0 and building that project I have the same issue. A picture of the issue is here http://www.douglashay.com/tracks/advantage1.JPG
Ads running in Delphi 10.4
Add
$IFDEF VER340}
{$DEFINE ADSDELPHIRIO}
{$ENDIF}
you should use a different name…10.4 is Sydney, not Rio.
Funktioniert das mit der Delphi 10.3 Community Edit oder muss es eine Professional-Version sein?
community reicht.
Leider klappt das bei mir nicht. Ich habe ADS 12 installiert und die HDD-Struktur C:\Program Files (x86)\Advantage 12.0\TDataset\DelphiXE10.3\win32\Source. Source habe ich aus C:\Program Files (x86)\Advantage 12.0\TDataset\Source. Darin habe ich die versions.inc angepasst. In Delphi wird es nicht unter Komponente/Packages installieren angezeigt. Wie kann ich das Runtime-Packege öffnen?
Delphi als Admin gestartet? Muss evtl sein wg Program files
Ja, habe ich als Admin probiert, geht nicht.
Können Sie mir helfen, das Problem einzukreisen? Wie erkennt Delphi, dass ADS installiert ist?
an welchem Schritt genau gibt es einen Fehler?
Bei dem Versuch die Komponenten in Delphi einzubinden. Eigentlich müsste es doch nach erfolgreicher Installation bei Delphi unter „Komponente/Packages installieren“ angezeigt werden, wird es aber nicht.
also zusammengefasst:
– Runtime Package compilieren hat geklappt.
– Designtime Package compilieren hat geklappt.
– rechte Maustaste in der IDE auf das Designtime-Package und dann installieren klappt nicht?
Ich mache den Udemy-Kurs von André Schaberick und versuche mit Delphi 10.3 das ADS zu benutzen. Dort ist das Package-compilieren nicht beschrieben. Wie geht das?
echt jetzt? Das ist doch Schritt für Schritt im ersten verlinkten Beitrag hier beschrieben!
Das habe ich schon gelesen. Bei mir gibt es nicht die Datei Win32\sources\adsdxe8studio.dproj, bzw. keine dproj-Datei.
Dann folge bitte den Anweisungen aus dem Beitrag. Schritt für Schritt. Keine Abkürzungen. Keine Umwege. Genauso funktioniert es bei sehr vielen schon seit sehr langer Zeit.
Das habe ich gemacht. Bei mir gibt es die Dateien adsdxedstudio.dpk und adsdxestudio.dpk nicht.
Nein, hast Du nicht!
Wenn Du den Schritten gefolgt wärst, hättest Du die Dateien nicht in Program Files. Eine Installation erzeugt ausschließlich die Ordner von vorhandenen Delphi-Versionen. Du musst die Installation anhand diesem Beitrag [url]https://www.jd-engineering.de/using-ads-with-delphi-10-1-berlin/[/url] mit entsprechenden Parametern durchführen und dann an der angegebenen Stelle den Quellcode kopieren.
Ich habe die entsprechende Stell übersetzt und strukturiert;
Zitat Anfang:
1. Erstellen Sie in Programme(x86)\Advantage 12.0\TDataset eine Kopie der neuesten unterstützten Delphi-Version (Ordner Source?) und
benennen Sie ihn in Delphi101Berlin um.
2. Suchen Sie im Ordner Delphi101Berlin alle Kopien der Datei versions.inc (Win32, Win32\source, Win64, Win64\source) und
ersetzen Sie sie durch diese versions.inc (Sie müssen die Erweiterung .txt entfernen).
Starten Sie Delphi Berlin als Administrator,
3. öffnen Sie das Laufzeitprojekt Win32\sources\adsdxe8studio.dproj und
speichern Sie das Projekt als adsd101berlinstudio.dproj am gleichen Ort.
Zitat Ende.
1. ist mir nicht ganz verständlich. Bei mir gibt es den Ordner C:\Program Files (x86)\Advantage 12.0\TDataset\Source.
Diesen habe ich nach C:\Program Files (x86)\Advantage 12.0\TDataset\DelphiXE10.3\win32 kopiert,
sodass die Delphi-Dateien in C:\Program Files (x86)\Advantage 12.0\TDataset\DelphiXE10.3\win32\Source stehen.
Es gibt da aber keine dproj und dpk-Dateien.
in Schritt 1 hat man sehr viele Unterordner, zB Delphi2007, Delphi2009, Delphi2010, … dort nimmt man sich den aktuellsten (je nach verwendeter Installation DelphiXE8, DelphiXE10.1 o.ä.) und mach davon eine Kopie. Darunter gibt es dann die Package-Sourcen. Nur dann kann man auch Schritt 2 weiterführen – da wird explizit auf die Unterordner eingegangen (Win32, Win32/source, Win64, …), welche es in TDatase/Source nicht gibt.
ja, Source hat man auch direkt im TDataset Verzeichnis, aber davon schreibe ich nicht.
Hier noch ein Video dazu: https://www.youtube.com/watch?v=sy9RJiWFzaM ab ca 27:20min.
Mit dem Video habe ich es geschafft, vielen Dank.
Da es für den User ziemlich umfangreich ist, habe ich einen konstruktiven Vorschlag:
Es werden zwei Zip-Dateien zum Download angeboten. Eine für die aktuelle Community-Edition, die andere für die aktuelle kommerzielle Version. Die Zips enthalten vorbereitete Strukturen:
1. Das Verzeichnis Syswow, welches die Dateien aus C:\adsdelphi\files\System32 enthält. Die Landeskennung in adslocal.cfg kann auf GERMAN voreingestellt sein und ggf. vom User geändert werden. Diese Dateien muss der User nur noch nach C:\Windows\SysWOW64 kopieren, wie bei 34:00 beschrieben.
2. Das Verzeichnis Advantage 12.0 mit allen Unterverzeichnissen, welches der User nach C:\Program Files (x86) kopiert.
Nun kann der User die Installation unter Delphi vornehmen, ab 40:15 bis 44:10.
Das würde das Ganze aus User-Sicht deutlich einfacher gestalten.
ich pflege die Version in einem eigenen internen Git-Reposiory. Aber die Dateien zum Download anbieten oder das Repository öffentlich stellen ist eine Lizenz-Verletzung und ich habe weder übriges Geld noch die Lust, mich deshalb mit SAP zu streiten.
Hallo Chris,
ich habe das gleiche Problem. Wo finde ich das Video?
Gruß,
Marko
im vorletzten Kommentar verlinkt.
in
unit adsdata;
function TAdsDataSet.LocateRecord( const KeyFields: string;
const KeyValues: Variant;
Options: TLocateOptions ): Boolean;
memory leak
temp_poFields := TList.Create;
cure:
temp_poFields.Free; // Igor 25 04 2021 memody leak
end; { TAdsDataSet.LocateRecord }
thx.