Delphi 2010,无需lib dll即可连接到mySQL和Firebird数据库

时间:2013-02-08 19:50:56

标签: mysql delphi-2010 firebird delphi

我正在编写一个连接到firebird数据库和mysql数据库的可移植应用程序。我在Delphi 2010中编写应用程序,并使用dbExpress组件连接到两个数据库。 SQLconnection组件使用dbxmys.dll和libmysql.dll作为mysql数据库,使用dbxfb.dll和fbclient.dll作为firebird数据库。

在我的开发计算机上,我不得不将dll文件移动到/ windows / system /。我认为这是因为系统路径,以便找到正确的文件和连接。我在另一台客户端计算机上尝试过此操作,但由于找不到dll文件,因此软件无法连接。因为这是一个可移植的应用程序,所以我不想包含应用程序目录的子目录以包含dll文件,但是我不认为客户端计算机可以运行应用程序而不安装mySQL和Firebird并且路径设置正确。

有更好的方法吗?我已经着手制作一个子目录并强制我的应用程序查看,(因为firebird和mySQL可以安装在任何地方),如果它们被包括在内,我肯定知道他们是在我的应用程序启动的任何计算机上。但我真的不想采取这种方法。

就直接数据库连接或解决dll需求问题而言,我有哪些选择,我不是一位经验丰富的软件开发人员。提前谢谢。

更新: DLL现在与exe在同一目录中,应用程序启动正常。我仍然不想使用任何dll。我发现一些不需要dll的组件,但它们也需要付费,找到另一个免费选项是理想的。

1 个答案:

答案 0 :(得分:1)

您可以做的是将.dll作为压缩资源存储在主.exe中,然后在本地文件夹(例如本地"应用程序数据")中展开它们,并从那里执行库。因此,您不需要将文件放在系统路径中(可能具有管理员权限),也不需要更改路径本身。

因此,您无需使用.exe复制.dll,如果.dll已经可用,您的应用程序将使用它们。 .exe文件夹不会被污染"通过库文件,您的软件仍然可以自行安装:如果您在另一台计算机上复制.exe,您仍然可以使用.dll,准备安装在隐藏的本地文件夹中。

这就是我们的SynProject tool如何使用Hunspell库进行拼写检查。请参阅this SO answer