Window2003 64位IIS 连接ACCESS 报错“Microsoft.Jet.OLEDB.4.0”

本文详细介绍了如何在64位操作系统环境下解决无法使用MicrosoftOLEDBProviderforJet驱动程序连接Access和Excel数据库的问题。通过设置IIS的运行环境为32位,可以实现这一目标。对于IIS6用户,需通过命令行设置W3SVC/AppPools参数;对于IIS7用户,则只需在应用程序池设置中启用32位应用程序即可。
由于64位操作系统不支持Microsoft OLE DB Provider for Jet驱动程序,也不支持更早的Microsoft Access Driver (*.mdb)方式连接。所以用于Access 和 Excel 数据库的 MicrosoftOLE DB Provider for Jet 在 64 位版本中不可用,也就是说,如下两种连接字符串都已经无法正常工作了:

"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.mappath(db)

"driver=Microsoft AccessDriver (*.mdb);DBQ="&Server.MapPath(db)

既然这样,就只能使用一个办法,将IIS的运行环境设置为32位:

一、IIS6上的做法:

1.命令行键入:

cscript.exe %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1

即设置IIS6允许32位程序运行在64位机器上

2.重新注册.net FrameWorks

%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i

3.完成之后,看Web服务扩展,应该会多出一个32位的asp.net将其设置为允许,缺点:这样会使整个IIS上的所有站点都以32位兼容方式运行 。
运行IIS6,看看是不是解决了。

将其设置为允许,缺点:整个IIS上的所有站点都以32位兼容方式运行

二、IIS7上的做法要简单很多:

应用程序池,高级设置-->允许32位应用程序设置成“True“即可。

### Microsoft Jet OLEDB 4.0Microsoft ACE OLEDB 12.0 的区别 Microsoft Jet OLEDB 4.0Microsoft ACE OLEDB 12.0 是两种不同的数据库驱动程序,主要用于访问 Microsoft Access 数据库和其他数据源。它们在功能、兼容性、性能等方面存在显著差异。 #### 1. **历史背景与支持版本** Microsoft Jet OLEDB 4.0Microsoft Jet 数据库引擎的一部分,主要用于早期版本的 Microsoft Access(如 Access 97 到 Access 2003)。它是一个 32 的驱动程序,不支持 64 操作系统上的应用程序。[^1] Microsoft ACE OLEDB 12.0Jet 引擎的继任者,首次随 Microsoft Office 2007 发布。它不仅支持旧的 `.mdb` 文件格式,还支持新的 `.accdb` 文件格式,包括对多值字段、加密、以及更复杂的数据类型的支持。ACE OLEDB 12.0 同时提供了 32 64 版本,适用于现代操作系统。 #### 2. **文件格式支持** Jet OLEDB 4.0 仅支持 `.mdb` 格式的 Access 数据库文件,这是旧版 Access 使用的文件格式。[^1] ACE OLEDB 12.0 支持 `.mdb` 和 `.accdb` 两种格式。`.accdb` 是 Office 2007 及以后版本引入的新格式,支持更多高级功能,如多值字段、附件类型字段、以及更强大的加密算法。[^1] #### 3. **性能与功能** Jet OLEDB 4.0 在处理小型数据库时表现良好,但在处理大型数据库或复杂查询时可能会遇到性能瓶颈。它缺乏对现代数据库功能的支持,如事务处理、并发控制等。 ACE OLEDB 12.0 在性能上有所提升,尤其是在处理大型数据库和复杂查询时。它支持事务处理、并发控制、以及更复杂的 SQL 语法。此外,ACE OLEDB 12.0 还支持与 Excel、Text 文件等外部数据源的连接,使得数据集成更加灵活。 #### 4. **安全性** Jet OLEDB 4.0 的安全性相对较低,主要依赖于 Windows 用户权限管理和简单的密码保护机制。[^1] ACE OLEDB 12.0 提供了更强的安全性,支持更复杂的加密算法(如 AES),并且可以通过用户权限管理实现更细粒度的安全控制。此外,ACE OLEDB 12.0 还支持数字签名,确保数据库文件的完整性和可信度。 #### 5. **安装与部署** Jet OLEDB 4.0 通常已经预装在 Windows 系统中,尤其是在较旧的 Windows 版本上。然而,它不再被微软推荐用于新开发项目,且不支持 64 操作系统上的应用程序。 ACE OLEDB 12.0 需要单独安装,可以通过 Microsoft Access Database Engine 安装包获取。它支持 32 64 操作系统,并且可以与 Office 2007 及以后版本一起安装。需要注意的是,在 64 系统上运行 32 应用程序时,可能需要安装 32 版本的 ACE OLEDB 驱动程序。 #### 6. **应用场景** Jet OLEDB 4.0 适用于旧版 Access 数据库,尤其是那些仍在使用 `.mdb` 文件格式的应用程序。对于需要向后兼容的场景,Jet OLEDB 4.0 仍然是一个可行的选择,但不建议用于新项目。 ACE OLEDB 12.0 更适合现代应用程序,尤其是那些需要处理 `.accdb` 文件格式、复杂数据类型、以及更高安全性和性能要求的应用程序。它是 Office 2007 及以后版本的标准数据库引擎,适用于新开发项目和现有项目的升级。 ### 示例代码:使用 ACE OLEDB 12.0 连接 Access 数据库 以下是一个使用 ACE OLEDB 12.0 连接 Access 数据库的示例代码: ```vb Sub ConnectToAccess() Dim conn As Object Set conn = CreateObject("ADODB.Connection") ' 连接字符串,假设数据库文件为 new.accdb conn.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\path\to\your\database\new.accdb;" ' 执行查询 Dim rs As Object Set rs = CreateObject("ADODB.Recordset") rs.Open "SELECT * FROM YourTableName", conn ' 处理结果集 Do While Not rs.EOF Debug.Print rs.Fields(0).Value rs.MoveNext Loop ' 关闭连接 rs.Close conn.Close End Sub ``` 这段代码展示了如何使用 VBA 连接到一个 `.accdb` 格式的 Access 数据库,并执行一个简单的查询。通过使用 ACE OLEDB 12.0,开发者可以更轻松地处理现代 Access 数据库的功能。 ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值