天天看點

ADO遠端連接配接ORACLE資料庫伺服器的方法總結及遇到的問題兩台樣機要與伺服器連接配接,并且采集到的資料也要存入伺服器的資料庫,搭建過程如下:

兩台樣機要與伺服器連接配接,并且采集到的資料也要存入伺服器的資料庫,搭建過程如下:

一、資料庫遷移:

  1. 首先使用exp導出密碼将我做好的資料庫導出成dmp檔案:exp 使用者名/密碼@ORCL rows=y indexes=y compress=n buffer=65536 feedback=100000 OWNER=使用者名 file=H:/xxx.dmp log=H:/xxx.log
  2. 再在伺服器上建立使用者并授予相應的權限,使用imp密碼導入資料庫檔案:imp 使用者名/密碼 file=H:/xxx.dmp log=H:/xxx_log.log fromuser=使用者名

二、走區域網路内部的搭建方式:

  1. MFC程式采用了ADO接口與資料庫連接配接,首先使用網線連接配接交換機,然後配置設定本地網絡中的ip位址,使其與伺服器處于同一個網段中;
  2. 樣機本地使用oracle 11g用戶端與伺服器連接配接,下載下傳安裝32位的oracle用戶端,安裝完成後,配置添加網絡服務名和監聽,完成後使用ado連接配接助手測試是否可以連接配接成功,并獲得連接配接字元串:Open(_bstr_t(_T("Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=otdruser;Data Source=192.168.0.8:1521/ORCL")), _bstr_t(_T("使用者名")), _bstr_t(_T("密碼")), adOpenUnspecified);
  3. 在程式中修改連接配接字元串,并編譯成功後運作檢視效果。

三、走公網的搭建方式:

      與走内網的差別僅在于連接配接字元串不一樣而已:

   Open(_bstr_t(_T("Provider=OraOLEDB.Oracle.1;Persist Security Info=False;User ID=otdruser;Data Source=xxx.xxx.xxx.xxx:1521/ORCL")), _bstr_t(_T("使用者名")), _bstr_t(_T("密碼")), adOpenUnspecified)

      并且資料源的ip要寫成伺服器映射為公網之後的ip位址,否則無法連接配接。

四、遇到的問題

一開始部署的時候,因為oracle的驅動不了解,使用了微軟的ole db provider for oracle 接口,導緻程式一直無法連接配接資料庫,實際上,oracle 11g的64位用戶端存在問題,安裝上64位的之後,添加資料源的清單中根本沒有oracle provider for ole db ,不知為啥,打了更新檔,使用ODAC仍然解決不了問題,最後無奈隻好解除安裝了64位的重新裝了32位的用戶端和驅動,這才連接配接成功了。

PS:我有ado連接配接資料庫的類庫檔案,可以直接加入項目中使

用,需要的可以給我留言(原創文章,轉載請注明出處)。