天天看點

.net(C#)通路Oracle資料庫的幾種免安裝元件的對比

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