虚位以待(AD)
虚位以待(AD)
首页 > 数据库 > mssql2008 > SQL SERVER 2008 64位系统无法导入ACCESS/EXCEL怎么办

SQL SERVER 2008 64位系统无法导入ACCESS/EXCEL怎么办
类别:mssql2008   作者:码皇   来源:互联网   点击:

操作系统Windows Server 2008 X64,数据库SQL Server 2008 X64,Office 2007(好像只有32位),在存储过程执行OpenDatasource导入Access数据的时候遇到问题了,Oledb 4 0已经不被支持,该怎么办呢?本文给大家分享我的解决办法,需要的朋友可以参考下

操作系统Windows Server 2008 X64,数据库SQL Server 2008 X64,Office 2007(好像只有32位),在存储过程执行OpenDatasource导入Access数据的时候遇到问题了,Oledb 4.0已经不被支持,以下是遇到的若干错误提示:

因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
无法创建链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OLEDB.12.0" 的实例。

因为 OLE DB 访问接口 'Microsoft.Ace.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询 。

解决方案是安装Office 2010 64位版, 网上有很多下载,然后下载Microsoft Access Database Engine 2010 的X64版本,网上也有下载,两者缺一不可。

然后改一下OpenDatasource参数,将 Microsoft.Jet.OLEDB.4.0 改为 Microsoft.ACE.OLEDB.12.0,大功告成。

贴上存储过程部分代码:

    --开启导入功能exec sp_configure 'show advanced options',1reconfigureexec sp_configure 'Ad Hoc Distributed Queries',1reconfigure--允许在进程中使用ACE.OLEDB.12EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1--允许动态参数EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1--导入临时表 exec ('insert into jihua(id,[批次号],Right('''+ @filepath +''',charindex('''',REVERSE('''+ @filepath +'''))-1),getdate() FROM OPENDATASOURCE (''Microsoft.ACE.OLEDB.12.0'', ''Data Source='+@filepath+';
    User ID=Admin;
    Password='' )...计划汇总表')--注意这里,要先关闭外围的设置,然后再关闭高级选项exec sp_configure'Ad Hoc Distributed Queries',0reconfigureexec sp_configure'show advanced options',0reconfigure--关闭ACE.OLEDB.12的选项EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 0EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 0

以上内容仅是我的个人见解,相信解决办法不止以上所述,希望大家多多分享自己的意见,共同交流学习进步。希望本文关于SQL SERVER 2008 64位系统无法导入ACCESS/EXCEL的解决方案对大家有所帮助。

相关热词搜索: sqlserver导入excel excel导入到sqlserver