Delphi 2010,连接mySQL和Firebird数据库,无需lib DLL

Delphi 2010,连接mySQL和Firebird数据库,无需lib DLL,mysql,delphi-2010,firebird,delphi,Mysql,Delphi 2010,Firebird,Delphi,我正在编写一个连接firebird数据库和mysql数据库的可移植应用程序。我正在用Delphi2010编写应用程序,并使用dbExpress组件连接到这两个数据库。SQLconnection组件对mysql数据库使用dbxmys.dll和libmysql.dll,对firebird数据库使用dbxfb.dll和fbclient.dll 在我的开发计算机上,我必须将dll文件移动到/windows/system/。我认为这是因为系统路径,以便找到正确的文件并进行连接。我在另一台客户机上尝试了此操

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

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

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

至于直接数据库连接,或者解决dll需求问题,我的选择是什么?我不是一个有经验的软件开发人员。提前谢谢

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

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

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


例如,这就是我们如何使用拼写库进行拼写检查。请参阅。

共享库很好。我的一般偏好是将所有必需的.dll保存在与.exe相同的目录中。请确保任何第三方依赖项的许可-无论是源、dll还是任何其他媒体。不要认为它可以通过你的应用程序自由地再发行——一定要检查。IMHO…@paulsm2谢谢你关于许可证的提示,我应该很好地处理这个问题,因为这个应用程序不是出售的,而是供个人使用的。我将来会记住这一点。我想这就是我必须要做的:将它们保存在我的exe的home目录中,但我希望我不必这样做。再说一次,共享库很好。稍微复杂一点:更大的灵活性(以及最终的运行效率)。但是如果在“安装目录”和“\windows\system32”之间进行选择,我通常会选择“安装目录”。IMHO…您可以对Firebird的嵌入式版本执行相同的操作,Firebird设计为从一组dll和conf文件作为进程内数据库服务器运行。。。。MySQL的嵌入式版本也是如此!;)这是完美的,如果我理解正确!我目前正在查看您指示我访问的链接。我以前从未嵌入过资源文件,因为我还是一个新手,任何其他指向我正确方向的链接都将非常棒,再次感谢!