Изменился ли FireDac SQLite в Delphi 10.4?
В моем проекте Delphi никогда не использовался фактический sqlite3.dll, а использовалась встроенная библиотека.
Я перекомпилировал проект с 10.4 и отправил его тестерам, которые видят эту ошибку:
Исключение EFDException в модуле ChessOpeningsWizardProfessional2016.exe по адресу 007C6FDC. [FireDAC][Phys][SQLite]-314. Не удается загрузить библиотеку поставщика [sqlite3.dll или libdb_sql51.dll]. Указанный модуль не найден Подсказка: убедитесь, что он находится в каталогах PATH или EXE приложения и имеет разрядность x86.
Он отлично работает на моей машине без Dll.
Что-то изменилось в FireDac относительно Sqlite3 в Delphi 10.4 Sydney?
1 ответ
Да, изменилось - см.
Для SQLite FireDAC добавляет возможность выбирать статическое и динамическое связывание движка SQLite. Чтобы использовать статическую привязку движка SQLite, необходимо добавить модуль FireDAC.Phys.SQLiteWrapper.Stat в раздел uses одного из модулей вашего проекта. В противном случае будет выбрано динамическое связывание. Появилось новое свойство TFDPhysSQLiteDriverLink.EngineLinkage. Если значение равно slDefault или slStatic, то модуль FireDAC.Phys.SQLiteWrapper.Stat будет добавлен во время разработки к модулю, на котором размещен компонент. Если приложение определяет соединение во время выполнения, то модуль "FireDAC.Phys.SQLiteWrapper.Stat" необходимо добавить вручную.