我已经在 Windows 7(64 位)下安装了 Firebird 3.0(Firebird-3.0.0.32483_2_x64)。我使用 ISQL 创建了一个 Firebird 数据库,并希望将数据从 Microsoft Access 数据库复制到它。
我已经安装了 Firebird ODBC 驱动程序 (Firebird_ODBC_2.0.4.155_x64) 并通过控制面板中的数据源 (ODBC) 设置了用户 DSN。我正在使用这个客户端 - C:\Program Files\Firebird\Firebird_3_0\fbclient.dll - 当我点击“测试连接”时,我收到“连接成功”消息。
然后我启动了 Access 2013。我假设这是 64 位代码,因为可执行文件位于“程序文件”而不是“程序文件 (x86)”中。当我尝试创建指向 ODBC 源(现在显示为“机器数据源”)的链接时,我收到此消息 -</p>
ODBC 调用失败
[ODBC Firebird 驱动程序]无法连接到数据源:库 'C:\Program Files\Firebird\Firebird_3_0\fbclient.dll' 加载失败。(#-904)
有人可以帮忙吗?我所有的在线研究表明,当 64 位程序与 32 位驱动程序一起使用时会出现问题,反之亦然,但我认为我所做的一切都应该在 64 位领域。我也看过904可以表示“数据库不可用”,但是当时我可以打开ISQL并成功访问数据库。
对 Dalton 建议的回应 - 我在控制面板中创建了一个系统 DSN。如果我打开 Access 并查看 ODBC 数据源,它不存在。这似乎是查看 Microsoft 网站的已知问题。
在尝试此操作时,我发现安装在我的 PC 上的 Access 2013 是 32 位可执行文件,尽管 Microsoft 将其安装在“程序文件”而不是“程序文件 (x86)”中。
当我切换到 32 位 ODBC 源时,使用 32 位 ODBC 管理员进行设置,并尝试从 Access 链接到它,我收到一条消息,“[ODBC Firebird Driver]Error loading plugin Engine12. 模块 C:\Program Files\Firebird\Firebird_3_0\plugins\Engine12 存在但无法加载 (#-901)”。
Firebird 只安装了 Engine12.dll 的一个副本,我假设它是一个 64 位的 dll,所以我知道为什么它不起作用,但我该从哪里开始呢?