关于直接在MSSQL里读取EXCEL的解决方案

 

今天弄了下在MSSQL里读取EXCEL的实验,环境是MSSQL2008,结果发现有很多问题,下面一一道来:

在使用MSSQL读取EXCEL会出现俩个问题:

第一个问题:

SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问

在Sql Server2008中查询一下Excel文件的时候出现问题:
SELECT *  FROM OPENROWSET( 'MICROSOFT.JET.OLEDB.4.0','Excel 8.0;IMEX=1;HDR=YES;DATABASE=D:/a.xls',[sheet1$])
    结果提示:
    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:
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


这个问题在跨服务器查询中,也经常会出现,解决方案同样是开启服务即可,因为在MSSQL08中,木有可操作的外围配置器界面,所以需要手工命令进行开启与关闭。

SELECT   *
FROM      OPENDATASOURCE(
         'SQLOLEDB',
         'Data Source=192.168.210.114,1433;User ID=sa;Password=123456
         ).database.dbo.tableName
        
--启用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

 

第二个问题:在做好上述的问题后,发现还是不能正常的读取EXCEL,运行读取EXCEL的语句后,会提示:

消息 7403,级别 16,状态 1,第 1 行
尚未注册 OLE DB 访问接口 "MICROSOFT.JET.OLEDB.4.0"。

这样的错误信息。

 

从网上找到了解决方案:需要安装MDAC_TYP2.8.EXE这个文件,那么这个是神马东东呢?

MDAC_TYP2.8.EXE:MDAC_TYP.exe包括所有ADO需要的运行库,如果你要保证程序在所有机器上都正确运行,这个文件是少不了的,当然这个文件非常大。一般Win2000以上的系统都具备,主要是用户在Win98上安装某些软件,就需要安装这个文件了

 

 

真是让人内流满面啊 ,坑爹啊 ~~ 顺着这个路线我发现了,其实这个MDAC_TYP.exe在我们的window2003或者XP系统中已经包含了,如果我们需要的时候,我们要将他们重新安装一下即可。

 

解决方法:

1:安装:

MDAC组件,在Windows XP SP2以后的版本及Windows 2003中已经包含了这个组件,如果直接使用MDAC_TYP.EXE可能会无法安装,这时需要采用下面的方法。在安装了XP sp2或Windows 2003的机器上修复MDAC的解决方法如下:在“我的电脑”中找到Windows系统目录下INF文件夹中的MDAC.INF文件,在其上点击右键,在弹出的菜单中选择“安装”,当提示定位文件时,您可以先将其指向windows\servicepackfiles\i386,当需要XP的CD时,指向XP的安装盘上的\i386文件夹即可。(如果您的XP安装包中包括了SP2,您可以直接指向XP的安装盘上的i386文件夹就可以了。如果您的SP2是从网上升级的,可能需要先指向C:\windows\servicepackfiles\i386文件夹,此处假定您的XP安装在C:\windows文件夹下)。将上述两个组件下载安装后,估计您的数据库问题就会解决了。

 

2:修复:

1、下载mdac_repair.zip,

下载地址为 http://www.9box.net/upload/File/2009/07/07/20090707092734114297.zip

2、将mdac_repair.zip解压缩到 C:\ mdac_repair 文件夹

3、用鼠标右键点击 “mdac.inf”文件,点击 “安装”

4、在接下来的安装过程中,如果提示 需要插入光盘或者找不到路径,这类提示无论出现几次,都一律将路径指向mdac_repair.zip解压缩后的文件夹,本文中为C:\ mdac_repair。

5、可能会提示需要重新启动操作系统,可以点击否,不用重新启动操作系统;

 

重启之后即可正常访问使用了!

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值