首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何找到Server可用的OLE提供程序?

如何找到Server可用的OLE提供程序?
EN

Stack Overflow用户
提问于 2013-03-15 14:19:44
回答 1查看 44K关注 0票数 8

我试图访问SSMS中的Excel文件。在搜索完互联网后,我无法让它正常工作。

以下是我所做的:

我的环境:

代码语言:javascript
复制
Windows 7(64bit) SP 1, 
Microsoft SQL Server 2008 (SP3) - 10.0.5500.0 (X64)   
Office 2010 Pro Plus with Access installed(32 bit)
  1. 尝试更改OLE的配置,例如: exec sp_configure 'Advanced',1个重新配置exec sp_configure 'Ad Distributed Queries',1个重新配置EXEC sp_configure 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
  2. 运行查询: 从OPENROWSET中选择*(‘MICROSOFT.ACE.OLEDB.12.0’,‘Text;Database=C:\Temp\’,'SELECT * FROM test.csv') 或 从OPENROWSET中选择*(‘MICROSOFT.JET.OLEDB.4.0’,‘Text;Database=C:\Temp\’,'SELECT * FROM test.csv')

对于这两种情况,我都收到了如下错误消息:

代码语言:javascript
复制
Msg 7308, Level 16, State 1, Line 1
OLE DB provider 'MICROSOFT.JET.OLEDB.4.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.

代码语言:javascript
复制
Msg 7308, Level 16, State 1, Line 1
OLE DB provider 'MICROSOFT.ACE.OLEDB.12.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.

然后,我检查了SQL server上的链接服务器,默认情况下运行system有10个提供程序:

代码语言:javascript
复制
EXEC master.dbo.sp_MSset_oledb_prop 

SQLOLEDB
MSOLAP
SQLNCLI11
ADsDSOObject
SQLNCLI
SQLNCLI10
Search.CollatorDSO
MSDASQL
MSDAOSP
MSIDXS

如何解决这个问题?如何知道MICROSOFT.ACE.OLEDB.12.0MICROSOFT.JET.OLEDB.4.0是否可用于Server?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-03-20 14:17:17

对于带有扩展.xlsx的文件类型,请使用“Excel12.0”或“Excel12.0XML”代替Excel9.0

代码语言:javascript
复制
SELECT *
FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=C:\Temp\Test.xlsx;', 'SELECT * FROM [Location1$]')

如果要连接到数据,则根据Excel文件类型添加OLEDB连接字符串的适当扩展属性:

代码语言:javascript
复制
File Type (extension)                               Extended Properties
---------------------------------------------------------------------------------
Excel 97-2003 Workbook (.xls)                       "Excel 8.0"
Excel 2007-2010 Workbook (.xlsx)                    "Excel 12.0 Xml"
Excel 2007-2010 Macro-enabled workbook (.xlsm)      "Excel 12.0 Macro"
Excel 2007-2010 Non-XML binary workbook (.xlsb)     "Excel 12.0"
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15434748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档