首页 > 代码库 > sql2008读取excel
sql2008读取excel
环境:win7(64位)+sql2008
sql语句:
--启用Ad Hoc Distributed Queries:exec sp_configure ‘show advanced options‘,1reconfigureexec sp_configure ‘Ad Hoc Distributed Queries‘,1reconfigure --使用完成后,关闭Ad Hoc Distributed Queries:exec sp_configure ‘Ad Hoc Distributed Queries‘,0reconfigureexec sp_configure ‘show advanced options‘,0reconfigure --允许在进程中使用ACE.OLEDB.12EXEC master.dbo.sp_MSset_oledb_prop 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 --读取excel方式1select * from OpenRowSet (‘Microsoft.ACE.OLEDB.12.0‘, ‘Excel 8.0;HDR=Yes;IMEX=1;Database=c:\data.xls‘, [Sheet1$] )--读取excel方式2 SELECT * FROM OpenDataSource( ‘Microsoft.ACE.OLEDB.12.0‘,‘Data Source=c:/data.xls;Extended properties=Excel 8.0‘)...Sheet1$
提示:
OLE DB 访问接口 ‘Microsoft.Jet.OLEDB.4.0‘ 配置为在单线程单元模式下运行,所以该访问接口无法用于分布式查询 报错原因:在64SQL Engine中已经不提供jet.oledb.4.0的驱动了
解决:下载一个ACE.Oledb.12.0 for X64位的驱动,并把连接字符串Microsoft.jet.Oledb.4.0 更改为 Microsoft.ACE.OLEDB.12.0
从微软的主页下载,会发现有两个版本,一个是位32位系统准备的,另一个是为64位系统准备的。因为我们是Win7 64位系统,而且项目用到的dll都是64位的,所以要装Microsoft Access Engine-x64,但是安装的时候会检测到你机器上安装的是32位的Office,要求你把Office升级到64位, 直接安装它要求提示删除,
1,删除32位Microsoft Access Engine.exe(控制面板,添加删除程序)
2,使用"/passive"命令来安装,例如"C:\directory path\AccessDatabaseEngine_x64.exe" /passive
3,安装完成后,查看注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\14.0\Common\FilesPaths,删除mso.dll
sql2008读取excel
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。