64位程序,利用ADO連接Oracle數據庫


 
 

剛好手頭項目解決了ADO連接Oracle數據庫的問題,記錄下來,防止忘記。

項目情況:用32位環境完成算法動態庫,結果后來需要升級到64位環境,由64位的軟件來調用,則在64位設置下生成算法動態庫,發現數據庫連接失敗。數據庫使用的是Oracle10,而連接技術使用的是比較熟悉的ADO。

1.首先懷疑的是ADO預編譯所引用的msado15.dll版本問題,找來了64位msado15.dll,一樣重現問題。

2.懷疑是連接語句依靠的\network\admin\tnsnames.ora文件不對,所以在程序中寫死IP和端口,仍然重現問題。

其間忙於其他項目,只有用32位代替跑着,將其磕置。結果意外發現了64位在兩位同事的電腦上能順利運行,但在有些電腦上又出問題。所以確定為系統環境的問題,最終定位到ODAC。

 

問題最后解決了,但是還是未能完全脫離配置

1.連接語句寫成這樣,避免依賴tnsnames.ora文件

Provider=OraOLEDB.Oracle.1;Password=密碼;Persist Security Info=True;User ID=用戶名;\
Data Source=\"(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = IP)(PORT = 1521)) )(CONNECT_DATA = (SID = 數據庫)))\"

其中可以將用戶名、密碼、數據庫ID、IP、端口這些提出來寫成配置文件,方便更改。

2.安裝對應的ODAC,64位的下載地址http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html。相對來說,32位的ODAC是EXE安裝文件,簡單粗暴,直接自動安裝好一切,所以當時沒有出問題。64位的ODAC驅動是由Oracle官方提供的XCOPY版本,安裝過程參考微軟官方http://support2.microsoft.com/kb/2831123/zh-tw

(1)解壓XCOPY

(2)用命令行CD到(1)的目錄下

(3)命令行運行其中的install.bat文件:install.bat all c:\oracle\ODAC_64 odac

(4)C盤出現目錄c:\oracle\ODAC_64,進行系統環境配置:path里面增加C:\oracle\ODAC_64和C:\oracle\ODAC_64\bin

(5)完成

 

最后,這樣的配置在一台機器上出現了報錯的問題,發現是由於該機器上安裝的東西過多,path環境混亂,Oracle版本指向不明,所以將C:\oracle\ODAC_64和C:\oracle\ODAC_64\bin這個路徑放到path屬性的最前面即可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM