SQL配置错:因为 OLE DB 访问接口 'Microsoft.ace.OLEDB.12.0' 配置为在单线程单元
SQL2008R2OFFICE07电脑系统都是64的"execsp_configure'showadvancedoptions',1"reconfigure"execsp...
SQL2008R2 OFFICE07 电脑系统都是64的
" 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"
都执行了 最后出这个错 哪个大神帮忙解决下 急~!!!
SQL配置错:因为 OLE DB 访问接口 'Microsoft.ace.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。 展开
" 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"
都执行了 最后出这个错 哪个大神帮忙解决下 急~!!!
SQL配置错:因为 OLE DB 访问接口 'Microsoft.ace.OLEDB.12.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。 展开
1个回答
展开全部
"OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询":关键词:ole db 访问 接口39 microsoft.jet.oledb.4.0'配置 为 单线程 单元 模式下 运行 所以 该 访问 接口无法 用于 分布式 查询
遇到了一个问题,从excel导入数据到sql2005,之前操作过很多次,这次遇到了一些新情况。
使用的语句如下:
select * from openrowset
('microsoft.jet.oledb.4.0',
'excel 8.0;hdr=yes;imex=1;database=e:\bb.xls',
[sheet1$]
)
结果提示错误:因为 ole db 访问接口 'microsoft.jet.oledb.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
查了很多资料一般都是客户端和服务器端都是64位系统的情况。
我这边的情况,客户端使用的是32位的xp系统,服务器sql2005是64位的系统,和很多查到的情况不一样。
后来我在服务器上安装了ace2010的驱动,64位的。
修改了代码
select * from openrowset
('microsoft.ace.oledb.12.0',
'excel 8.0;hdr=yes;imex=1;database=e:\bb.xls',
[sheet1$]
)
但是还是出错,提示信息如下:
无法从链接服务器 "(null)" 的 ole db 访问接口"microsoft.ace.oledb.12.0"获取列信息。
后来看到一个文章说执行以上sql语句的数据库必须是本地数据库,如果为远程的数据库就会报上面的错误。
我尝试在本地的32位系统上的数据库操作,一切正常
然后我又在服务器上上传了excel文件,在服务器上执行语句,一切正常。
然后又在本地执行相同的语句,注意这里的e盘的bb的excel是指的服务器上的e盘,正常。
晕啊晕,这里的地址是指的本地地址,也就是数据库服务器上的磁盘地址,这个以前真没太注意啊。
遇到了一个问题,从excel导入数据到sql2005,之前操作过很多次,这次遇到了一些新情况。
使用的语句如下:
select * from openrowset
('microsoft.jet.oledb.4.0',
'excel 8.0;hdr=yes;imex=1;database=e:\bb.xls',
[sheet1$]
)
结果提示错误:因为 ole db 访问接口 'microsoft.jet.oledb.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
查了很多资料一般都是客户端和服务器端都是64位系统的情况。
我这边的情况,客户端使用的是32位的xp系统,服务器sql2005是64位的系统,和很多查到的情况不一样。
后来我在服务器上安装了ace2010的驱动,64位的。
修改了代码
select * from openrowset
('microsoft.ace.oledb.12.0',
'excel 8.0;hdr=yes;imex=1;database=e:\bb.xls',
[sheet1$]
)
但是还是出错,提示信息如下:
无法从链接服务器 "(null)" 的 ole db 访问接口"microsoft.ace.oledb.12.0"获取列信息。
后来看到一个文章说执行以上sql语句的数据库必须是本地数据库,如果为远程的数据库就会报上面的错误。
我尝试在本地的32位系统上的数据库操作,一切正常
然后我又在服务器上上传了excel文件,在服务器上执行语句,一切正常。
然后又在本地执行相同的语句,注意这里的e盘的bb的excel是指的服务器上的e盘,正常。
晕啊晕,这里的地址是指的本地地址,也就是数据库服务器上的磁盘地址,这个以前真没太注意啊。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询