我需要一些建议,因为我遇到了一个问题,但到目前为止我还无法找到解决方案。
我们有一组在 MS Excel 中开发的报告,它们使用 DSN 文件连接到数据源以检索数据。这些报告在 32 位和 64 位系统上运行良好。
然而,我们正在转向使用Windows 2008 R2 64位
如果我们只安装 32 位驱动程序并在 ODBC 设置中配置了该驱动程序,则报告无法在此环境中使用 DSN 运行。一旦我们安装 64 位驱动程序,软件就可以运行。
有没有办法或方法可以让 Excel 或 DSN 文件不使用 64 位驱动程序,而是强制其使用 32 位驱动程序?
答案1
我们正在转移到使用 Windows 2008 R2 64Bit 的终端服务器环境。
这本身不会给你带来问题,你必须安装 64 位版本的 Microsoft Office 2010。你必须有安装 64 位版本的充分理由,微软在 64 位机器上默认安装 32 位版本是有原因的- 东西停止工作。
有没有办法/方法可以让 Excel 或 DSN 文件不使用 64 位驱动程序,而是强制它使用 32 位驱动程序。
否,但对于 Office 应用程序内的连接,只需安装 64 位版本的 ACE,并确保你的连接字符串引用Microsoft Access Driver (*.mdb, *.accdb)
。
SQL Server 和 Oracle 以及一大堆其他常见的 RDBMS 都有 64 位 ODBC 驱动程序,所以我看不出 64 位 ACE 和 SQL Native Client/ODAC 之间如何无法连接某些东西。
如果仍然不起作用,有一个通用机制可以通过 SQL Server 链接服务器“代理”x64 -> x86这论坛帖子。Microsoft.Jet.OLEDB.4.0
根据需要将 和其他设置(使其成为通过 ODBC 而不是 ODBC 链接的服务器)替换为您的 ODBC 提供程序。
答案2
OP 回答了自己的问题
遗憾的是,没有很多非常讨厌的并且不是 100% 完美的注册黑客,就没有办法做我想做的事情。
如果您需要访问 32 位 ODBC 数据源,则相关应用程序必须是 32 位。
这是我找到的与此类问题相关的一个论坛帖子的链接,看来我能做到这一点的唯一方法是删除 64 位版本的 Office 并安装 32 位版本。
http://social.msdn.microsoft.com/Forums/en-US/accessdev/thread/5108f337-f06a-4518-afe3-d3c1abd040ef/