时间:2023-12-07来源:系统城装机大师作者:佚名
操作系统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,大功告成。
贴上存储过程部分代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
--开启导入功能 exec sp_configure 'show advanced options' ,1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries' ,1 reconfigure --允许在进程中使用ACE.OLEDB.12 EXEC 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 ',0 reconfigure exec sp_configure' show advanced options ',0 reconfigure --关闭ACE.OLEDB.12的选项 EXEC master.dbo.sp_MSset_oledb_prop N' Microsoft.ACE.OLEDB.12.0 ', N' AllowInProcess ', 0 EXEC master.dbo.sp_MSset_oledb_prop N' Microsoft.ACE.OLEDB.12.0 ', N' DynamicParameters', 0 |
以上内容仅是我的个人见解,相信解决办法不止以上所述,希望大家多多分享自己的意见,共同交流学习进步。
2023-12-07
SQL SERVER 2008 r2 数据压缩的两种方法2023-12-07
SQL Server 2008数据库设置定期自动备份的方法2023-12-07
sqlserver2008首次登录失败问题及解决方法环境:SQLServer2008R2一台、web服务器一台 软件支持:iis、动态网站源代码 拓扑:步骤:数据库部分:1、开始-点击SQL Server Management Studio2、输入SQLServer服务器的名称或IP地...
2023-12-07
因为需要本地测试开发一个小型的cms系统,那么下面的sql server 2008 就可以安装下面的文件了,如果正式使用推荐安装企业版。下载地址:SQL Server 2008 Express 中文简体安装包x...
2023-12-07