链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OleDb.12.0" 报错。提供程序未给出有关错误的任何信息。

【错误信息】

消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OleDb.12.0" 报错。提供程序未给出有关错误的任何信息。

 

【运行环境】

SQL SERVER 2008 R2、SQL Server  Management Studio 2008 R2、Win7 64位、OFFICE 2010  64位(注:32位系统请安装32位版本的Office 2010)

 

【执行代码】

-- wonsoft.cn
-- 
SELECT   *
FROM      OPENDATASOURCE(
         'Microsoft.Ace.OleDb.12.0',
         'Extended Properties="Excel 12.0;HDR=YES;IMEX=1";Data Source="D:\test.xlsx"'
         )...[sheet1$]

注:执行的代码没有错误,错误的根源不在此。

 

【解决方案】

1、控制面板/管理工具/服务/SQL Server (SQLEXPRESS)  --> 右键 属性 --> 登录 --> 设置: 登录身份=本地系统账户  --> 重启电脑

 

2、修改ACE接入参数

USE [master]  
GO  
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1  
GO  
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1  
GO  

或:

Windows Registry Editor Version 5.00  
  
[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server\MSSQL10.EXP2008\Providers\Microsoft.ACE.OLEDB.12.0]  
"AllowInProcess"=dword:00000001  
"DynamicParameters"=dword:00000001  

或:

SQL Management Studio:SQL服务器-->服务器对象-->链接服务器-->Microsoft.ACE.OLEDB.12.0 属性-->常规-->选中:1、动态参数;2、允许进程内

注:以下提示则要设置全部都不选。

链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"。

消息 7303,级别 16,状态 1,第 1 行

无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。

你可能感兴趣的:(链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Ace.OleDb.12.0" 报错。提供程序未给出有关错误的任何信息。)