Library Path Configuration
The RAD Studio 11.2 installation has an error in the configuration of the library path. Due to this configuration problem, linking with runtime packages fails, as reported in Quality Portal as RSP-39031 (Win64 build with runtime packages can't find Win64 DCP files).
To address the issue you canalternatively:
- Install the .reg file included in the patch download. We recommend you to follow this step only if you have a fresh install with no migrated settings and no third party component installed.
- Use the IDE Tools Options dialog, select Language - Delphi - Library page and there the Windows 64-bit platform. Replace $(BDSCOMMONDIR)\Dcp with $(BDSCOMMONDIR)\Dcp\$(Platform)
- Open the Windows Registry Editor application (regedit), and make the following changes:
- In the key HKCU\SOFTWARE\Embarcadero\BDS\22.0\Library\Win64 change the "Search Path" value to "$(BDSLIB)\\$(Platform)\\release;$(BDSUSERDIR)\\Imports\\$(Platform);$(BDSUSERDIR)\\Imports\\$(Platform);$(BDS)\\Imports;$(BDSCOMMONDIR)\\Dcp\\$(Platform);$(BDS)\\include"
- In the key HKLM\SOFTWARE\WOW6432Node\Embarcadero\BDS\22.0\Library\Win64 change the "Search Path" value to "$(BDSLIB)\\$(Platform)\\release;$(BDSUSERDIR)\\Imports\\$(Platform);$(BDSUSERDIR)\\Imports\\$(Platform);$(BDS)\\Imports;$(BDSCOMMONDIR)\\Dcp\\$(Platform);$(BDS)\\include"
Le zeos a 32 bit funzionano correttamente, mentre se imposto a 64 bit, collego la dll corretta per il 64bit, setto la property 'Connected' a true ottengo l'errore come in foto.
Le zeos a 32 bit funzionano correttamente, mentre se imposto a 64 bit, collego la dll corretta per il 64bit, setto la property 'Connected' a true ottengo l'errore come in foto.
Non sò se lo stai facendo da Design, ma visto che riporti il log sono convinto di si .... Delphi è un 32 bit a differenza di Lazarus che è una applicazione a 64 bit (in realtà ci sono le versione a 32 e 64 per Lazarus)
Quindi, quando usi le proprietà a design time (come nel caso delle 'anteprime' dei database) fai attenzione che deve essere tutto a 32 bit. E' per questo che viene consigliato di caricare le appropriate DLL nelle directory di sistema (System32 x dll a 64 bit e SysWow64 x dll a 32 bit). In alternativa devono essere a designtime settate le dll a 32 bit ("driver" della connessione) anche se è configurato l'ambiente a 64 bit come eseguibile finale.
A RunTime è necessario poi cambiare il puntamento alle dl corrette, solo se le DLL non sono nella collocate path di sistema.
Il tutto non è complesso, è più difficile a dirsi che a farsi.
Ciao
Non mi ero accorto ma effettivamente l'ide di Delphi è a 32 bit; si stavo connettendomi con la TConnection in design time a 64 bit, comunque sia all'interno della directory del progetto tengo 2 dir distinte una per le dll a 32 e una per quelle a 64 e a seconda dell'eseguibile che compilo setto la LibraryLocation; cioe in Lazarus faccio cosi ma visto che uso le stesse Zeos sarà uguale...
... Embarcadero permettendo.
postgresql://127.0.0.1:5432/mio_database?username=postgres;password=segreto;LibLocation=C:\MioProgramma\Lib\postgres\x64\libpq.dll
ciao superc
quando sviluppo sotto Win, io ho preso l'abitudine di includere le DLL nella cartella del programma
poi specifico nella stringa di connessione la LibLocation
in questo modo so esattamente quale lib uso e non devo preoccuparmi di cosa c'è installato in Win
esempio:Codice: [Seleziona]postgresql://127.0.0.1:5432/mio_database?username=postgres;password=segreto;LibLocation=C:\MioProgramma\Lib\postgres\x64\libpq.dll
Per quanto riguarda lo sviluppo 32/64 bit, con Lazarus - visto che c'è la possibilità - ti consiglio di installare 2 Lazarus diversi: uno a 32bit e l'altro a 64.
So che c'è il cross compiler ma in questo modo puoi lavorare a design-time e fare debug in run-time in modo veloce e certo con i giusti bit.
Ciao
nomorelogic
ho fatto una controprova, scaricando dal sito di sqlite le dll precompilate a 32bit e a 64 bit, mi sono collegato conm il db prima con la dll a 32 bit e tutto è andato bene mentre a 64 bit ottengo lo stesso errore della foto allegata; se tanto mi da tanto ho sbagliato qualcosa nell'installazione a 64 bit.
Comunque il link che parla di questo problema è
https://blogs.embarcadero.com/rad-studio-11-2-alexandria-patch-1-available/ (https://blogs.embarcadero.com/rad-studio-11-2-alexandria-patch-1-available/)
magari può servire a qualcuno.