Microsoft Data Access Components

Microsoft Data Access ComponentsMDAC)是微軟專門為資料存取功能而發展的應用程式開發介面,做為微軟的統一化資料存取(Universal Data Access; UDA)解決方案的核心組成,最初的版本在1996年8月發表。目前其組成元件有ODBCOLE DB以及ADO,其中ADO是在Visual Basic上唯一的資料存取管道,而OLE DB則是基於COM之上,供C/C++存取與提供資料的介面,ODBC則是統一化的資料存取API。

MDAC (Microsoft Data Access Components)
MDAC是微軟Windows平台的統一資料存取方案
開發者Microsoft
当前版本2.8 SP1(2.81.1117.6)(May 2005)
操作系统Windows 98, Windows Me, Windows NT 4, Windows 2000, Windows XP, Windows Server 2003
类型Database
许可协议Microsoft EULA
网站Microsoft MDAC Center

体系架构

MDAC体系架构可视作三层:

  1. 编程界面层:包括ADOADO.NET
  2. 数据库访问层,由数据库制造商开发,如:Oracle或Microsoft的OLE DB、.NET managed providers、ODBC drivers
  3. 数据库自身。

开发者还能直接写程序访问OLE DB或ODBC。

組成元件

MDAC中包含了下列的元件:

SQL Server用戶端網路函式庫

SQL Server Network Client Library(在SQL Server 2005時由SQL Native Client取代)是要連接SQL Server所必要的用戶端函式庫,提供必要的資料流轉譯的支援,並作為OLE DB Provider for SQL Server, ODBC SQL Server Driver, SQL Server .NET Provider等資料提供者的底層通訊函式庫。

ADO

為以COM為基礎所開發的資料存取元件,供高階程式語言使用,像是腳本語言(Scripting Language)或是Visual Basic,目前已被Microsoft Windows平台上的開發人員廣為採用,它向上提供數個物件類別供應用程式呼叫,向下則是呼叫OLE DB所提供的介面,因此資料庫必須要有OLE DB Provider,才可以由ADO呼叫,這個機制在.NET Framework中的ADO.NET中也持續採用。

OLE DB

OLE DB是作為由資料來源中撈取資料並接受來自ADO的指令來提供資料的介面,此介面是由COM規格所開發,同時也可以直接由C/C++來存取。

ODBC

ODBC(Open Database Connectivity)是由SQL Access Group,X/Open(目前為The Open Group的一部份)以及ISO/EIC所提出的Call Level Interface(CLI,呼叫層次介面)介面規格[1],由微軟開發出第一份ODBC的實作,每一個資料庫都可以實作出連結自家資料來源的ODBC驅動程式(Driver),而應用程式開發人員能夠利用ODBC所開放的API呼叫,經由ODBC Driver來進入資料庫進行存取以及處理工作。

Jet資料庫工具

微軟特別為Microsoft Jet的資料庫提供了兩個重要的元件:

  • ADOX:可由開發人員經由封裝在ADOX中的DDL和DCL能力來對Microsoft Access資料庫執行資料庫物件的修改以及權限上的控制。
  • JRO:可由開發人員經由封裝在JRO中的物件,對Microsoft Access資料庫執行複製,修補與壓縮等工作。

曾內含在MDAC中的元件

  • Embedded SQL/C(ESQL/C):在C語言中內嵌SQL,送到資料庫中執行,ESQL/C在SQL Server 7.0起終止。
  • RDO(Remote Data Object):為提供網路資料存取所開發的元件,當時ADO尚未成熟,目前已由ADO取代。
  • DAO(Data Access Object):為早期Microsoft Access的官方API,但目前已由ADO取代,其DDL功能也由ADOX所取代。
  • DB-Library:為C語言直接存取SQL Server的專屬低階介面,在SQL Server 2005起終止支援。

版本列表

微軟提供了兩個方法來檢查電腦中所安裝的MDAC版本為何,其中一個方法是使用ADO.NET Component Checker程式,它可以檢查每個MDAC所安裝的DLL版本;另一個方法是檢查登錄資料庫機碼:HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVer

版本 釋出日期 散布方法 功能 安全漏洞
1.0 1996/8
  • ADC – IIS 3.0
  • OLE DB 1.1 SDK(OLE DB 1.1 and ADO 1.0) - Visual Studio
  • 所有的元件都包含在Visual Interdev 1.0與ASP 1.0(released in IIS 3.0)
  • ODBC 3.0
  • OLE DB 1.1
  • ADO 1.0
  • ADC 1.0
  • Access/Jet, SQL Server與Oracle databases的ODBC Driver
1.5 1997/9-1998/3
  • Microsoft Internet Explorer 4.0
  • Internet Client SDK 4.0(from CD issued at Microsoft PDC)
  • ODBC 3.5
  • OLE DB 1.5
  • ADO 1.5
  • RDS 1.5(superseded ADC 1.0)
1.5a 1997/9-1998/3
  • Microsoft網站
服務釋出版(Service Release)
1.5b 1997/9-1998/3 服務釋出版(Service Release)
1.5c 1997/9-1998/3
  • Microsoft網站
  • 修補ADO使用執行緒與ODBC連線池的問題。
  • 隨MDAC/ADO執行期函式庫散布。
2.0 1998/7/1
  • Visual Studio 98
  • Data Access 2.0 SDK
  • ODBC 3.5 SDK
  • OLE DB 1.5 SDK
  • OLE DB for OLAP規格
2.0SP1 1998/7/1
  • Windows NT 4.0 SP4
Windows NT 4.0的Y2K修正
2.0SP2 1998/7/1
  • Microsoft網站
所有平台的Y2K修正
2.1 1998/7/11
  • SQL Server 7.0
  • SQL Server 6.5 SP5
  • ADO 2.1
  • RDS 2.1
  • OLE DB 2.1
  • OLE DB Provider for ODBC, SQL Server and Oracle
  • JRO 2.1
  • ODBC driver
  • Jet driver
  • RDO
2.1 SP1 1999/3/15
  • Internet Explorer 5.0
  • Windows 98 Second Edition
2.1 SP1a (GA) 1999/4/1
  • Office 2000
  • BackOffice 4.5
  • Visual Studio 98 SP3
  • Internet Explorer 5.0a(最小安裝)
2.1 SP2 1999/7
  • Microsoft網站
2.5 2000/2/17
  • ADO 2.5
  • ADO MD 2.5
  • ADOX 2.5
  • RDS 2.5
  • OLE DB 2.5
  • 下列軟體的OLE DB Provider for the ODBC driver:
    • SQL
    • Server
    • Site Server Search
    • Internet Publishing
    • Jet 4.0(Access 2000)
    • Oracle
    • Indexing Services (Index Server)
    • Microsoft Data Shaping Services
    • OLAP Services
    • DTS Packages
    • Microsoft Directory Services
    • Server DTS Flat File
    • OLE DB Simple Provider
  • JRO 2.5
  • ODBC 3.51
  • ODBC驅動程式
    • Microsoft Access
    • SQL Server
    • Microsoft Excel
    • Text
    • Visual FoxPro
    • FoxPro VFP
    • dBase
    • dBase VFP
    • Paradox
    • Oracle
  • Jet驅動程式:
    • Excel
    • Microsoft Exchange
    • Access
    • text files
    • Lotus 1-2-3
    • Paradox
    • xBase
2.5 SP1 2000/7
2.5 SP2 2000/4
2.5 SPS3 2003/12
2.6 2000/9 不包含(手動安裝):
  • Microsoft Jet
  • Microsoft Jet OLE DB Provider
  • ODBC Desktop Database Drivers
2.6 SP1 2001/5
2.6 SP2 2002/5
2.7 2001/10|
  • 支援64位元作業系統
  • 移除對Banyan Vines的支援
2.8 2003/8 修補臭蟲與安全問題:
2.8 SP1 2005/5
  • SQL Server 2000 SP4
  • Windows XP SP2
  • Microsoft網站
Fixed bugs
2.8 SP2 2005/3
  • Windows Server 2003 SP1
9.0 由此時開始,MDAC隨作業系統散布。
  • Visual Studio 2005 Beta 1,但在稍後移除。
  • SQL Server 2005 Beta 1,但在稍後移除。[1]
   
Windows DAC 6.0(與Vista所使用的MDAC版本不同) 2006/11
  • Windows Vista
  • 版本號碼與Windows同步,不再提供可轉散布套件。
沒有新功能,由Windows Vista使用。

參考資料

  1. ^ Chapter 11 Changes页面存档备份,存于互联网档案馆), supplementary material to "A First Look at SQL Server 2005 for Developers" by Bob Beauchemin, Niels Berglund, and Dan Sullivan.