FireDac错误314 - 但DLL在程序目录中

时间:2015-08-19 17:53:20

标签: mysql delphi delphi-xe windows-10 firedac

我在尝试访问MySql数据库时遇到了:

  

[FireDac] [物理学] [MySQL的] -314。无法加载供应商库[libmysql.dll   或libmysqlld.dll]

以前没有用这个(未更改的)代码发生这种情况,但是,我已经升级到Windows 10并且不得不重新安装Delphi XE8,所以它显然是一个系统配置问题。

为了尝试解决问题,我将这两个文件复制到c:\ windows \ sysytem32。

当这似乎不起作用时,我将它们复制到\ win32 \ debug,这是生成的.EXE所在的位置。

我想我正在做一些相当愚蠢的事情,但看不出是什么。

2 个答案:

答案 0 :(得分:3)

正确的解决方案是将驱动程序文件(例如,libmysql.dll)放入应用程序的文件夹中,或将安装位置放在FDDrivers.ini文件中:

[MySQL]
Vendor=<folder>\libmysql.dll

(文档的最新版本似乎在INI文件中使用 VendorLib 而不是供应商。)

有关详细信息,请参阅RAD Studio文档主题Configuring Drivers (FireDAC)Connect to MySQL Server (FireDAC)

答案 1 :(得分:1)

让我回答两点。

  1. 开发,实时数据库连接! 希望你的数据模块上有一个&#34; TFDPhysMySQLDriverLink&#34;零件。 单击此组件并将LibMySQL.DLL浏览到VendorLib。应该工作。但仅限于设计时间。
  2. 运行。希望您的DM首先在您的项目中创建。 在DM的OnCreate事件中,您必须断开库(我总是在没有数据库连接的情况下运行我的项目)并将&#34; TFDPhysMySQLDriverLink&#34;的Vendorlib替换为LibMySQL.DLL(其中复制您复制的生成的.EXE所在的位置
  3. 度过美好的一天!