Frédéric 0 Posted May 28 Hello, I'm using a SQLite (aes-128) encrypted database. If I compile the application in 32bit then it works correctly and the database can be opened. The same application + same database compiled in 64bit generates an AV in FireDACSQliteDriver290.bpl (Read of FFFFFFFFFFFF...). The database can be opened in the IDE 32bit but same error if I try to open it in the 64bit IDE. 'Engine linkage' is set as slFDEStatic and I have only FireDAC.Phys.SQLiteWrapper.FDEStat unit in the uses. Note: the same non encrypted database can be opened in the 64bit IDE but I have the same problem when starting the application. Is this something known ? Thanks !!! Share this post Link to post
Brian Evans 124 Posted May 28 What version of SQLite are you trying to use under 64-bit? SQLite dropped support for the method FireDAC was using to provide encryption. Read : https://docwiki.embarcadero.com/RADStudio/Athens/en/What's_New#FireDAC_SQLite_Version_Update Share this post Link to post
Uwe Raabe 2160 Posted May 28 According to the unit mentioned, the libraries named sqlite3_fde_x64.obj/sqlite3_fde_x86.obj are used. They come with Delphi and are located in subfolders of $(BDSLIB). Share this post Link to post
Frédéric 0 Posted May 30 Yes, the sqlite3_fde_x64.obj should be used in this case. Again it works in 32bits but not 64 (with exact same database of course). Theorically it's way 3 that I use. But as it happens also directly in the 64bit IDE I suspect a bug in the embarcadero libraries ? Has someone used succesfully the same cases ? Share this post Link to post
Uwe Raabe 2160 Posted May 30 If you can reproduce with a small sample database I suggest to file a bug report at https://qp.embarcadero.com/ Share this post Link to post
Frédéric 0 Posted June 2 I've recompiled my encryption tool also with Delphi 12.3 and also in 64bit. Now it works ! At the moment not sure if my encryption tool (Really nohing special, simply using TFDSQLiteSecurity to make the encryption) was simply outdated or we need to do a bitness wise encryption to make it work. This would mean we cannot share the same database between the same 32 and 64 application. Seems weird... I will be able to do more tests regarding this in the next few days... Thanks ! Share this post Link to post
Frédéric 0 Posted June 2 Sorry, wrong information, I've checked it with the 32bit version, problem remain the same with the 64bit version. This gives an answer if the encryption method should also be separated between 32 and 64bits. I will make a sample to be able to report the problem to embarcadero. Share this post Link to post
master roshi 0 Posted 12 hours ago I’ve run into something similar before 32-bit works fine, but 64-bit throws access violations when using encrypted SQLite. Double-check if the correct 64-bit SQLCipher DLL is in place and being loaded properly. Share this post Link to post