日期:2014-05-17  浏览次数:21597 次

The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
操作系统:Windows Server 2008 64位企业版
数据库:SqlServer 2005 64位企业版
环境:SqlServer 2005 SSIS package

在SSIS的package中读取.xlsx文件,因为SQL SERVER 2005不支持直接读取此类文件,所以采取用'Microsoft.ACE.OLEDB.12.0来读取,包执行中提示错误:The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine.
即:(未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序)

其中AccessDatabaseEngine.exe正确默认安装。
在产品服务器上环境相同,包的执行正确,这个服务器是我自己新建的,不知道哪里设置有问题。

谢谢各位。
------最佳解决方案--------------------
你的环境是64位的,OLEDB 是没有64位的provider的,所以要在64位环境下执行,这个有几种方案

1, 在SSIS项目中选择属性:Debugging中将Run64bitRuntime设置成true

2,调用C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
一定要是(X86)这个文件夹下的哦,这个命令行工具的具体用法可以查看MSDN

------其他解决方案--------------------
该回复于2010-07-29 18:12:29被版主删除
------其他解决方案--------------------
引用:
不懂 帮顶



------其他解决方案--------------------
该回复于2010-07-29 18:19:20被版主删除
------其他解决方案--------------------
dear 841zs:

非常感谢!您的方案(2)是对的。
在JOB中调用package的时候,我的确是用的DTExec.exe这个工具,但我用的是默认的x64的。
看了您的建议以后我改用x86的DTExec,可以成功。
再次感谢!

现在我将此问题总结一下:



1.在用SQL SERVER 2005访问.xlsx文件(office2007&2010文件格式)时,必须用
provider 'Microsoft.ACE.OLEDB.12.0' 来实现。
2.首先要安装AccessDatabaseEngine.exe。
下载路径:http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en
3.在32位系统中可以在数据库中看见这个provider。
4.在64位系统中不能看见它,这时需调用
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
来执行package。

That's all,THX!




------其他解决方案--------------------
附个图片:
[img=http://hi.csdn.net/space-3497932-do-album-picid-600774.html][/img]
------其他解决方案--------------------
C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
我机子怎么找不到这个路径呢?
------其他解决方案--------------------
留下印记..
------其他解决方案--------------------
引用:
你的环境是64位的,OLEDB 是没有64位的provider的,所以要在64位环境下执行,这个有几种方案

1, 在SSIS项目中选择属性:Debugging中将Run64bitRuntime设置成true

2,调用C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTExec.exe
一定要是(X86)这个文件夹下的哦……


这里的在SSIS项目中选择属性:Debugging中将Run64bitRuntime设置成true在哪里修改?是数据库的设置中还是web服务器的某个设置?