ODBC與ADO的區別

2021-06-22 02:00:27 字數 1951 閱讀 9585

odbc(open database connection,開放式資料互連)是訪問資料庫的乙個統一介面標準,它允許開發人員使用odbc api(應用程式介面)來訪問多種不同的資料來源,並執行資料操作。

當使用應用程式時,應用程式首先通過使用odbc api與驅動管理器進行通訊,odbc api由一組odbc函式呼叫組成,通過api呼叫odbc函式提交sql請求,然後,驅動管理器通過分析odbc函式並判斷資料來源的型別,並配置正確的 驅動器,並把odbc函式呼叫傳遞給驅動器,最後,驅動器處理odbc函式呼叫,把sql請求傳送給資料來源,資料來源執行相應操作後,驅動器返回執行結果, 管理器再把執行結果返回給應用程式。

微軟公司的ado (activex data objects) 是乙個用於訪問資料來源的com元件。它提供了程式語言和統一資料訪問方式ole db的乙個中間層。允許開發人員編寫訪問資料的**而不用關心資料庫是如何實現的,而只用關心到資料庫的連線。訪問資料庫的時候,關於sql的知識不是必要的,但是特定資料庫支援的sql命令仍可以通過ado中的命令物件來執行。

ado包含一些頂層的物件:

連線,代表到資料庫的連線

記錄集,代表資料庫記錄的乙個集合

命令,代表乙個sql命令

記錄,代表資料的乙個集合

流,代表資料的順序集合

錯誤,代表資料庫訪問中產生的意外

字段,代表乙個資料庫字段

引數,代表乙個sql引數

屬性,儲存物件的資訊

ado元件的使用需要利用支援com的高階語言,例如asp中的vbscript或者visual basic,甚至delphi,微軟的競爭對手borland的乙個產品,現在也支援使用ado來訪問資料庫。

odbc通常用來訪問不具備ole-db特性的非microsoft資料庫中的資料;16位的odbc驅動程式工作起來可能非常緩慢。

odbc素以最慢的資料訪問方法而著稱,但是很可惜,當ado或dao都不支援某個資料庫管理器而odbc支援這個資料庫管理器時,在這種特定的情形 下,你仍然需要使用odbc。在大多數情況下,這意味著要從資料庫廠商那裡獲得所需的驅動程式,雖然visual c++確實附帶了一些產品的驅動程式(如果你正在使用資料庫管理器的某些神秘功能,那麼就需要建立自己的介面棗這並不是一件十分困難的事)。本質上講,你 總是要使用odbc來訪問microsoft產品之外的其它dbms產品所建立的資料庫,這些資料庫並不具備ole-db功能。odbc還要求做一些額外 的工作棗為ado調整visual c++中的大部分嚮導。

高階技巧

除了使用ado和odbc外,你還可以使用像dao(資料訪問物件)這樣的早期技術,該技術包含在像access這樣的microsoft產品中。 dao依賴於用microsoft access自動獲得的microsoft jet資料庫引擎。dao還是較早版的visual basic所使用的引擎(最新版的visual basic和visual c++依賴於相同的ado/ole-db組合),所以如果需要支援較早的visual basic應用程式,那麼dao仍是乙個不錯的選擇。

儘管microsoft檔案宣告,可以用dao訪問非microsoft產品建立的資料庫,但你仍會發現,在這種情況下,使用ado和odbc要好得 多。這樣的話,不但相容性問題會少一些,速度也將有所提高,因為資料請求經過的介面層減少了。有一條經驗要記住,dao是設計用來處理mdb檔案的。

ado的乙個問題是,它不支援遠端通訊。這是microsoft提出rdo(遠端資料物件)的原因之一。這種特別技術在visual basic應用程式中的使用,要比在visual c++中的使用多得多,所以我猜想,你們中有很多人都在使用它。但是,記住rdo仍是一種生命力很強的技術,這一點很重要。ado確實具有替代rdo的遠 程資料服務(rds)特徵。換言之,ado在乙個軟體包中提供了dao和rdo兩種功能性。

odbc使用的是微軟提供的通用資料庫連線,所以效率不高,ado就好些,主要是針對微軟資料庫做了優化,降低了系統資源的使用率,所以效率比odbc要高一些,特別是併發使用者多時更能體現速度上的差異。

一般情況下,都是用ado連線資料庫進行程式設計~~

ODBC與ADO的區別

odbc 要了解odbc是什麼?在連線資料庫時,由於資料庫種類繁多,各種資料庫連線有不同的需求,而資料庫連線主要依靠各種api函式來進行連線。而odbc就是將這些api函式封裝起來形成統一的介面,當sql語句進入介面後,驅動器管理程式通過辨別將它們分別對應的進入各自的驅動器 driver 由驅動器來...

資料庫 ADO與ODBC的區別

前言 第二次看紅皮書,通觀全域性之後才知道,連線資料庫主要是有ado和odbc兩種方式,下面介紹這兩種方式的區別。正文 定義 ado 站在資料庫連線的高層,怎麼說,在連線資料庫上給了我們乙個很大的便利,不用去擔心資料庫是如何實現的,只需通過我們學習了解過的connection,command,rec...

資料庫連線的ODBC與ADO技術

odbc open database connectivity,開放資料庫互連 是微軟公司開放服務結構 wosa,windows open services architecture 中有關資料庫的乙個組成部分,它建立了一組規範dao,並提供了一組對資料庫訪問的標準api 應用程式程式設計介面 這些...