1

我的 Delphi 项目从未使用过实际的 sqlite3.dll,而是使用了嵌入式库。

我用 10.4 重新编译了项目并将其发送给看到此错误的测试人员:

007C6FDC 模块 ChessOpeningsWizardProfessional2016.exe 中的异常 EFDException。[FireDAC][物理][SQLite]-314。无法加载供应商库 [sqlite3.dll 或 libdb_sql51.dll]。找不到指定的模块 提示:检查它在 PATH 或应用程序 EXE 目录中,并且具有 x86 位。

它在我的机器上运行良好,没有任何 Dll。

关于 Delphi 10.4 Sydney 中的 Sqlite3,FireDac 中的某些内容是否发生了变化?

4

1 回答 1

6

是的,它确实发生了变化 - 请参阅:

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

对于 SQLite,FireDAC 增加了选择 SQLite 引擎的静态与动态链接的能力。要使用 SQLite 引擎的静态链接,需要将单元“FireDAC.Phys.SQLiteWrapper.Stat”添加到项目单元之一的使用子句中。否则将选择动态链接。有一个新属性 TFDPhysSQLiteDriverLink.EngineLinkage。当值为 slDefault 或 slStatic 时,“FireDAC.Phys.SQLiteWrapper.Stat”单元将在设计时添加到托管组件的单元中。如果应用程序在运行时定义连接,则必须手动添加“FireDAC.Phys.SQLiteWrapper.Stat”单元。

于 2020-08-10T00:48:09.153 回答