我有一个针对Firebird 2.5 32位会话运行的DelphiXE2客户端。
我的开发环境是Windows 7 64位,我使用的是InterBase客户端组件。
只要我编译32位项目,一切正常。
项目编译精确到64位 - 非常高兴:-) - 然后我在登录时遇到“远程接口拒绝连接”错误 - 不满意: - (
我已确保删除所有gds32.dll,并且我已安装Firebird 2.5客户端32位fbclient.dll。 fbclient.dll被复制到SysWOW64目录。
导致这种拒绝的原因是什么?
答案 0 :(得分:4)
系统的要求是:
可执行文件加载的所有库必须具有相同的位数,这意味着您必须在64位进程上加载64位dll,在32位进程上加载32位dll。
查看List of limitations in 64-Bit Windows
中的 No Mixed 64-Bit / 32-Bit Processes 条目这也适用于Firebird客户端。为了从64位进程成功连接到Firebird数据库,您必须安装Firebird的64位客户端。
一台机器可能同时安装了32位和64位客户端,因为它们位于不同的文件夹中,dll可以并且通常具有相同的名称。
这不会影响连接到32位或64位服务器的能力。换句话说,这不是关于Firebird服务器,而是关于Firebird客户端。