oracle 資料存取元件(odac) 庫為borland delphi,c++ builder 以及
kylix提供了一些非可視化的元件。它們用來存取oracle關系資料庫系統。與bde類似, odac 也是一種可供選擇的處理資料的方法之一。
odac 直接使用 oracle 調用接口 (oci). oci
是一種允許應用程式開發人員使用第三方開發語言存取oracle資料伺服器的過程或函數以及控制所有的sql語句執行狀态的應用程式接口(api)。 oci
通過一個動态運作庫(ora*.dll)提供了一個标準的資料庫存取庫及函數,以在應用程式中建立連接配接。也可以使用odac的net選項而無需在客戶機上
安裝oracle用戶端來連接配接到oracle.在這種情況下,odac僅需要tcp/ip協定的支援,進而可以建立真正的、最小的資料庫應用程式。
與使用bde開發 oracle
c/s(客戶/伺服器)應用程式不同的是,bde不能存取oracle的一些特殊功能,不能使用更多的資源,不能高速處理資料,而且不定期有麻煩的應用程式分發以及管理。
.net(c#)程式設計過程中,使用到了以下三種免安裝的oracle通路元件,能夠不安裝oracle用戶端,通過這些元件通路oracle資料庫
1:oracle data provider for
.net, managed driver:
oracle官方的托管資料庫通路元件,單dll,oracle.manageddataaccess.dll,直接引用即可,用法及相關文檔:
2:oracle data access
components
同樣是oracle官方提供的資料庫通路元件,為非托管的,但oracle提供了.net的wrap
dll,也就是oracle.dataaccess.dll,這個元件本來是需要安裝的,但也可以通過
一定處理,弄成免安裝直接使用的,方法見:
3:datadirect odbc drivers from
oracle
第三方的托管資料庫通路元件,也就是大名鼎鼎的ddtek.oracle.dll,免安裝,直接使用,非常友善,使用方法:http://blog.csdn.net/rrrrssss00/article/details/5757301
對比1:擷取友善性
前兩種為oracle官方提供,均為免費下載下傳,網址為,odac的包裡既有托管,也有非托管
第三種,ddtek為商業軟體,需要購買,也可以免費試用(網上也有破解)
總結:1等于2優于3 (使用破解的話就都一樣了。。。)
對比2:使用便利性
第一種:單dll,直接引用即可
第二種:參考上面的用法文章,需要從odac包裡不同子壓縮包中找到多個依賴的dll檔案,放在一起方可使用,略有不便,而且不同版本的odac,依賴dll的數量和各dll檔案的位置還不一樣。。。。
第三種:單dll檔案加許可檔案,也是直接引用
總結:1等于3優于2(odac找起dll來确實麻煩)
對比3:功能性
第一種,odp managed driver,有一部分功能在這個托管版本裡并沒有實作,詳細參考:
這個網頁的最後兩個表格,比如bulkcopy和customtype之類的都是不支援的
第二種,odac,這個功能是最多的
第三種,ddtek,這個也是全托管,有一部分功能限制,但是比第一種的功能略多一些,比如bulkcopy這個是支援的
總結:2優于3優于1