2

我有一个针对 Firebird 2.5 32 位会话运行的 DelphiXE2 客户端。

我的开发环境是 Windows 7 64bit,我使用 InterBase 客户端组件。

只要我将项目编译为 32 位,一切正常。

该项目可以很好地编译为 64 位 - 非常高兴 :-) - 但是我在登录时收到“连接被远程接口拒绝”错误 - 不高兴 :-(

我已确保删除所有 gds32.dll 并安装了 Firebird 2.5 客户端 32 位 fbclient.dll。fbclient.dll 被复制到 SysWOW64 目录。

什么可能导致这种拒绝?

4

1 回答 1

4

系统的一个要求是:

可执行文件加载的所有库必须具有相同的位数,这意味着您必须在 64 位进程上加载 64 位 dll,在 32 位进程上加载 32 位 dll。

查看64 位 Windows 限制列表中的No Mixed 64-Bit/32-Bit Processes条目

这也适用于 Firebird 客户端。为了从 64 位进程成功连接到您的 Firebird 数据库,您必须安装 Firebird 的 64 位客户端

一台机器可能同时安装了 32 位和 64 位客户端,因为它们位于不同的文件夹中,所以 dll 可以并且通常具有相同的名称。

这不会影响连接到 32 或 64 位服务器的能力。换句话说,这不是关于 Firebird 服务器,而是关于 Firebird 客户端。

于 2013-01-22T16:13:30.637 回答