ITXP365(智码IT网)

分享电脑知识,传播IT技巧

致敬爱学习的您,祝您访问愉快!

SqlServer中使用OpenDataSource函数查询Access、Excel数据时常见错误


发布:智码IT网   阅读:
SQL示例:

select
FROM
OpenDataSource( 'Microsoft.ACE.OLEDB.12.0', 'Data Source="D:\accdb1.sfk";User ID=Admin;Jet OLEDB:Database Password="dpw1"' )...tb1


select
FROM
OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="D:\accdb1.sfk";User ID=Admin;Jet OLEDB:Database Password="pw1"' )...tb2

错误1:尚未注册 OLE DB 访问接口 "Microsoft.ACE.OLEDB.12.0"。
解决办法:安装【AccessDatabaseEngine_X64.exe】引擎


错误2:SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT 'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。 有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

解决方法:启用Ad Hoc Distributed Queries。 启用和关闭Ad Hoc Distributed Queries功能的脚本如下:

启用Ad Hoc Distributed Queries:

exec sp_configure 'show advanced options',1 
reconfigure 
exec sp_configure 'Ad Hoc Distributed Queries',1 
reconfigure

关闭Ad Hoc Distributed Queries:

exec sp_configure 'Ad Hoc Distributed Queries',0 
reconfigure 
exec sp_configure 'show advanced options',0 
reconfigure

错误3:链接服务器"(null)"的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 返回了消息 "未指定的错误"。消息 7303,级别 16,状态 1,第 1 行 无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "Microsoft.Jet.OLEDB.4.0" 的数据源对象。

解决方法:展开数据库服务器,在【服务器对象 -- 链接服务器 -- 访问接口 -- Microsoft.Jet.OLEDB.4.0】节点上执行【右键】菜单,点击【属性】菜单,在弹出的【访问接口选项】窗口中,确保【允许进程內】选项为勾选状态,如图所示

错误4:消息 7302,级别 16,状态 1,第 1 行 无法创建链接服务器 "(null)" 的 OLE DB 访问接口 "MSDASC" 的实例。
解决方法:将SQL Server(MSSQLSERVER) 服务的登录方式修改为:Local system(即:本地系统账户),可以通过系统服务窗口或者sql配置窗口设置,如图:
    1. 通过服务窗口修改:
    1. 通过配置工具修改:开始---所有程序---MicrosoftSQL Server 2008 R2(或其他版本)---配置工具---SQLServer 配置管理器

错误5:因为 OLE DB 访问接口 'Microsoft.Jet.OLEDB.4.0' 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询。
解决方法:
    如果是64位系统,需要卸载32位的Office办公软件,然后:
(1)安装64位的Office办公软件
(2)安装【AccessDatabaseEngine_X64.exe】引擎
上一篇:没有了
下一篇:没有了

© 2001-智码IT网 www.itxp365.com版权所有

蜀ICP备2021001527号