【问题标题】:Delphi XE2 64 bit client connection to Firebird 2.5Delphi XE2 64 位客户端连接到 Firebird 2.5
【发布时间】:2013-02-01 05:08:38
【问题描述】:

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

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

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

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

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

什么可能导致此拒绝?

【问题讨论】:

  • 你为什么说 gds32.dll ?那应该是 fbclient.dll !以及您使用什么库(组件)在 Delphi 代码中连接数据库?

标签: delphi delphi-xe2 firebird firebird2.5


【解决方案1】:

系统的一个要求是:

可执行文件加载的所有库必须具有相同的位数,这意味着您必须在 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 客户端。

【讨论】:

  • 我仍然得到与 64 位 fbclient.dll 相同的“连接被远程接口拒绝”。我也试过把dll复制到项目的application文件夹下,还是一样的错误?
  • 您确定您的应用程序正在使用 fbClient 吗?如果您使用的是 IBX,而我自古以来就没有使用过,那么您的应用程序可能与 Interbase 客户端库相关联:gds32.dll。
  • 我已删除所有 gds32.dll。我还尝试了 Firebird 安装中的选项,将 fbclient.dll 安装为 gds32.dll。似乎没有任何帮助。你们中是否有任何开发人员使用 Interbase 组件运行 64 位客户端?
  • 无论我从 64 位客户端登录哪个用户,服务器上的 Firebird.log 都将错误列为“ADMINISTRATOR 连接被拒绝”-1.-1???
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-11
相关资源
最近更新 更多