2016-08-24 247 views
0

我在Windows 7(64位)下安装了Firebird 3.0(Firebird-3.0.0.32483_2_x64)。我已经使用ISQL创建了一个Firebird数据库,并希望从Microsoft Access数据库将数据复制到它。无法使用ODBC连接到Firebird 3.0

我已经安装了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数据源(现在显示为“机器数据源”),我得到这个消息 -

ODBC调用失败

[ODBC火鸟驱动程序]无法连接到数据源:库'C:\ Program Files \ Firebird \ Firebird_3_0 \ fbclient.dll'加载失败。(# - 904)

任何人都可以帮忙吗?我所有的在线研究表明,当64位程序与32位驱动程序一起使用时会出现问题,反之亦然,但我认为我所做的每件事都应在64位领域。我也读过904可以指示“不可用数据库”,但我可以打开ISQL并在当时成功访问数据库。

对Dalton的建议的回应 - 我在控制面板中创建了一个系统DSN。如果我打开Access并查看ODBC数据源,它不在那里。这似乎是看着微软网站的一个已知问题。

在尝试此操作时,我发现安装在我的PC上的Access 2013是32位可执行文件,即使Microsoft将它安装在“程序文件”而不是“程序文件(x86)”中。

当我切换到32位ODBC源,使用32位ODBC管理员设置,并尝试从Access链接到它我得到一条消息,“[ODBC Firebird驱动程序]错误加载插件Engine12。模块C:\ Program Files \ Firebird \ Firebird_3_0 \ plugins \ Engine12存在但无法加载(#-901)“。

Firebird只安装了Engine12.dll的一个副本,我认为这是一个64位的DLL,所以我可以明白为什么这样做不起作用,但我该从哪里出发?

+0

还有一个64位的Flamerobin,但我不明白它是如何用于“ODBC故障排除”的,因为Flamerobin本身对ODBC没有做任何事情。 –

回答

0

尝试创建系统DSN而不是用户DSN。我过去也遇到过类似的问题,并为我解决了这个问题。