解决在Sql Server2005查询分析器中读取Excel表出现的一些问题
2009-10-12 13:21
459 查看
在sql2005查询分析器中读取excel时遇到的几个问题,收集了网上所有资源,最后问题终于解决了,网上很多答案都是粘贴、复制形式的,所以在实际的环境中并不能用,相信有很多朋友和我遇到过一样的错误,为了避免后人犯同样的错误,现总结分享给大家:
环境:
系统: windows7,
数据库: sqlserver2005,
office: office2003
SQL读取Excel常用的方式有:
A.通过使用 OpenRowSet 和 OpenDataSource 函数
B.通过使用链接服务器查询 Excel
select * from OpenRowSet
('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\bb.xls',
[Sheet1$]
)
一般报错:
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
select * from OpenDataSource
('Microsoft.Jet.OLEDB.4.0',
'Data Source=E:\bb.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"'
)...[Sheet1$]
一般报错:
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
SELECT * FROM OpenDataSource(
'Microsoft.Jet.OLEDB.4.0',
'Data Source=E:\bb.xls;User ID=Admin;Password=;Extended properties=Excel 5.0'
)...[Sheet1$]
一般报错:
消息 7308,级别 16,状态 1,第 1 行
因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
declare @rc int
declare @server nvarchar(128)
declare @srvproduct nvarchar(128)
declare @provider nvarchar(128)
declare @datasrc nvarchar(4000)
declare @location nvarchar(4000)
declare @provstr nvarchar(4000)
declare @catalog nvarchar(128)
set @server = 'exceltosql'
set @srvproduct = 'excel'
set @provider = 'microsoft.jet.oledb.4.0'
set @datasrc = 'e:\bb.xls'
set @provstr = 'excel 8.0'
exec @rc = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
@datasrc, @location, @provstr, @catalog
查询:
select * from exceltosql...sheet1$
报错:
链接服务器"exceltosql"的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 返回了消息 "无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。"。
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "exceltosql" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 报错。身份验证失败。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "exceltosql" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 的数据源对象。
下面总结解决方式:
1、在SQL Server 外围应用配置器中启用 OpenRowSet 和 OpenDataSource函数
2、执行以上sql语句的数据库必须是本地数据库,如果为远程的数据库就会报上面的错误
3、链接字符串 Extended Properties属性的内容要以分号间隔并用双引号括起来,sheet1$ 在括号外
原博客地址:http://wep2008.blogbus.com/logs/35390970.html
环境:
系统: windows7,
数据库: sqlserver2005,
office: office2003
SQL读取Excel常用的方式有:
A.通过使用 OpenRowSet 和 OpenDataSource 函数
B.通过使用链接服务器查询 Excel
select * from OpenRowSet
('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;HDR=Yes;IMEX=1;Database=E:\bb.xls',
[Sheet1$]
)
一般报错:
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
select * from OpenDataSource
('Microsoft.Jet.OLEDB.4.0',
'Data Source=E:\bb.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1"'
)...[Sheet1$]
一般报错:
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 报错。提供程序未给出有关错误的任何信息。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。
SELECT * FROM OpenDataSource(
'Microsoft.Jet.OLEDB.4.0',
'Data Source=E:\bb.xls;User ID=Admin;Password=;Extended properties=Excel 5.0'
)...[Sheet1$]
一般报错:
消息 7308,级别 16,状态 1,第 1 行
因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
declare @rc int
declare @server nvarchar(128)
declare @srvproduct nvarchar(128)
declare @provider nvarchar(128)
declare @datasrc nvarchar(4000)
declare @location nvarchar(4000)
declare @provstr nvarchar(4000)
declare @catalog nvarchar(128)
set @server = 'exceltosql'
set @srvproduct = 'excel'
set @provider = 'microsoft.jet.oledb.4.0'
set @datasrc = 'e:\bb.xls'
set @provstr = 'excel 8.0'
exec @rc = [master].[dbo].[sp_addlinkedserver] @server, @srvproduct, @provider,
@datasrc, @location, @provstr, @catalog
查询:
select * from exceltosql...sheet1$
报错:
链接服务器"exceltosql"的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 返回了消息 "无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。"。
消息 7399,级别 16,状态 1,第 1 行
链接服务器 "exceltosql" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 报错。身份验证失败。
消息 7303,级别 16,状态 1,第 1 行
无法初始化链接服务器 "exceltosql" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 的数据源对象。
下面总结解决方式:
1、在SQL Server 外围应用配置器中启用 OpenRowSet 和 OpenDataSource函数
2、执行以上sql语句的数据库必须是本地数据库,如果为远程的数据库就会报上面的错误
3、链接字符串 Extended Properties属性的内容要以分号间隔并用双引号括起来,sheet1$ 在括号外
原博客地址:http://wep2008.blogbus.com/logs/35390970.html
相关文章推荐
- 解决在Sql Server2005查询分析器中读取Excel表出现的一些问题
- 解决在Sql Server2005查询分析器中读取Excel表出现的一些问题
- 解决在Sql Server查询分析器中读取Excel表出现的一些问题
- 关于GridView导出Excel的一些问题(采用Ajax出现的的问题及解决方法)
- 使用POI是读取excel文件中电话号码及日期出现的问题及解决
- php读取excel文件的日期时间出现类似41395的问题解决
- Matlab 读取excel文件提示服务器出现意外情况或无法读取问题解决
- ADO POST时出现“无法为更新定位行,一些值可能已在最后一次读取后已更改”问题的解决方法
- c#操作Excel 一些问题 字符变为null解决方法
- 今天解决了两个关于.NET读取EXCEL文件的问题,记下来,很有用!
- 配置MapServer出现的一些问题及解决办法
- 用ADO更新MYSQL报“无法为更新定位行。一些值可能已在最后一次读取后已更改”问题的解决
- 读取文本出现 锘 * 系列乱码错误(UTF-8 BOM问题)的原因及解决方法
- 使用AndroidStudio出现的一些问题及解决办法
- 写JasperReport过程中出现的一些问题及解决方法
- 解决Excel 2007的"有 XML 错误的 /xl/sharedStrings.xml"问题 (“发现不可读取的内容,是否回复此工作薄的内容...")
- Excel出现“由于本机的限制,该操作已被取消,请与系统管理员联系”问题的解决办法。
- IIS oledb jet 4.0 读取excel 时,出现未指定错误 解决方法 !
- mosquitto 使用时出现的一些问题及其解决办法
- xmpp 在android上出现的一些问题和解决方法