3

我们即将通过 IBPP 在我们的软件中集成一个 firebird 数据库。根据火鸟文档,这应该是可能的。

在服务运行时,我们已经设法通过 IBPP 使用 firebird 数据库。但是,我们希望避免运行服务。在 Windows 上我们已经完成了这项工作 - 但在 linux 端有两个主要区别:

安装

在 Windows 上,不需要进行安装。正如文档所说,在 Linux 上似乎是这样:

最后,您不能只将 libfbembed.so 与您的应用程序一起提供并使用它来连接到本地数据库。在 Linux 下,您总是需要正确安装的服务器,无论是 Classic 还是 Super。

这是真的?我发现 firebird 文档有时已经过时了。如果这仍然有效,如何处理这个安装?我们可以在客户的电脑上运行它吗?我查看了shell脚本。它启动一个服务。对我来说,在安装过程中似乎需要运行此服务。无论如何,如果该服务仅在安装时运行并且之后不再需要,这将没有问题 - 但我不确定这一点。

IBPP

在 Windows 上,您只需通过 loadlibrary 加载 DLL:我们将 fbembed.dll、icuuc30.dll 和 icudt30.dll 放在 any_dirctory 上,将 IBPP 中调用嵌入式 dll 的段落更改为 loadlibary("any_directory\fbembed.dll") 和将 any_directory 添加到 PATH 变量。现在一切正常。(旁白:通过这样做,可以通过我们使用 IBPP 创建的 DLL 调用数据库。我们提供给客户的每个 EXE 都可以使用该 DLL,而无需关心 EXE 所在的路径)。

但在 Linux 上,我没有找到完成此操作的代码。在这个HOWTO中,似乎需要一个特殊的目录结构。这真的有必要吗?是否可以将 .so 文件放在 any_directory 并从 another_directory 运行应用程序?是否有必要将 loadlibary 添加到 IBPP 的 Linux 部分?(顺便说一句:我的问题是我无法真正测试事物,因为 Linux 集成正在为我做其他事情)。

4

0 回答 0