數(shù)據(jù)訪問(wèn)技術(shù)路線圖
Prash Shirolkar, Author
Alyssa Henry, Contributor
Stephen Pepitone, Contributor
Acey J. Bunch, Contributor
Microsoft Corporation
摘要: 了解 Microsoft 數(shù)據(jù)訪問(wèn)技術(shù)的過(guò)去、現(xiàn)在和未來(lái)。

本頁(yè)內(nèi)容
![]() |
簡(jiǎn)介 |
![]() |
Microsoft 數(shù)據(jù)訪問(wèn)組件 (MDAC) |
![]() |
SQL Native Client (SQLNCLI) |
![]() |
ADO.NET |
![]() |
已過(guò)時(shí)的數(shù)據(jù)訪問(wèn)技術(shù) |
![]() |
更多信息 |
簡(jiǎn)介
本文介紹 Microsoft 數(shù)據(jù)訪問(wèn)技術(shù)的過(guò)去、現(xiàn)在和未來(lái),這些技術(shù)包括 DB-Library、ESQL、DAO、Microsoft? 數(shù)據(jù)訪問(wèn)組件 (MDAC)(包括 ODBC、ADO 和 OLE DB)、ADO.NET 和 SQL Native Client。本文將標(biāo)識(shí)哪些技術(shù)會(huì)得到增強(qiáng),哪些技術(shù)和組件將在未來(lái)的版本中被棄用或排除。
Microsoft 數(shù)據(jù)訪問(wèn)組件 (MDAC)
通過(guò) Microsoft 數(shù)據(jù)訪問(wèn)組件 (MDAC),開發(fā)人員可以連接到種類繁多的關(guān)系和非關(guān)系數(shù)據(jù)源,并且使用這些數(shù)據(jù)源中的數(shù)據(jù)。您可以使用 ActiveX?Data Objects (ADO)、開放式數(shù)據(jù)庫(kù)連接 (ODBC) 或 OLE DB 連接到很多個(gè)不同的數(shù)據(jù)源。您可以通過(guò)由 Microsoft 生成和交付或者由各種第三方開發(fā)的提供程序和驅(qū)動(dòng)程序完成該操作。
當(dāng)前 MDAC 體系結(jié)構(gòu)
通過(guò)當(dāng)前的 MDAC 體系結(jié)構(gòu),客戶端-服務(wù)器應(yīng)用程序、n 層應(yīng)用程序或 Web 瀏覽器應(yīng)用程序可以訪問(wèn) SQL、半結(jié)構(gòu)化存儲(chǔ)和舊式數(shù)據(jù)存儲(chǔ)區(qū)。另外,通過(guò) MDAC(并根據(jù)不同的需求),這些應(yīng)用程序可以使用 ADO、OLE DB 或 ODBC 靈活地訪問(wèn)數(shù)據(jù)。
出于本文檔的目的,您可以基于技術(shù)和產(chǎn)品將 MDAC 協(xié)議棧劃分為下列組件:
? |
ADO(包括 ADOMD 和 ADOX) |
? |
OLE DB(包括 SQL Server OLE DB 提供程序、Oracle OLE DB 提供程序、用于 ODBC 驅(qū)動(dòng)程序的 OLE DB 提供程序、Data Shape Provider 和 Remote Data Provider) |
? |
ODBC(包括 SQL ODBC 驅(qū)動(dòng)程序和 Oracle ODBC 驅(qū)動(dòng)程序) |
當(dāng)前 MDAC 組件
下列組件在當(dāng)前版本中受到支持。當(dāng)您開發(fā)新的應(yīng)用程序或者升級(jí)現(xiàn)有的應(yīng)用程序時(shí),請(qǐng)使用這些組件。
? |
ADO: ActiveX 數(shù)據(jù)對(duì)象 (ADO) 提供了將繼續(xù)得到增強(qiáng)的高級(jí)編程模型。盡管使用 ADO 的性能要比直接針對(duì) OLE DB 或 ODBC 編碼稍差一些,但它易于學(xué)習(xí)和使用,并且可以在諸如 Microsoft Visual Basic ?Scripting Edition (VBScript) 或 Microsoft JScript? 之類的腳本語(yǔ)言中使用。 |
? |
ADOMD: ADO Multi-Dimensional (ADOMD) 將與多維數(shù)據(jù)提供程序(例如,Microsoft OLAP 提供程序,也稱為 Microsoft 分析服務(wù)提供程序)一起使用。自 MDAC 2.0 開始,沒(méi)有對(duì)其進(jìn)行過(guò)重大的功能增強(qiáng);但是,它將可以在 64 位 Microsoft Windows? 操作系統(tǒng)上使用。 |
? |
ADOX: ADO Extensions for DDL and Security (ADOX) 支持對(duì)數(shù)據(jù)庫(kù)、表、索引或存儲(chǔ)過(guò)程的定義進(jìn)行創(chuàng)建和修改。您可以將 ADOX 與任何提供程序一起使用。Microsoft Jet OLE DB 提供程序?yàn)?ADOX 提供了完整支持,而 Microsoft SQL OLE DB 提供程序提供了有限的支持。在未來(lái)的 MDAC 版本中,沒(méi)有為 ADOX 計(jì)劃重大的增強(qiáng);但是,它將可以在 64 位 Windows 操作系統(tǒng)上使用。 |
? |
OLE DB: OLE DB 是一個(gè)全面的 COM 接口集,這些接口可用于訪問(wèn)多種數(shù)據(jù)存儲(chǔ)區(qū)中的多種多樣的數(shù)據(jù)。OLE DB 提供程序可用于訪問(wèn)數(shù)據(jù)庫(kù)、文件系統(tǒng)、消息存儲(chǔ)區(qū)、目錄服務(wù)、工作流和文檔存儲(chǔ)區(qū)中的數(shù)據(jù)。OLE DB 核心服務(wù)(盡管不是每個(gè) OLE DB 提供程序)將可以在 64 位 Windows 操作系統(tǒng)上使用。 |
? |
SQLOLEDB: 用于 SQL Server 的 Microsoft OLE DB 提供程序 (SQLOLEDB) 支持對(duì) Microsoft SQL Server 6.5 和更高版本的訪問(wèn)。該 OLE DB 提供程序?qū)⑹俏磥?lái) MDAC 功能增強(qiáng)的中心。它將可以在 64 位 Windows 操作系統(tǒng)上使用。 |
? |
Microsoft SQL Server 網(wǎng)絡(luò)庫(kù): SQL Server 網(wǎng)絡(luò)庫(kù)使 SQLOLEDB 和 SQLODBC 可以與 SQL Server 數(shù)據(jù)庫(kù)通信。下列 SQL Server 網(wǎng)絡(luò)庫(kù)當(dāng)前在 MDAC 版本中被棄用:Banyan Vines、AppleTalk、Servernet、IPX/SPX、Giganet 和 RPC。TCP/IP、命名管道和共享內(nèi)存 SQL Server 網(wǎng)絡(luò)庫(kù)將繼續(xù)得到增強(qiáng),并且將可以在 64 位 Windows 操作系統(tǒng)上使用。 |
? |
ODBC: Microsoft 開放式數(shù)據(jù)庫(kù)連接 (ODBC) 接口是一個(gè) C 編程語(yǔ)言接口,該接口使應(yīng)用程序可以訪問(wèn)多種數(shù)據(jù)庫(kù)管理系統(tǒng) (DBMS) 中的數(shù)據(jù)。使用該 API 的應(yīng)用程序被限制為只能訪問(wèn)關(guān)系數(shù)據(jù)源。ODBC 將可以在 64 位 Windows 操作系統(tǒng)上使用。 |
? |
SQLODBC: Microsoft SQL Server ODBC 驅(qū)動(dòng)程序 (SQLODBC) 支持對(duì) Microsoft SQL Server 6.5 和更高版本的訪問(wèn)。SQLODBC 將可以在 64 位 Windows 操作系統(tǒng)上使用。 |
被棄用的 MDAC 組件
在 MDAC 的當(dāng)前版本中仍然支持這些組件,但是在未來(lái)的版本中可能將它們移除。Microsoft 建議您在開發(fā)新的應(yīng)用程序時(shí)避免使用這些組件。另外,當(dāng)您升級(jí)或修改現(xiàn)有的應(yīng)用程序時(shí),請(qǐng)移除對(duì)這些組件的任何依賴性。
? |
Jet: 從版本 2.6 開始,MDAC 不再包含 Jet 組件。換句話說(shuō),MDAC 2.6、2.7、2.8 以及未來(lái)的所有 MDAC 版本都不包含 Microsoft Jet、Microsoft Jet OLE DB 提供程序和 ODBC 桌面數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序。 |
? |
MSDASQL: 用于 ODBC 的 Microsoft OLE DB 提供程序 (MSDASQL) 通過(guò) ODBC 驅(qū)動(dòng)程序提供了對(duì)數(shù)據(jù)庫(kù)的 ADO 客戶端訪問(wèn)。這已經(jīng)成為 ADO 的默認(rèn)提供程序;但是,對(duì)于未來(lái)版本的 MDAC 和 64 位 Windows 操作系統(tǒng)而言,MSDASQL 已經(jīng)被棄用。因此,要從 ADO 訪問(wèn)數(shù)據(jù)庫(kù),客戶端必須使用適當(dāng)?shù)谋緳C(jī) OLE DB 提供程序(例如,SQLOLEDB)來(lái)訪問(wèn) Microsoft SQL Server。MSDASQL 將不能在 64 位 Windows 操作系統(tǒng)上使用;但是,仍然可以通過(guò) 32 位 Windows 子系統(tǒng)在 64 位 Windows 操作系統(tǒng)上使用它。 |
? |
MSDADS: 通過(guò) Microsoft OLE DB Provider for Data Shaping ( MSDADS ),可以在應(yīng)用程序中創(chuàng)建鍵、字段或行集合之間的分層關(guān)系。自 MDAC 2.1 開始,沒(méi)有進(jìn)行過(guò)重大的功能增強(qiáng)。該提供程序?qū)⒃谖磥?lái)的 MDAC 版本中被棄用。Microsoft 建議您使用 XML 而不是 MSDADS。 |
? |
Oracle ODBC: Microsoft Oracle ODBC 驅(qū)動(dòng)程序 (Oracle ODBC) 提供了對(duì) Oracle 數(shù)據(jù)庫(kù)服務(wù)器的訪問(wèn)。它提供了對(duì) Oracle 7 的完整支持。它還使用 Oracle 7 仿真提供了對(duì) Oracle 8 數(shù)據(jù)庫(kù)的有限支持。Oracle ODBC 驅(qū)動(dòng)程序尚未針對(duì) Oracle 9 數(shù)據(jù)庫(kù)進(jìn)行測(cè)試。 |
? |
RDS: 遠(yuǎn)程數(shù)據(jù)服務(wù) (RDS) 是一種用于跨 Internet 或 Intranet 訪問(wèn)遠(yuǎn)程 ADO 記錄集對(duì)象的專用 Microsoft 機(jī)制。自 MDAC 2.1 開始,還沒(méi)有對(duì) RDS 進(jìn)行過(guò)重大的功能增強(qiáng)。該組件將被棄用。Microsoft 現(xiàn)在交付 Microsoft SOAP Toolkit 2.0,應(yīng)用程序可以在該組件中使用開放的、基于 XML 的標(biāo)準(zhǔn)來(lái)訪問(wèn)遠(yuǎn)程數(shù)據(jù)。使用 RDS 的應(yīng)用程序應(yīng)當(dāng)遷移到 SOAP。 |
? |
JRO: 自 MDAC 2.6 開始,Microsoft Jet OLE DB 提供程序和其他相關(guān)組件已經(jīng)被從 MDAC 協(xié)議棧中移除。Jet 復(fù)制對(duì)象 (JRO) 僅與 Jet (Access) 數(shù)據(jù)庫(kù)一起使用,基本上用于創(chuàng)建或壓縮 Jet 數(shù)據(jù)庫(kù)和 Jet 復(fù)制管理。JRO 已經(jīng)被棄用,并且 MDAC 2.7 將是它的最后一個(gè)版本。它將不能在 64 位 Windows 操作系統(tǒng)上使用。 |
? |
SQL XML: SQL XML 提供了對(duì)用于 SQL Server 的 Microsoft OLE DB 提供程序 (SQLOLEDB) 的擴(kuò)展,以使客戶端可以通過(guò) XML 請(qǐng)求 Microsoft SQL Server 2000 數(shù)據(jù)以及檢索 XML 流。它最初是與 MDAC 2.6 一起發(fā)布的。通過(guò) SQL XML Web 版本 1,客戶端可以使用 Updategrams 和 Bulk Load 在 SQL Server 2000 中插入、更新和刪除數(shù)據(jù)。該組件不會(huì)被棄用,但是它將被從未來(lái)的 MDAC 版本中移除。該產(chǎn)品的當(dāng)前版本和更高版本將作為 Web 下載提供。SQL XML 將可以在 64 位 Windows 操作系統(tǒng)上使用。 |
MDAC 版本
以下為過(guò)去、現(xiàn)在和未來(lái) MDAC 版本的可支持性方案的列表(從最早的版本開始)。
? |
MDAC 1.5、MDAC 2.0 和 MDAC 2.1: 這些版本的 MDAC 是通過(guò) Microsoft Windows NT?Option Pack、Microsoft Windows Platform SDK 或 MDAC Web 站點(diǎn)發(fā)布的獨(dú)立版本。這些版本的 MDAC 不再受到支持。 |
||||
? |
MDAC 2.5: 該版本的 MDAC 隨附在 Windows 2000 操作系統(tǒng)中。MDAC 2.5 的未來(lái) Service Pack 將隨附在相應(yīng)的 Windows 2000 Service Pack 中。另外,這些 MDAC Service Pack 將根據(jù) Windows 2000 Service Pack 發(fā)布日程安排發(fā)布到 MDAC Web 站點(diǎn)中。您只能在 Windows NT、Windows 95 和 Windows 98 平臺(tái)上安裝該版本的 MDAC。在 Windows 2000 和 Windows Millennium Edition 平臺(tái)上,您只能通過(guò)相應(yīng)的操作系統(tǒng)或它們的 Service Pack 安裝該版本。該版本當(dāng)前受到支持。 |
||||
? |
MDAC 2.6: MDAC 2.6 RTM、SP1 和 SP2 分別隨附在 Microsoft SQL Server 2000 RTM、SP1 和 SP2 中。另外,這些 MDAC Service Pack 根據(jù) Microsoft SQL Server 2000 Service Pack 發(fā)布日程安排發(fā)布到 MDAC Web 站點(diǎn)中。您可以將該版本的 MDAC 和它的 Service Pack 安裝到 Windows 2000、Windows Millennium Edition、Windows NT、Windows 95 和 Windows 98 平臺(tái)上。該版本不再受到支持。 |
||||
? |
MDAC 2.7: 該版本的 MDAC 隨附在 Microsoft Windows XP RTM 和 SP1 操作系統(tǒng)中。您可以將該版本的 MDAC 和它的 Service Pack 安裝到 Windows 2000、Windows Millennium、Windows NT 和 Windows 98 平臺(tái)上。在 Windows XP 平臺(tái)上,您只能通過(guò)該操作系統(tǒng)或它的 Service Pack 安裝該版本。
|
||||
? |
MDAC 2.8: 該版本的 MDAC 隨附在 Windows Server 2003 以及 Windows XP SP2 和更高版本中。
|
SQL Native Client (SQLNCLI)
SQL Native Client (SQLNCLI) 是 Microsoft SQL Server 2005 中新增的一種數(shù)據(jù)訪問(wèn)技術(shù),并且是被用于 OLE DB 和 ODBC 的獨(dú)立的數(shù)據(jù)訪問(wèn)應(yīng)用程序編程接口 (API)。它將 SQL OLE DB 提供程序和 SQL ODBC 驅(qū)動(dòng)程序組合為一個(gè)本機(jī)動(dòng)態(tài)鏈接庫(kù) (DLL),同時(shí)還提供了區(qū)別于 Microsoft 數(shù)據(jù)訪問(wèn)組件 (MDAC) 的新功能。SQL Native Client 可以用來(lái)創(chuàng)建新的應(yīng)用程序或者增強(qiáng)那些需要利用新的 SQL Server 2005 功能(例如,Multiple Active Result Sets (MARS)、用戶定義的類型(User-Defined Types ,UDT)和 XML 數(shù)據(jù)類型支持)的現(xiàn)有應(yīng)用程序。
ADO.NET
ADO.NET 是對(duì)傳統(tǒng) ADO 的改進(jìn),可用于創(chuàng)建分布式的數(shù)據(jù)共享應(yīng)用程序。它是一種高級(jí)的應(yīng)用程序編程接口,面向支持對(duì)數(shù)據(jù)進(jìn)行斷開連接訪問(wèn)的松耦合的、n 層的、基于 Internet 的應(yīng)用程序。它是 Microsoft .NET Framework 的核心組件。
ADO.NET 提供了 .NET 托管提供程序以便進(jìn)行連接訪問(wèn),并且提供了以 XML 格式讀取和寫入的數(shù)據(jù)集,以便對(duì)已檢索的數(shù)據(jù)和用戶交互進(jìn)行斷開連接管理。下列數(shù)據(jù)提供程序可用于 ADO.NET:
? |
Microsoft SQL .NET 數(shù)據(jù)提供程序: 該提供程序使 .NET 應(yīng)用程序可以直接訪問(wèn) Microsoft SQL Server 數(shù)據(jù)庫(kù)。 |
? |
Microsoft OLE DB .NET 數(shù)據(jù)提供程序: 該提供程序使 .NET 應(yīng)用程序可以使用它們的本機(jī) OLE DB 提供程序訪問(wèn)數(shù)據(jù)庫(kù)。 |
? |
Microsoft ODBC .NET 數(shù)據(jù)提供程序: 該提供程序使 .NET 應(yīng)用程序可以通過(guò)使用它們的 ODBC 驅(qū)動(dòng)程序訪問(wèn)數(shù)據(jù)庫(kù)。 |
? |
Microsoft Oracle .NET 數(shù)據(jù)提供程序: 該提供程序使 .NET 應(yīng)用程序可以訪問(wèn) Oracle 數(shù)據(jù)庫(kù)。 |
數(shù)據(jù)集以 XML 格式讀取和寫入,并且 XMLDataDocument 集成了關(guān)系視圖和 XML 視圖。
已過(guò)時(shí)的數(shù)據(jù)訪問(wèn)技術(shù)
已過(guò)時(shí)的技術(shù)是指在多個(gè)產(chǎn)品版本中尚未增強(qiáng)或更新并且將被從未來(lái)的產(chǎn)品版本中排除的技術(shù)。在編寫新的應(yīng)用程序時(shí),請(qǐng)不要使用這些技術(shù)。當(dāng)您修改那些使用這些技術(shù)編寫的現(xiàn)有應(yīng)用程序時(shí),請(qǐng)考慮將這些應(yīng)用程序遷移到 ADO.NET。
下列組件被視為過(guò)時(shí)的:
? |
DB-Library: 這是一個(gè)包含 C API 的特定于 SQL Server 的編程模型。自 SQL Server 6.5 以來(lái),一直沒(méi)有對(duì) DB-Library 進(jìn)行任何功能增強(qiáng)。它的最后一個(gè)版本隨附在 SQL Server 2000 中,并且將不會(huì)被移植到 64 位 Windows 操作系統(tǒng)。 |
? |
嵌入式 SQL (E-SQL): 這是一個(gè)特定于 SQL Server 的編程模型,它支持將 Transact-SQL 語(yǔ)句嵌入到 Visual C 代碼中。自 SQL Server 6.5 開始,一直沒(méi)有對(duì) E-SQL 進(jìn)行任何功能增強(qiáng)。它的最后一個(gè)版本隨附在 SQL Server 2000 中,并且將不會(huì)被移植到 64 位 Windows 操作系統(tǒng)。 |
? |
數(shù)據(jù)訪問(wèn)對(duì)象 (DAO): DAO 提供對(duì) JET (Access) 數(shù)據(jù)庫(kù)的訪問(wèn)。可以從 Microsoft Visual Basic ?、Microsoft Visual C++? 和腳本語(yǔ)言中使用該 API。它隨附在 Microsoft Office 2000 和 Office XP 中。DAO 3.6 是該技術(shù)的最后一個(gè)版本。它將不能在 64 位 Windows 操作系統(tǒng)上使用。 |
? |
遠(yuǎn)程數(shù)據(jù)對(duì)象 (RDO): RDO 經(jīng)過(guò)專門設(shè)計(jì)以訪問(wèn)遠(yuǎn)程的 ODBC 關(guān)系數(shù)據(jù)源,并且使得 ODBC 的使用變得更加容易,而無(wú)須編寫復(fù)雜的應(yīng)用程序代碼。它隨附在 Microsoft Visual Basic 版本 4、5 和 6 中。RDO 版本 2.0 是該技術(shù)的最后一個(gè)版本。 |
更多信息
有關(guān)詳細(xì)信息,請(qǐng)?jiān)L問(wèn)以下 Microsoft Web 站點(diǎn):
? |
Data Access and Storage Developer Center Web 站點(diǎn) |
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號(hào)聯(lián)系: 360901061
您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對(duì)您有幫助就好】元
