如何在同一台计算机上部署使用Firebird嵌入式数据库的两个或多个应用程序?

4
假设我有三个单独的应用程序,分别叫做我的密码管理器(MyPasswordManager)、我的工具管理器(MyToolManager)和我的电影管理器(MyMovieManager)。这些应用程序中每一个都使用了 Firebird 嵌入式数据库。
如果客户购买了我所有三个应用程序并将它们安装在他/她的计算机上。并且客户同时运行了这三个应用程序,会发生什么?
Firebird DLL 是否会发生冲突?在这种情况下你该怎么办?

1
你可以毫无问题地将同一个Firebird嵌入式DLL与多个数据库共享。 - Arnaud Bouchez
3个回答

10
如果你把Firebird dll文件放在应用程序文件夹内(即.exe所在的文件夹),那么这就是你的应用程序首先寻找它们的地方,不会出现问题。
如果你想使用不同版本的dll文件,必须确保每个应用程序都安装在其自己的文件夹中。

3

Cape,你真的应该读一下doc目录中的“readme_embedded.txt”文件——它包含了你所寻找的所有答案。以下是一些相关的摘录(针对FB 2.5版本):

2.2. 数据库访问

数据库文件可以被多个客户端程序访问。在这种情况下,通过共享锁表来保证数据库的一致性。

2.4. 兼容性

您可以在嵌入式服务器上运行任意数量的应用程序而不会有任何冲突。同时运行IB/FB服务器也没有问题。


通常我会RTFM,如果2.1下载压缩包中包含"readme_embedded.txt"文件,我就会阅读它。我还没有下载2.5版本,也许我应该下载一下。我觉得有点奇怪,在这里找不到我的问题的答案 - http://www.firebirdsql.org/manual/ufb-cs-embedded.html。 - Michael Riley - AKA Gunny
@Cape 在FB2.5中,嵌入式服务器方面有几个改进。顺便说一下,据我所知,“readme_embedded.txt”仅在嵌入式服务器下载中提供。 - ain

2

你是否在开发机器上测试过它?我认为只需将应用程序和dll放置在不同的文件夹中即可。也许使用不同的名称重命名dll也可以起作用。


不,我还没有在我的机器上测试过它。我正在考虑未来的几个步骤。我购买了不带Firebird DBExpress驱动程序的Delphi 2010专业版。因此,我正在尝试决定是否应该使用Firebird,如果是的话,应该购买哪个驱动程序。我强烈倾向于使用Devart IBDac或UniDac。因为我正在寻找嵌入式数据库解决方案,所以我也在考虑NexusDB。 - Michael Riley - AKA Gunny

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接