http://blog.csdn.net/ithomer/article/details/6624684sql
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數據庫且是本地使用的話,建議使用這種訪問方式---應用的專注性app
RDO(Remote Data Objects,遠程數據對象)ide
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技術能夠訪問從文本文件到大型後臺數據庫等多種數據格式。
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同樣要「年輕」些。
ADO和OLEDB之間的關係
OLEDB是一種底層數據訪問界面接口。是用於第三方驅動程序商家開發輸出數據源到ADO-技術的應用程序或用於C++的開發者開發定製的數據庫組件。
OLE DB 是用於訪問數據的重要的系統級編程接口,它是 ADO 的基礎技術,同時仍是 ADO.NET 的數據源。
ADO 是基於OLE DB的訪問接口,它是面向對象的OLE DB技術,繼承了OLE DB的優勢。屬於數據庫訪問的高層接口。
能夠這麼說,ADO爲OLEDB提供高層應用API函數。
各類數據接口的鏈接方式
1、ADO鏈接一、鏈接access數據庫set conn=Server.CreateObject("ADODB.Connection")conn.open "Driver={Microsoft Access Driver (*.mdb)};dbq="&Server.Mappath("dbname(路徑全名)")二、鏈接SQL Server數據庫set conn=server.CreateObject("ADODB.Connection")sql="Driver={SQL Server};server=(local);uid=sa;pwd=sa;database=dbname"conn.open(sql)2、ODBC鏈接(必須先註冊數據源---DSN)(列舉配置SQL Server數據庫文件DSN,打開管理工具---數據源(ODBC)---打開系統DSN選項卡---單擊添加按鈕---從列表中選擇SQL Server,單擊完成---在名稱中輸入數據庫名稱,在你想鏈接的SQL Server服務器中輸入(local)---按嚮導提示完成)一、鏈接access數據庫Set conn = Server.CreateObject("ADODB.Connection")conn.Open "DSN=註冊名"二、鏈接SQL Server數據庫set conn=Server.CreateObject("ADODB.Connection")conn.connectionstring="DSN=註冊名;UID=sa;PWD=sa;"conn.open3、OLEDB鏈接數據庫一、鏈接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")二、鏈接SQL Server數據庫set conn=server.CreateObject("ADODB.Connection")sql="Provider=SQLOLEDB;data source=(local);initial catalog=dbname;User ID=sa;password=sa;"