Изменился ли 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 ответ

Решение

Да, изменилось - см.

http://docwiki.embarcadero.com/RADStudio/Sydney/en/New_features_and_customer_reported_issues_fixed_in_RAD_Studio_10.4

Для SQLite FireDAC добавляет возможность выбирать статическое и динамическое связывание движка SQLite. Чтобы использовать статическую привязку движка SQLite, необходимо добавить модуль FireDAC.Phys.SQLiteWrapper.Stat в раздел uses одного из модулей вашего проекта. В противном случае будет выбрано динамическое связывание. Появилось новое свойство TFDPhysSQLiteDriverLink.EngineLinkage. Если значение равно slDefault или slStatic, то модуль FireDAC.Phys.SQLiteWrapper.Stat будет добавлен во время разработки к модулю, на котором размещен компонент. Если приложение определяет соединение во время выполнения, то модуль "FireDAC.Phys.SQLiteWrapper.Stat" необходимо добавить вручную.

Другие вопросы по тегам