如何获得64位 Jet Driver

来源:互联网 发布:中华魔力迅白牙膏知乎 编辑:程序博客网 时间:2024/06/07 06:46

以前SQL Server可以用JET直接访问Excel的数据,非常方便。但是现在使用64位的SQL Server会遇到问题,因为微软没有提供64位的Jet驱动程序,可以参考:Kb 957570

 

我们不提供 Microsoft OLE DB 提供程序的 64 位版本的 Jet。此外,我们不提供 64 位版本的 Jet ODBC 驱动程序。如果您使用 MicrosoftOLE DB 提供程序为 Jet 或 Jet ODBC 驱动程序连接到 64 位环境中的数据源,则会遇到不同的问题。

例如,您有 jet 使用 Microsoft OLE DB 提供程序的 32 位应用程序。如果迁移应用程序在 64 位模式下运行时,应用程序不能使用 jet 的 Microsoft OLEDB 提供程序连接到数据源。因为应用程序需要对 Jet 的64 位版本的 Microsoft OLE DB 提供程序,则会出现此问题。

How to get a x64 version of Jet? http://blogs.msdn.com/b/psssql/archive/2010/01/21/how-to-get-a-x64-version-of-jet.aspx

 

不过我们可以通过下面的方法访问Excel:

 

1. 通过32位的Express版本作为中转,先将数据倒入Express然后再同步到64位数据库 (需要安装另外的Instance,麻烦)

 

2. 使用SSIS(非常方便)

  

3. 使用Microsoft Access Database Engine 2010 driver

下载路径:http://www.microsoft.com/en-us/download/details.aspx?id=13255

 

安装完之后我直接在自己机器上执行下面的命令查询Excel数据,成功:

 

--开启导入功能

EXEC  sp_configure'show advanced options', 1

GO

RECONFIGURE

GO

EXEC sp_configure'Ad Hoc Distributed Queries',1

GO

RECONFIGURE
--允许在进程中使用ACE.OLEDB.12

USE [master]

GO

 EXEC master . dbo.sp_MSset_oledb_propN'Microsoft.ACE.OLEDB.12.0',N'AllowInProcess',1

GO

 EXEC master . dbo.sp_MSset_oledb_propN'Microsoft.ACE.OLEDB.12.0',N'DynamicParameters',1

GO

 SELECT * FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','DataSource="D:\test\xltest.xlsx";

Extended properties=Excel 12.0')...[Customers$]

 

前提是安装Office 2010 64位版(32位版本的无法安装64位的ACE驱动),网上也有人说用命令 可以,我自己没有试成功。

 

 

原创粉丝点击