1. ADO與簡介
ADO與既有相似也有區別,他們都能夠編寫對資料庫伺服器中的資料進行訪問和操作的應用程式,並且易於使用、高速度、低記憶體支出和佔用磁碟空間較少,支援用於建立基於客戶端/伺服器和 Web 的應用程式的主要功能。但是ADO使用OLE DB介面並基於微軟的COM技術,而擁有自己的介面並且基於微軟的體系架構。眾所周知體系不同於COM體系,介面也就完全不同於ADO和OLE DB介面,這也就是說和ADO是兩種資料訪問方式。
2. 資料訪問方式的歷史
下面簡單的回顧一下微軟的資料訪問方式所走過的幾個階段。
ODBC – (Open Database Connectivity)是第一個使用SQL訪問不同關係資料庫的資料訪問技術。使用ODBC應用程式能夠通過單一的命令操縱不同的資料庫,而開發人員需要做的僅僅只是針對不同的應用加入相應的ODBC驅動。
DAO - (Data Access Objects)不像ODBC那樣是面向C/C++程式設計師的,它是微軟提供給Visual Basic開發人員的一種簡單的資料訪問方法,用於操縱Access資料庫。
RDO – 在使用DAO訪問不同的關係型資料庫的時候,Jet引擎不得不在DAO和ODBC之間進行命令的轉化,導致了效能的'下降,而RDO(Remote Data Objects)的出現就順理成章了。
OLE DB – 隨著越來越多的資料以非關係型格式儲存,需要一種新的架構來提供這種應用和資料來源之間的無縫連線,基於COM(Component Object Model)的OLE DB應運而生了。
ADO – 基於OLE DB之上的ADO更簡單、更高階、更適合Visual Basic程式設計師,同時消除了OLE DB的多種弊端,取而代之是微軟技術發展的趨勢。
ADO架構圖表
3. ADO與對照
在開始設計體系架構時,微軟就決定重新設計資料訪問模型,以便能夠完全的基於XML和離線計算模型。兩者的區別主要有:
ADO以Recordset儲存,而則以DataSet表示。Recordset看起來更像單表,如果讓Recordset以多表的方式表示就必須在SQL中進行多表連線。反之,DataSet可以是多個表的集合。ADO 的運作是一種線上方式,這意味著不論是瀏覽或更新資料都必須是實時的。則使用離線方式,在訪問資料的時候會利用XML製作資料的一份幅本,的資料庫連線也只有在這段時間需要線上。
由於ADO使用COM技術,這就要求所使用的資料型別必須符合COM規範,而基於XML格式,資料型別更為豐富並且不需要再做COM編排導致的資料型別轉換,從而提高了整體效能。
下面就是以圖表的形式描繪了體系
架構圖表
4. 小結
為構架提供了優化的資料訪問模型,和基於COM的ADO是完全兩樣的資料訪問方式。