摘要:本文档提供关于“Microsoft 数据访问组件 (MDAC) 2.5”重新分配堆栈的详细说明,以及对在运行 Microsoft(R) Windows(R) 2000 或 Microsoft Windows Millennium 的计算机上的文件进行“Windows 文件保护”的效果 - 包括关于在 Windows 2000 或 Windows Millennium 上如何恢复被损坏的安装的信息。本文档还提供将 MDAC 2.5 重新分配堆栈分配给它的各个独立组件的细目,并阐述每种技术的特点。
注意 尽管提供了 MDAC 堆栈的分类细目,我们仍大力推荐全部采用或全部不采用关于 MDAC 2.5 重新分配的策略。请参阅“最终用户许可协议”(在 Mdaceula.txt 中)以获取关于重新分配 MDAC 2.5 的详细信息。另外从此以后,MDAC 2.5 重新分配堆栈将被称为 MDAC 2.5 堆栈。最后,“Windows 文件保护 (WFP)”开始被称为“系统文件保护 (SFP)”,因而任何涉及 WFP 之处也指 SFP。
目录
简介
MDAC 2.5 堆栈可大致分为 ActiveX 数据对象 (ADO)、OLE DB、开放式数据库连接 (ODBC)、远程数据服务 (RDS)、Microsoft Jet 和 Microsoft Visual FoxPro(R) 组件。这些组件彼此密切相关。例如,如果没有 ODBC 核心、OLE DB 核心和后端数据库的 OLE DB 提供者或 ODBC 驱动程序,ADO 组件就无法正常工作。
Windows 文件保护和 MDAC 2.5
Windows 操作系统的一个历史遗留问题是:安装与操作系统无关的程序会改写共享的系统文件。此类安装后,用户经常遇到意想不到的系统性能,从应用程序错误到操作系统崩溃。此问题影响几类文件,最常见的是“动态链接库 (DLL)”和可执行文件 (EXE),这一问题通常被称为“DLL Hell(该死的 DLL)”(有关详细信息,请参见“参考文献”一节列出的该死的 DLL 的终结。)
Windows 2000 具有称为“Windows 文件保护 (WFP)”的新功能,它可以防止 Windows 2000 所配置的系统文件被不属于操作系统更新的安装所替换。由于防止了基本的系统文件被替换,现在可以避免文件版本不匹配的情况了。
哪些 MDAC 文件受到 WFP 的保护?
所有受 WFP 保护的 MDAC 文件单列于本文档的 MDAC 技术章节的表格中。WFP 列中的“1”表示它受 WFP 的保护,“0”表示它不受 WFP 的保护。
如果 Windows 2000 上 MDAC 2.5 文件的安装被损坏,如何在不重新安装操作系统的前提下修复?
MDAC 2.5 随 Windows 2000 提供。WFP 将防止多数 MDAC 2.5 DLL 被更改。万一 MDAC 2.5 WFP DLL 被损坏,请向 Microsoft“产品支持服务”求助。损坏的非 WFP 文件,可通过从 MDAC 2.5 堆栈复制正确的文件而复原。
MDAC 2.5 堆栈及其组件
本文档的其余章节将详细讨论每种 MDAC 技术,每节包括一个提供以下信息的表:
给定的组件所包含的所有文件名
是否每个文件都受到“Windows 文件保护”(0 = 否,1 = 是)
从中找到该文件的组件发行版本
该文件的简短说明
文件的位置
下表给出了位置列缩写的含义。
图例
含义
例子
\HELP
<Drive>:\<Windir>\help
C:\Winnt\help
\SYS
<Drive>:\<Windir>\<Systemdir>
C:\Winnt\System32
\OLEDB
<Drive>:\<programfiles>\<commonfiles>\System\ole db
C:\Program Files\Common Files\System\oledb
\ADO
<Drive>:\<programfiles>\<commonfiles>\System\Ado
C:\Program Files\Common Files\System\ado
\RDS
<Drive>:\<programfiles>\<commonfiles>\System\Msadc
C:\Program Files\Common Files\System\msadc
此外,一些组件在 \HELP 文件夹中提供了它们自己的“HTML 帮助”文件。
ADO
ADO 是“通用数据访问 (UDA)”的旗舰应用程序编程接口 (API)。ADO 2.5 提供了新的对象,Record 对象和 Stream 对象,它们能够通过 Microsoft OLE DB Provider for Internet Publishing (MSDAIPP),从 URL 检索数据。另外,传统的 ADO 对象,如 Connection 和 Recordset 对象,连同新的对象,可以直接绑定到 URL 并检索数据。ADO 2.5 也提供对半结构化数据(也称为不规则的或非矩形的数据)的支持。
在 MDAC 2.5 中,ADO 包含 ADOX 和 ADO MD 子组件。除了 ADO 对象模型以外,ADO 核心组件还包括资源和行集合帮助器库,以及 ADO 2.0 和 2.1 类型库。ADO MD - 展示多维数据的高级对象模型,被包含在一个 DLL (msadomd.dll),也就是 ADOX (msadox.dll) 中。ActiveX 数据对象 2.1 类型库是 MDAC 2.5 的新增内容。
MDAC 2.5 ADO 堆栈
组件
文件名
WFP
x86 版本
位置
说明
ADO
adojavas.inc
0
\ADO
ADO JavaScript 包含文件
ADO
adovbs.inc
0
\ADO
ADO VBScript 包含文件
ADO
msader15.dll
1
2.50.4403.3
\ADO
ActiveX 数据对象资源
ADO
msado15.dll
1
2.50.4403.3
\ADO
ActiveX 数据对象
ADO
msado20.tlb
1
2.50.4403.3
\ADO
ActiveX 数据对象 2.0 类型库
ADO
msado21.tlb
1
2.50.4403.3
\ADO
ActiveX 数据对象 2.1 类型库
ADO
msador15.dll
1
2.50.4403.3
\ADO
ActiveX 数据对象
ADO
msadrh15.dll
1
2.50.4403.3
\ADO
ActiveX 数据对象行集合帮助器
ADOMD
msadomd.dll
1
2.50.4403.3
\ADO
ActiveX 数据对象(多维)
ADOX
msadox.dll
1
2.50.4403.3
\ADO
数据定义语言和安全的 ActiveX 数据对象扩展 (ADOX)
ODBC
ODBC 仍然是广泛用于数据库访问的 API。它基于来自 X/Open 和 ISO/IEC 的、针对数据库 API 的“调用级接口 (CLI)”规范,并使用“结构化查询语言 (SQL)”作为其数据库访问语言。它给客户机提供了统一的方法和相同的源代码,来访问来自于不同数据库管理系统的相关数据。
除了形实替换程序 DLL 外,ODBC 组件还包括非常重要的“ODBC 驱动程序管理器”、“Windows 2000 组件服务”(如果您使用的是 Microsoft Windows NT(R) 连接池管理器,则是 MTS)、驱动程序管理器跟踪 DLL 和 ODBC 游标库。其他组件包括 ODBC 资源文件、安装程序 DLL 和“驱动程序配置”程序文件。
ODBC 管理器仍然形成 ODBC 核心的整体部分,另一个注释文件是安装在 \WIN 文件夹中的“ODBC HTML 帮助”文件。
MDAC 2.5 ODBC 堆栈
组件
文件名
WFP
版本
位置
说明
ODBC
ds16gt.dll
1
3.510.3711.0
\SYS
ODBC 16 位驱动程序设置通用形实替换程序
ODBC
ds32gt.dll
1
3.520.4403.2
\SYS
ODBC 驱动程序设置通用形实替换程序
ODBC
mtxdm.dll
0
1997.11.532.0
\SYS
MTS 连接池 - DBC 驱动程序管理器
ODBC
odbc16gt.dll
1
3.510.3711.0
\SYS
ODBC 16 位通用形实替换程序
ODBC
odbc32.dll
1
3.520.4403.2
\SYS
ODBC 驱动程序管理器
ODBC
odbc32gt.dll
1
3.520.4403.2
\SYS
ODBC 驱动程序通用形实替换程序
ODBC
odbcad32.exe
1
3.520.4403.2
\SYS
ODBC 管理员
ODBC
odbcconf.dll
1
3.520.4403.2
\SYS
ODBC 驱动程序配置程序
ODBC
odbcconf.exe
1
3.520.4403.2
\SYS
ODBC 驱动程序配置程序
ODBC
odbcconf.rsp
0
\SYS
ODBC 驱动程序配置文件
ODBC
odbccp32.cpl
1
3.520.4403.2
\SYS
ODBC 控制面板
ODBC
odbccp32.dll
1
3.520.4403.2
\SYS
ODBC 安装程序
ODBC
odbccr32.dll
1
3.520.4403.2
\SYS
ODBC 光标库
ODBC
odbccu32.dll
1
3.520.4403.2
\SYS
ODBC 光标库
ODBC
odbcinst.chm
0
\HELP
ODBC HTML 帮助
ODBC
odbcint.dll
1
3.520.4403.2
\SYS
ODBC 资源
ODBC
odbctrac.dll
1
3.520.4403.2
\SYS
ODBC 驱动程序管理器跟踪
OLE DB
OLE DB 提供一套用来访问关系型和非关系型数据的 COM 接口。OLE DB 2.5 引入了一套设计为合并半结构化数据模型的新接口。它有效地添加了对分层数据仓库、非矩形结果集和通过 URL 直接到对象的绑定的支持。举例来说,文件仓库和消息仓库是分层仓库,简单或复杂的文档、电子邮件等是非矩形数据。对此类访问的支持,是通过 OLE DB 行和流对象、直接绑定和作用域操作能力来提供的。
除了新的接口外,形成 OLE DB 核心的对象通常是相同的。不过,一个显著的新功能是根绑定器对象,它提供直接绑定到 URL 并检索非矩形数据的机制。其他新功能包括 OLE DB 2.5 运行时例程和 OLE DB JavaScript 以及 VBScript 包含文件。
MDAC 2.5 OLE DB 堆栈
组件
文件名
WFP
版本
位置
说明
OLE DB
msdadc.dll
1
2.50.4403.0
\OLEDB
OLE DB 数据转换存根
OLE DB
msdaenum.dll
1
2.50.4403.0
\OLEDB
OLE DB 根计数器存根
OLE DB
msdaer.dll
1
2.50.4403.0
\OLEDB
OLE DB 错误集合存根
OLE DB
msdaosp.dll
1
2.50.4403.0
\OLEDB
OLE DB 简单提供者
OLE DB
msdaps.dll
1
2.50.4403.2
\OLEDB
OLE DB 接口代理/存根
OLE DB
msdart32.dll
1
2.50.4403.0
\SYS
OLE DB 运行时例程
OLE DB
msdasc.chm
0
\HELP
OLE DB 服务组件 HTML 帮助文件
OLE DB
msdasc.dll
1
2.50.4403.0
\OLEDB
OLE DB 服务组件存根
OLE DB
msdasql.dll
1
2.50.4403.0
\OLEDB
ODBC 驱动程序的 OLE DB 提供者
OLE DB
msdasqlr.dll
1
2.50.4403.0
\OLEDB
ODBC 驱动程序资源的 OLE DB 提供者
OLE DB
msdatl2.dll
1
2.50.4403.0
\OLEDB
OLE DB 实现支持例程
OLE DB
msdatt.dll
1
2.50.4403.0
\OLEDB
OLE DB 临时表服务
OLE DB
msdaurl.dll
1
9.1.4403.0
\OLEDB
OLE DB 根装订库存根
OLE DB
msxactps.dll
1
2.50.4403.0
\OLEDB
OLE DB 事务代理/存根
OLE DB
oledb32.dll
1
2.50.4403.3
\OLEDB
OLE DB 核心服务
OLE DB
oledb32r.dll
1
2.50.4403.2
\OLEDB
OLE DB 核心服务资源
OLE DB
oledb32x.dll
1
2.50.4403.0
\OLEDB
OLE DB 扩展
OLE DB
oledbjvs.inc
0
\OLEDB
OLE DB JavaScript 包含文件
OLE DB
oledbvbs.inc
0
\OLEDB
OLE DB VBS 包含文件
SQL Server
与 MDAC 2.1 版相比,SQL Server 的子组件列表没有变化。这些子组件与 SQL Server ODBC 驱动程序和 OLE DB Provider for SQL Server 相关。再说,此处的分类细目是基于产品而不是基于相关性的。因此,尽管 SQL Server ODBC 驱动程序依赖于网络库,但网络库仍列于 SQL Server OLE DB 之下。其他重要的子组件包括代码页转译器、客户配置实用程序、SQL 企业组件和 SQL Server 目录更新。
MDAC 2.5 SQL Server ODBC 和 OLE DB 堆栈
组件
文件名
WFP
版本
位置
说明
SQL Server ODBC
12520437.cpx
1
\SYS
SQL Server 代码页转译器
SQL Server ODBC
12520850.cpx
1
\SYS
SQL Server 代码页转译器
SQL Server ODBC
cliconf.hlp
0
\SYS
SQL Server 客户机配置帮助文件
SQL Server ODBC
cliconfg.DLL
0
1999.5.27.0
\SYS
客户机配置实用程序
SQL Server ODBC
cliconfg.exe
0
1999.5.27.0
\SYS
客户机配置实用程序
SQL Server ODBC
odbcbcp.dll
0
3.70.8.12
\SYS
BCP for ODBC
SQL Server ODBC
sqlsodbc.hlp
0
\SYS
SQL Server ODBC 帮助
SQL Server ODBC
sqlsrv32.dll
0
3.70.8.12
\SYS
SQL Server ODBC 驱动程序
SQL Server ODBC
sqlstr.dll
0
1999.5.27.0
\SYS
SQL 企业组件的函数 DLL
SQL Server ODBC
sqlwid.dll
0
1999.5.27.0
\SYS
SQL 企业组件的函数 DLL
SQL Server ODBC
sqlwoa.dll
0
1999.5.27.0
\SYS
SQL 企业组件的函数 DLL
SQL Server OLE DB
dbmsadsn.dll
0
1999.5.27.0
\SYS
Pipes Net DLL for SQL Clients
SQL Server OLE DB
dbmsrpcn.dll
0
1999.5.27.0
\SYS
RPC 网络库
SQL Server OLE DB
dbmsshrn.dll
0
1999.5.27.0
\SYS
RPC 网络库
SQL Server OLE DB
dbmssocn.dll
0
1999.5.27.0
\SYS
Net DLL for SQL Server
SQL Server OLE DB
dbmsspxn.dll
0
1999.5.27.0
\SYS
NWLINK SPX WINSOCK 网络库
SQL Server OLE DB
dbmsvinn.dll
0
1999.5.27.0
\SYS
VINES 网络库
SQL Server OLE DB
dbnmpntw.dll
0
1999.5.27.0
\SYS
Pipes Net DLL for SQL Clients
SQL Server OLE DB
instcat.sql
0
\SYS
SQL Server SP 目录更新器
SQL Server OLE DB
sqloledb.dll
0
7.1.8.14
\OLEDB
OLE DB Provider for SQL Server
SQL Server OLE DB
SQLSOLDB.hlp
0
\OLEDB
SQL Server OLE DB 帮助
Oracle
在 MDAC 2.5 中,Oracle 组件,包括 Oracle Call Interface (OCI) DLL 和代码页转译器,对于“Oracle ODBC 驱动程序”和 OLE DB Provider for Oracle 是不变的。
MDAC 2.5 Oracle ODBC 和 OLE DB 堆栈
组件
文件名
WFP
版本
位置
说明
Oracle ODBC
mscpxl32.dll
1
3.60.3.20
\SYS
ODBC 代码页转译器
Oracle ODBC
msorcl32.chm
0
\HELP
Oracle ODBC 驱动程序帮助(编译的 HTML)
Oracle ODBC
msorcl32.dll
1
2.573.4403.0
\SYS
ODBC Driver for Oracle
Oracle ODBC/OLE DB
mtxoci.dll
0
1999.6.854.0
\SYS
MTS - Oracle OCI
Oracle OLE DB
msdaora.dll
1
2.50.4403.0
\OLEDB
OLE DB Provider for Oracle
Microsoft Jet
Microsoft Jet 在 MDAC 2.5 堆栈中有 28 个子组件。通常除了“HTML 帮助”文件之外,此列表是不变的。Jet 组件包括带无数 ISAM 的 Jet Engine、协调库、复制库、排序库、表达式服务二进制、Jet ODBC 驱动程序、OLE DB Provider for Microsoft Jet 以及 Microsoft Jet 和复制 (JRO) 对象。
MDAC 2.5 Microsoft Jet 堆栈
组件
文件名
WFP
版本
位置
说明
Jet
expsrv.dll
1
6.0.0.8540
\SYS
VBA 运行时 - 表达式服务
Jet
msexch40.dll
1
4.0.2927.2
\SYS
Jet Exchange ISAM
Jet
msexcl40.dll
1
4.0.2927.2
\SYS
Jet Excel ISAM
Jet
msjet40.dll
1
4.0.2927.4
\SYS
Jet 引擎库
Jet
msjint40.dll
1
4.0.2927.2
\SYS
Jet Database Engine International DLL
Jet
msjter40.dll
1
4.0.2927.2
\SYS
Jet Database Engine Error DLL
Jet
msjtes40.dll
1
4.0.2927.6
\SYS
Jet Expression Service
Jet
msltus40.dll
1
4.0.2927.2
\SYS
Jet Lotus 1-2-3 ISAM
Jet
mspbde40.dll
1
4.0.2927.2
\SYS
Jet Paradox ISAM
Jet
msrd2x40.dll
1
4.0.2927.2
\SYS
(R) Red ISAM
Jet
msrd3x40.dll
1
4.0.2927.4
\SYS
(R) Red ISAM
Jet
msrecr40.dll
0
4.00.2927.2
\SYS
协调器资源库
Jet
msrepl40.dll
1
4.0.2927.2
\SYS
复制库
Jet
mstext40.dll
1
4.0.2927.6
\SYS
Jet Text ISAM
Jet
mswdat10.dll
1
4.0.2927.2
\SYS
Jet 排序表
Jet
mswstr10.dll
1
4.0.2927.2
\SYS
Jet 排序库
Jet
msxbde40.dll
1
4.0.2927.2
\SYS
Jet xBASE ISAM
Jet
vbajet32.dll
1
6.0.1.8268
\SYS
VBA 开发环境 - Expression Service Loader
Jet ODBC
odbcjet.chm
0
\HELP
Jet ODBC HTML 帮助
Jet ODBC
odbcji32.dll
1
4.0.4403.2
\SYS
ODBC 桌面驱动程序包 3.5
Jet ODBC
odbcjt32.dll
1
4.0.4403.2
\SYS
ODBC 桌面驱动程序包 3.5
Jet ODBC
oddbse32.dll
1
4.0.4403.2
\SYS
DBase 的 (3.0) 驱动程序
Jet ODBC
odexl32.dll
1
4.0.4403.2
\SYS
Excel 的 (3.0) 驱动程序
Jet ODBC
odfox32.dll
1
4.0.4403.2
\SYS
FoxPro 的 (3.0) 驱动程序
Jet ODBC
odpdx32.dll
1
4.0.4403.2
\SYS
Paradox 的 (3.0) 驱动程序
Jet ODBC
odtext32.dll
1
4.0.4403.2
\SYS
文本文件的 (3.0) 驱动程序
Jet OLE DB
msjetoledb40.dll
1
4.0.2927.2
\SYS
Jet 的 OLE DB 提供者
JRO
msjro.dll
1
2.50.4403.3
\ADO
Jet 和复制对象
RDS
在 MDAC 2.5 中,RDS 子组件的列表与 MDAC 2.1 相比没有变化。该堆栈包含以下组件和相关资源:RDSServer.DataFactory 对象及其处理器、RDS.DataControl 对象、RDS ISAPI 库、Data Shaping Service for OLE DB、OLE DB 永久提供者、OLE DB 远程提供者和 OLE DB 的 OLE DB 游标服务。
MDAC 2.5 RDS 堆栈
组件
文件名
WFP
版本
位置
说明
RDS
adcjavas.inc
0
\RDS
RDS JavaScript 包含文件
RDS
adcvbs.inc
0
\RDS
RDS VBScript 包含文件
RDS
HANDLER.reg
0
\RDS
设置默认 RDS 处理器的 REG 文件
RDS
handsafe.reg
0
\RDS
制作始终需要安全处理器的 RDS 的 REG 文件
RDS
handunsf.reg
0
\RDS
制作不需要安全处理器的 RDS 的 REG 文件
RDS
msadce.dll
1
2.50.4403.0
\RDS
OLE DB 游标引擎
RDS
msadcer.dll
1
2.50.4403.0
\RDS
OLE DB 游标引擎资源
RDS
msadcf.dll
1
2.50.4403.0
\RDS
远程数据服务 DataFactory
RDS
msadcfr.dll
1
2.50.4403.0
\RDS
远程数据服务 DataFactory 资源
RDS
msadco.dll
1
2.50.4403.0
\RDS
远程数据服务 DataControl
RDS
msadcor.dll
1
2.50.4403.0
\RDS
远程数据服务 DataControl 资源
RDS
msadcs.dll
1
2.50.4403.0
\RDS
远程数据服务 ISAPI 库
RDS
msadds.dll
1
2.50.4403.0
\RDS
OLE DB Data Shaping 服务
RDS
msaddsr.dll
1
2.50.4403.0
\RDS
OLE DB Data Shaping 服务资源
RDS
msdaprsr.dll
1
2.50.4403.2
\RDS
OLE DB 永久提供者资源
RDS
msdaprst.dll
1
2.50.4403.2
\RDS
OLE DB 永久提供者
RDS
msdarem.dll
1
2.50.4403.2
\RDS
OLE DB 远程提供者
RDS
msdaremr.dll
1
2.50.4403.2
\RDS
OLE DB 远程提供者资源
RDS
msdatsrc.tlb
1
9.0.4403.0
\SYS
数据源接口
RDS
msdfmap.dll
1
2.50.4403.0
\RDS
DataFactory 处理程序
RDS
msdfmap.ini
0
\WIN
配置默认 RDS 处理程序的 INI 文件
Visual FoxPro
Visual FoxPro 组件包括 Visual FoxPro ODBC 驱动程序及其相应的帮助文件。
MDAC 2.5 Visual FoxPro 堆栈
组件
文件名
WFP
版本
位置
说明
Visual FoxPro
drvvfp.chm
0
\HELP
Visual FoxPro ODBC 驱动程序 HTML 帮助
Visual FoxPro
vfpodbc.dll
1
6.1.8440.1
\SYS
Visual FoxPro ODBC 驱动程序
参考文献