Firebird ODBC连接(64位)失败,并显示“未定义用户名和密码”

时间:2018-09-19 07:17:35

标签: odbc 64-bit firebird

我已经在新设置的Windows Server 2016上安装了32位Firebird 3.0.3 Classic Server(32位是因为我必须使用仅32位可用的旧版UDF dll)。除了64位ODBC连接之外,所有连接都可以从客户端计算机正常工作(32位ODBC连接,FlameRobin)。但是,当我尝试通过64位ODBC DSN访问数据库时,出现错误“您的用户名和密码未定义”。

在这种情况下,我的客户端计算机是Windows Server 2012 R2。我已完成以下步骤:

  1. 安装32位Firebird客户端库(版本3.0.3)
  2. 安装64位Firebird客户端库(版本3.0.3)
  3. 安装32位ODBC驱动程序(版本2.0.5.156)
  4. 安装64位ODBC驱动程序(版本2.0.5.156)
  5. 打开32位Windows ODBC管理控制台并创建DSN-连接测试确定
    截图:https://postimg.cc/WDrJQryH
  6. 打开64位Windows ODBC管理控制台并创建DSN-连接错误! 截图:https://postimg.cc/5XDC7psz

我确定我没有拼错密码。我可能错过了什么?非常感谢!

1 个答案:

答案 0 :(得分:1)

通常这样的问题(当您有两个几乎相同的应用程序,并且只有其中一个正在工作时)通常通过比较它们的行为并寻找差异来诊断,然后尝试更改计算机或应用程序设置以消除可疑和不必要的差异,除非这两个程序的工作。 SysInternals Process Monitor是一个有用的工具,可以将其设置为记录文件I / O轨道(还包括注册表和其他内容),从而可以对程序实现及其失败提供有价值的见解。在这种特殊情况下,当您在ODBC32和ODBC64窗口中按“测试连接”按钮时,文件和注册表访问的轨迹可能会突出显示64位应用程序与32位应用程序出现错误的地方。

如果要跳过一段时间的系统诊断并尝试仅作猜测,那么Mark建议64位应用无法找到正确的fbclient.dll(在正确的位置可能意味着很多事情:FB版本,32 / 64-位,文本配置文件等等。

看到您的ODBC设置窗口有一个明确的字段“ Client”和“ Browse”按钮,我猜测ODBC试图自动定位客户端库,并且由于某种原因找到了一些不幸的库。 然后,我建议您尝试将“客户端”字段设置为Firebird引擎本身使用的fbclient.dll文件,如果您没有更改默认安装设置,则类似于“ c:\ Program” Files \ Firebird \ Firebird_3_0 \ bin \ fbclient.dll“