FireDac 错误 314 - 但 DLL 位于程序目录中
FireDac error 314 - but DLLs are in program directory
我在尝试访问 MySql 数据库时得到:
[FireDac][Phys][MySQL]-314. Cannot load vendor library [libmysql.dll
or libmysqlld.dll]
以前使用此(未更改的)代码不会发生这种情况,但是,我已经升级到 Windows 10 并且不得不重新安装 Delphi XE8,所以这显然是系统配置问题。
为了尝试解决问题,我将这两个文件复制到 c:\windows\sysytem32。
当这似乎不起作用时,我将它们复制到 \win32\debug,这是生成的 .EXE 所在的位置。
我想我正在做一些相当愚蠢的事情,但看不到什么。
正确的解决方案是将驱动程序文件(例如,libmysql.dll
)放在应用程序的文件夹中,或者将安装位置放在 FDDrivers.ini
文件中:
[MySQL]
Vendor=<folder>\libmysql.dll
(最新版本的文档似乎在 INI 文件中使用 VendorLib 而不是 Vendor。)
有关详细信息,请参阅 RAD Studio 文档主题Configuring Drivers (FireDAC) and Connect to MySQL Server (FireDAC)。
让我分两点回答。
- 开发中,实时数据库连接!
希望您的数据模块上有一个 "TFDPhysMySQLDriverLink" 组件。
单击此组件并浏览您的 LibMySQL.DLL 到 VendorLib。应该是工作。但仅限于设计时。
- 运行时。希望您的 DM 首先在您的项目中创建。
在 DM 的 OnCreate 事件中,你必须断开你的库(我总是 运行 我的项目没有数据库连接)并将你的 "TFDPhysMySQLDriverLink" 的 Vendorlib 替换为 LibMySQL.DLL(这是复制你的 which复制到生成的 .EXE 所在的位置)
祝你有愉快的一天!
我在尝试访问 MySql 数据库时得到:
[FireDac][Phys][MySQL]-314. Cannot load vendor library [libmysql.dll or libmysqlld.dll]
以前使用此(未更改的)代码不会发生这种情况,但是,我已经升级到 Windows 10 并且不得不重新安装 Delphi XE8,所以这显然是系统配置问题。
为了尝试解决问题,我将这两个文件复制到 c:\windows\sysytem32。
当这似乎不起作用时,我将它们复制到 \win32\debug,这是生成的 .EXE 所在的位置。
我想我正在做一些相当愚蠢的事情,但看不到什么。
正确的解决方案是将驱动程序文件(例如,libmysql.dll
)放在应用程序的文件夹中,或者将安装位置放在 FDDrivers.ini
文件中:
[MySQL]
Vendor=<folder>\libmysql.dll
(最新版本的文档似乎在 INI 文件中使用 VendorLib 而不是 Vendor。)
有关详细信息,请参阅 RAD Studio 文档主题Configuring Drivers (FireDAC) and Connect to MySQL Server (FireDAC)。
让我分两点回答。
- 开发中,实时数据库连接! 希望您的数据模块上有一个 "TFDPhysMySQLDriverLink" 组件。 单击此组件并浏览您的 LibMySQL.DLL 到 VendorLib。应该是工作。但仅限于设计时。
- 运行时。希望您的 DM 首先在您的项目中创建。 在 DM 的 OnCreate 事件中,你必须断开你的库(我总是 运行 我的项目没有数据库连接)并将你的 "TFDPhysMySQLDriverLink" 的 Vendorlib 替换为 LibMySQL.DLL(这是复制你的 which复制到生成的 .EXE 所在的位置)
祝你有愉快的一天!