搜尋本站文章

2010-08-02

認識 MDAC、WDAC、SQL Server Native Client、檢查 MDAC 版本

MDAC、WDAC

程式設計師可以使用 MDAC\WDAC 來存取關連性(relational)與非關連性(non-relational)的資料來源。而這些資料來源包含了: Open Database Connectivity (ODBC)、ActiveX Data Objects (ADO) 或 OLE DB 等。

MDAC(Microsoft Data Access Components)

WDAC(Windows Data Access Components )
從 Windows Vista 開始,資料存取元件現在稱為 Windows Data Access Components 或 Windows DAC(WDAC)(原本是稱為 MDAC)。

請參考 MDAC\WDAC 現行的架構圖:

01_MDAC_WDAC Architecture

  • ADO:包含了 ADO(ActiveX Data Objects )、ADOMD(ADO Multi-Dimensional )、ADOX(ADO Extensions for DDL and Security) 等。
  • OLE DB:包含了 OLE DB Core Services、SQL Server OLE DB Provider、Oracle OLE DB Provider、OLE DB Provider for ODBC Drivers、Data Shape Provider 以及 Remote Data Provider 等。
  • ODBC(Open Database Connectivity):包含了 ODBC Driver Manager、SQL ODBC Driver 與 Oracle ODBC Driver 等。

MDAC/WDAC 的版本

請參考下表所示:

02_MDAC 版的清單

MDAC 2.6:
MDAC 2.6 RTM, SP1, and SP2 were included with Microsoft SQL Server 2000 RTM, SP1, and SP2, respectively.
Additionally, these MDAC service packs were released to the MDAC Web site in accordance with the Microsoft SQL Server 2000 service-pack release schedule.
You can install this version of MDAC and its service packs on Windows 2000, Windows Millennium Edition, Windows NT, Windows 95, and Windows 98 platforms.
This version of MDAC no longer is supported.

MDAC 2.7:
This version of MDAC was included with the Microsoft Windows XP RTM and SP1 operating systems.
You can install this version of MDAC and its service packs on Windows 2000, Windows Millennium, Windows NT, and Windows 98 platforms.
You can install this version on the Windows XP platform only through the operating system or its services packs.
This version of MDAC no longer is supported.

MDAC 2.8:
This version of MDAC was included with Windows Server 2003 and Windows XP SP2 and later.
You also can install this version of MDAC and its service packs on Windows 2000.
The 32-bit version of MDAC 2.8 also was released to the MDAC Web site at the same time that Windows Server 2003 was released to the customer.
The 64-bit version of MDAC 2.8 was released with the 64-bit version of Windows Server 2003 and Windows XP.

Windows Data Access Components (WDAC):
MDAC changed its name to WDAC - "Windows Data Access Components" since Windows Vista and Windows Server 2008.
WDAC is included as part of the operating system and is not available separately for redistribution. Serviceability for WDAC is subject to the life cycle of the operating system.
32-bit and 64-bit versions of WDAC are released with the 32-bit and 64-bit versions of the Windows operating systems, respectively.


若要檢查 MDAC 或 WDAC 的版本

檢查儲存在登錄中的版本資訊
雖然這不是檢查 MDAC 版本最可靠的方式,但所檢查的版本資訊登錄卻是仔細檢查此資訊一個很簡單的方式。(如果您沒有遇到與 MDAC 相關的問題的話)。

可在下列機碼中找到版本資訊:
HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess\FullInstallVer

  1. 若要檢查該登錄,請依照下列步驟執行:
  2. 在 「開始」 功能表上,按一下 「執行」。
  3. 在 「開啟」 文字方塊中,輸入 regedit 然後按一下 「確定」;如此便會啟動 「登錄編輯程式」。
  4. 在 「功能窗格」 中,向下展開至下列路徑:
    HKEY_LOCAL_MACHINE\Software\Microsoft\DataAccess
  5. 在 「詳細資料」 窗格中,查看 FullInstallVer 和 版本 的 「名稱」 欄。「資料」 欄中的每一個機碼都有相對應的版本資訊。
    完成之後,在 「登錄」 功能表上按一下 「結束」 以關閉 「登錄編輯程式」。

請參考下圖所示:

03_檢查儲存在登錄中的版本資訊

環境說明:

Windows Server 2008 R2 + SQL Server 2008 R2。


SQL Server Native Client


在 SQL Server 2005 版本,導入了 SQL Server Native Client,這是用於 OLE DB 和 ODBC 的獨立資料存取應用程式開發介面 (API)。
SQL Server Native Client 將 SQL OLE DB 提供者和 SQL ODBC 驅動程式結合為單一的原生動態連結程式庫 (DLL)。

SQL Server Native Client 可用於建立新的應用程式,或者加強需要利用 SQL Server 2005 所推出之新功能 (例如,Multiple Active Result Set (MARS)、使用者定義資料類型 (UDT)、查詢通知、快照集隔離和 XML 資料類型支援) 的現有應用程式。

SQL Server Native Client 介面提供了遠超過 MDAC/WDAC 的功能。

雖然 SQL Server Native Client 與 MDAC 都提供 SQL Server 資料庫的原生資料存取權,但是 SQL Server Native Client 是專為公開 SQL Server 2005 的新功能而設計,同時還保留了與舊版的回溯相容性。

選擇使用 SQL Server 2008 R2 Native Client 的時機

決定是否要使用 SQL Server Native Client 當做應用程式的資料存取技術時,您應該考慮許多因素。

對於新的應用程式而言,如果您正在使用 Microsoft Visual C# 或 Visual Basic 等 Managed 程式語言,而且需要存取 SQL Server 中的新功能,則應該使用 .NET Framework Data Provider for SQL Server (屬於 .NET Framework 的一部分)。

如果您正在開發以 COM 為基礎的應用程式,而且需要存取 SQL Server 所導入的新功能,則應該使用 SQL Server Native Client。
如果您不需要存取 SQL Server 的新功能,可以繼續使用 Microsoft Data Access Components (MDAC)。

對於現有的 OLE DB 和 ODBC 應用程式而言,主要的問題在於您是否需要存取 SQL Server 的新功能。
如果您有一個不需要 SQL Server 之新功能的完整應用程式,就可以繼續使用 MDAC。

但是,如果您需要存取這些新功能 (例如,新的 xml 資料類型),就應該使用 SQL Server Native Client。

SQL Server Native Client 和 MDAC 都可使用資料列版本控制來支援讀取認可的交易隔離,但是只有 SQL Server Native Client 可支援快照集交易隔離 (在程式設計的詞彙中,含有資料列版本控制的讀取認可交易隔離與讀取認可的交易相同)。


參考資料:
Data Access Technologies Road Map
http://msdn.microsoft.com/en-us/library/ms810810.aspx

Data Access and Storage
http://msdn.microsoft.com/zh-tw/data/default(en-us).aspx

使用 SQL Server 2008 R2 Native Client 的時機
http://technet.microsoft.com/zh-tw/library/ms130828.aspx

從 MDAC 將應用程式更新至 SQL Server Native Client
http://technet.microsoft.com/zh-tw/library/ms131035.aspx

Microsoft Data Access Components (MDAC) 版本記錄
http://support.microsoft.com/kb/231943

如何檢查 MDAC 版本
http://support.microsoft.com/kb/301202/zh-tw

MDAC 安裝程式問題的疑難排解指南
http://support.microsoft.com/kb/232060/zh-tw

Microsoft OLE DB 提供者的 Jet 和 Microsoft Access ODBC 驅動程式可用於僅 32 位元版本
http://support.microsoft.com/kb/957570