SSRS“Microsoft.Jet.OLEDB.4.0”提供程序未在本地计算机上注册

时间:2010-11-09 20:29:27

标签: sql-server-2008 ssrs-2008 oledbconnection

嗯,这有点尴尬。我目前有一组32位sql server 2005实例的报告,它引用了网络位置上的访问数据库。我目前正在尝试将这些迁移到我的新报告服务实例(sql server 2008 64位),我遇到了一个问题。

Jet Error

好吧,我做了一个关于错误的谷歌搜索并得到了一堆东西说要编译使用x86并使用32位等,但如果我在rpeorting服务中得到这个,它们都没有触及。

我的问题是,有没有办法“修复”这个,或某种解决方法?也许我可以使用另一个提供来访问数据库?   任何想法都会非常感激。

2 个答案:

答案 0 :(得分:1)

今天遇到完全相同的问题,因为你提到没有64位的Microsoft.Jet.OLEDB.4.0提供程序可用。这会影响尝试在64位Reporting Services实例上使用Excel和Access数据源的报表。以下是KB文章,确认没有64位Jet驱动程序可用:

http://support.microsoft.com/kb/957570

我找到的解决方案来自MSDN上的论坛帖子:

http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/thread/9e999fb4-5a39-41c4-8fd7-46193a223673/

它涉及创建一个SSIS包,该包读取Excel或Access数据源,以32位模式运行SSIS包,并使用SSIS包作为报告数据源。不理想,但它有效。

我担心这是我们受限制的讨厌的解决方法。

答案 1 :(得分:1)

我碰到了这个,它在一个特定的案例中起作用:

http://danielcai.blogspot.com/2011/02/solution-run-jet-database-engine-on-64.html

从那篇文章:

微软去年发布了64位兼容的Jet数据库引擎。以下是您可以用来解决此问题的过程:

  1. 下载Microsoft Access数据库引擎2010可再发行组件( 当然,你需要为你的服务器选择合适的位),以及 将其安装在您的服务器上

  2. 更改代码或配置文件中的连接字符串  提供商= Microsoft.Jet.OLEDB.4.0;  至  提供商= Microsoft.ACE.OLEDB.12.0;