用c 以ado方式 遠端訪問ORACLE資料庫

2021-10-13 09:51:26 字數 1975 閱讀 1603

第一次用oracle,很多理解可能存在錯誤。

ado的具體使用方式就不詳細說了,鏈結oracle的鏈結串為:provider = oraoledb.oracle; user id = 使用者名稱; password = 密碼; persist security info = true; data source = (description =(address_list =(address = (protocol = tcp)(host = ip)(port = 1521)) )(connect_data = (sid = orcl)))

其中orcl 為例項名稱。訪問orcle前需要確保oraoledb12.dll(數字與版本相關)已經註冊否則回報未安裝的錯誤。註冊時只有oraoledb12.dll似乎無法完成註冊,最好確保oraoledb12.dll與其他系列dll在同一目錄時註冊。

tnslistener服務為oracle資料庫的監聽服務(多次重啟tnslistener可能會導致無法啟動,請重啟電腦就好了)負責監聽遠端客戶端的訪問請求。在本地訪問oracle資料庫的時候不需要此服務,只要保證oracleserverorcl服務執行即可。

與tnslistener服務 相關的服務有兩個配置檔案分別為listener.ora和tnsnames.ora。listener.ora檔案如下

listener =

(description =

(address = (protocol = tcp)(host = 192.168.1.122)(port = 1521))

)#end  listener.ora

其中標紅的部分為監聽服務的位址和埠,需要客戶端知道。也就是ado方式連線資料庫時字串裡設定的ip和位址。但是只有位址是不行的還要指定要訪問的例項 也就是sid = orcl處設定的例項名為orcl.關於oracle中的例項可以簡單理解為sqlserver中的資料庫,乙個例項中可以有多張**,而且例項中可以有多個使用者,每個使用者可以分配不同的角色。

目前配置檔案中還沒看到有關orcl的配置。需要修改配置檔案。先看下tnsnames.ora檔案

oraclr_connection_data =

(description =

(address_list =

(address = (protocol = ipc)(key = extproc1521))

(address = (protocol = tcp)(host = 192.168.1.122)(port = 1521))

)(connect_data =

(sid = clrextproc)

(presentation = ro)))

listener_orcl =

(address = (protocol = tcp)(host = localhost)(port = 1521))

orcl =

(description =

(address_list =

(address = (protocol = tcp)(host = 192.168.1.122)(port = 1521))

)(connect_data =

(sid = orcl)

(presentation = ro)))

#end tnsnames.ora

這個檔案網上查的說是用來定義服務的,服務和例項其實是等價的,對內用例項表述,對外用服務表述。

如果想oracle資料庫支援遠端訪問除了保證tnslistener服務執行之外,還要保證配置正確,目前配置檔案不支援遠端訪問。我們對listener.ora 做如下修改即可:

)listener =

(description =

(address = (protocol = tcp)(host = 192.168.1.122)(port = 1521))

)#end listener.ora

紅色部分為新增的配置,此時就可以遠端訪問資料庫了,用最上面的ado鏈結串即可。

預設oracle最初只有乙個orcl例項。

vc 用ADO方式連線oracle問題

今天裝了個oracle客戶端,準備寫個訪問遠端oracle的程式。用的是vs2010,採用ado的連線方法連線oracle,結果執行的時候總是報下面的錯 從提示可以看出是沒有找到oraoledbups.dll這個動態鏈結庫。我的連線oracle資料庫的 是 1 trycatch com error ...

ADO方式訪問資料庫格式

jet 引擎,可以訪問 office 97 2003,但不能訪問 office 2007。ace 引擎是隨 office 2007 一起發布的資料庫連線元件,既可以訪問 office 2007,也可以訪問 office 97 2003。另外 microsoft.ace.oledb.12.0 可以訪問...

C 通過ADO方式連線Oracle資料庫總結

這篇博文發出去,就算在csdn上開博了,點滴積累,見諸博文 還是先從簡單的說起,c 連線資料庫的方法多種多樣,以下僅以ado的方式進行簡略說明。開發環境 winxp oracle 11g vs2010 window自動生成資料庫連線字串的方法,但當我新建了str.udl,開啟時卻彈出缺少.dll的提...