Delphi 2010,连接到mySQL和Firebird数据库,无需lib-dlls



我正在编写一个可移植的应用程序,它连接到firebird数据库和mysql数据库。我正在Delphi2010中编写应用程序,并使用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的组件,但它们也需要付款,找到另一个免费选项将是理想的。

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

因此,您不需要将.dll与.exe一起复制,如果.dll已经可用,您的应用程序将使用它们。.exe文件夹不会被库文件"污染",您的软件可能仍然是自安装的:如果您在另一台计算机中复制.exe,则其中仍然有.dll,可以安装在隐藏的本地文件夹中。

例如,我们的SynProject工具就是这样使用Hunspell库进行拼写检查的。请参阅此SO答案。

相关内容

  • 没有找到相关文章

最新更新