在win7 64位 使用oledb方式,連接oracle9i 數據庫,提示:未在本地計算機上注冊OraOLEDB.Oracle.1的程序
項目工程調試模式改為x86,不要是any cpu
安裝Oracle9i客戶端精簡版,並注冊 resgvr32 c:\oracle\ora90\bin\oraoledb.dll。
如遇中文亂碼,在注冊表修改……\oracle\home0下的字符集,我是改成……us7ascii
說重點:
關於需要依賴dll的程序,換台電腦無法使用問題的通用解決思路:
程序在A電腦可以使用,換到B電腦無法使用,在排除是系統框架程序(.net framework等)原因后,可能是兩台電腦注冊的dll版本不一致,或者系統環境變量等設置不一致。
在這里http://www.xdowns.com/article/241/Article_3338.html 有很多相關工具:
本次查到問題原因使用率如下工具
3. Process Explorer http://www.xdowns.com/soft/6/56/2006/Soft_33951.html
這個工具很好用,它可以查看當前運行的每個程序都調用了哪些dll,而且顯示的很全面。相對於Dependency Walker,它顯示dll的信息更全一些,而且動態性更強一些,比如在調試代碼的過程中,程序運行到具體的一步,它調用了哪些dll,再運行到下一步,又調用了哪些dll,都可以看出來。
5. regdllview
這個工具的特點是可以查看每個已注冊的dll的id值,並且可以很方便的在注冊表中找到這個id。
我就是用regdllview發現兩台電腦已注冊的oledb.dll不一致,重新注冊,變為一致 解決了這個問題。