ADO,OLEDB,ODBC,DAO的區別

原文轉載於:https://blog.csdn.net/ithomer/article/details/6624684

ODBC(Open Database Connectivity,開放數據庫互連)

1992年,微軟公司開放服務結構(WOSA,Windows Open Services Architecture)中有關數據庫的一個組成部分,它建立了一組規範,並提供了一組對數據庫訪問的標準API(應用程序編程接口)。這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。---出現的最早,但不總是萬能。


DAO(Data Access Object,數據訪問對象)

1993年,微軟公司用來顯露了Microsoft Jet數據庫引擎(最早是給Microsoft Access 所使用,現在已經支持其它數據庫),並允許開發者通過ODBC直接連接到其他數據庫一樣,直接連接到 Access 表。DAO 最適用於單系統應用程序或在小範圍本地分佈使用。其內部已經對Jet數據庫的訪問進行了加速優化,而且其使用起來也是很方便的。所以如果數據庫是Access數據庫且是本地使用的話,建議使用這種訪問方式---應用的專一性


RDO(Remote Data Objects,遠程數據對象)

1995年,RDO是一個到ODBC的、面向對象的數據訪問接口,它同易於使用的DAO style組合在一起,提供了一個接口,形式上展示出所有ODBC的底層功能和靈活性。儘管RDO在很好地訪問Jet或ISAM數據庫方面受到限制,而且它只能通過現存的ODBC驅動程序來訪問關係數據庫。但是,RDO已被證明是許多SQL Server、Oracle 以及其他大型關係數據庫開發者經常選用的最佳接口。RDO提供了用來訪問存儲過程和複雜結果集的更多和更復雜的對象、屬性,以及方法。---無疑是在odbc基礎上的


OLE DB(Object Linking and Embedding, Database,對象連接嵌入數據庫)

1997年, Microsoft 的一個戰略性系統級編程接口,用於管理整個組織內的數據。OLE DB 是建立在 ODBC 功能之上的一個開放規範。ODBC 是爲訪問關係型數據庫而專門開發的,OLE DB 則用於訪問關係型和非關係型信息源,例如主機 ISAM/VSAM 和層次數據庫,電子郵件和文件系統存儲,文本、圖形和地理數據以及自定義業務對象。

OLE DB 定義了一組 COM 接口,對各種數據庫管理系統服務進行封裝,並允許創建軟件組件,實現這些服務。OLE DB 組件包括數據提供程序(包含和表現數據)、數據使用者(使用數據)和服務組件(處理和傳送數據,例如,查詢處理器和遊標引擎)。 
OLE DB 接口有助於平滑地集成組件,這樣,OLE DB 組件廠商就可以快速地向市場提供高質量 OLE DB 組件。此外,OLE DB 包含了一個連接 ODBC 的“橋樑”,對現用的各種 ODBC 關係型數據庫驅動程序提供一貫的支持。---號稱取代odbc,但也兼容odbc 

ADO(ActiveX Data Object,活動數據對象)

1996年,ADO是DAO/RDO的後繼產物。ADO 2.0在功能上與RDO更相似,而且一般來說,在這兩種模型之間有一種相似的映射關係。ADO"擴展"了DAO和 RDO 所使用的對象模型,這意味着它包含較少的對象、更多的屬性、方法(和參數),以及事件。 作爲最新的數據庫訪問模式,ADO的使用也是簡單易用,所以微軟已經明確表示今後把重點放在ADO上,對DAO/RDO不再作升級,所以ADO已經成爲了當前數據庫開發的主流。 ADO涉及的數據存儲有DSN(數據源名稱)、ODBC(開放式數據連接)以及OLE DB三種方式。後面的例程將詳細講解這三種方式的具體訪問實現。---可以說是對odbc,oledb這些系統級的編程接口的匯接,並對DAO,RDO這些應用級的編程接口的升級吧。

 

ODBC 、DAO 、ADO 、OLEDB 數據庫連接方式區別及聯繫

ODBC 是一種底層的訪問技術,因此,ODBC API 可以是客戶應用程序能從底層設置和控制數據庫,完成一些高級數據庫技術無法完成的功能;但不足之處由於ODBC只能用於關係型數據庫,使得利用ODBC很難訪問對象數據庫及其他非關係數據庫。

DAO 提供了一種通過程序代碼創建和操縱數據庫的機制。最大特點是對MICROSOFT JET數據庫的操作很方便,而且是操作JET數據庫時性能最好的技術接口之一。並且它並不只能用於訪問這種數據庫,事實上,通過DAO技術可以訪問從文本文件到大型後臺數據庫等多種數據格式。

ADO 是基於OLE DB的訪問接口,它是面向對象的OLE DB技術,繼承了OLE DB的優點。屬於數據庫訪問的高層接口。


名詞解釋:
ODBC(Open DataBase Connectivity)開放數據庫互聯。是由微軟主導的數據庫鏈接標準。

MFC(Microsoft Foundation Class)微軟基礎類。MFC ODBC是對ODBC的封裝。

DAO(Data Access Object)數據訪問對象。不提供遠程訪問功能。

RDO(Remote Data Object)遠程數據對象。速度快,支持SQL Server存儲過程,同DAO一樣是發展很多年了的技術。

OLE-DB(Object Linking and Embedding DataBase)對象鏈接和嵌入數據庫。它依賴於COM和提供OLE DB提供者的廠商而非ODBC使用的SQL。

ADO(ActiveX Data Object)ActiveX數據對象。基於OLE-DB建立連接的局部和遠程數據庫訪問技術。同OLE-DB一樣要“年輕”些。

使用中,我們一般用OLE-DB和ADO替代DAO和RDO。


ADO和OLEDB之間的關係

OLEDB是一種底層數據訪問界面接口。是用於第三方驅動程序商家開發輸出數據源到ADO-技術的應用程序或用於C++的開發者開發定製的數據庫組件。

OLE DB 是用於訪問數據的重要的系統級編程接口,它是 ADO 的基礎技術,同時還是 ADO.NET 的數據源。
ADO 是基於OLE DB的訪問接口,它是面向對象的OLE DB技術,繼承了OLE DB的優點。屬於數據庫訪問的高層接口。

可以這麼說,ADO爲OLEDB提供高層應用API函數。


各種數據接口的連接方式

一、ADO連接
1、連接access數據庫
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Driver={Microsoft Access Driver (*.mdb)};dbq="&Server.Mappath("dbname(路徑全名)")
2、連接SQL Server數據庫
set conn=server.CreateObject("ADODB.Connection")
sql="Driver={SQL Server};server=(local);uid=sa;pwd=sa;database=dbname"
conn.open(sql)

二、ODBC連接(必須先註冊數據源---DSN)
(列舉配置SQL Server數據庫文件DSN,打開管理工具---數據源(ODBC)---打開系統DSN選項卡---單擊添加按鈕---從列表中選擇SQL Server,單擊完成---在名稱中輸入數據庫名稱,在你想連接的SQL Server服務器中輸入(local)---按嚮導提示完成)
1、連接access數據庫
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "DSN=註冊名"
2、連接SQL Server數據庫
set conn=Server.CreateObject("ADODB.Connection")
conn.connectionstring="DSN=註冊名;UID=sa;PWD=sa;"
conn.open

三、OLEDB連接數據庫
1、連接access數據庫
set conn=Server.CreateObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.MapPath("dbname(路徑全名)")&";Persist Security Info=False"
set rs=Server.CreateObject("ADODB.Recordset")
2、連接SQL Server數據庫
set conn=server.CreateObject("ADODB.Connection")
sql="Provider=SQLOLEDB;data source=(local);initial catalog=dbname;User ID=sa;password=sa;"
conn.open(sql)
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章