一般系統部署的伺服器若是windows系統,就會採用64位win2003的結構。可是我們編寫的程式絕大多數都是在x86下32位cpu架構中編譯的,要正常移植到64位機器還真的是很麻煩,不僅要求應用程式是64位模式編譯,還需要資料庫也得是64位,iis64位,framework64位,好在相應的廠商都提供這些支援元件。不知道有人遇到過像我這樣的問題麼,應用中有需要增加乙個access資料庫匯入功能,這就需要連線odbc的mdb驅動,可是microsoft ole db provider for jet不支援64位系統,即使安裝了office2007後,發現odbc也沒有任何變化,這下尷尬了。
對64位系統結構進行分析。
c盤下有兩個程式安裝目錄:program files和program files (x86);
windows資料夾下有兩個目錄:system32和syswow64;
在system32中的odbcad32.exe中沒有其他驅動(這也是控制面板中odbc直接啟動的程式),但是在syswow64下的odbcad32.exe卻存在mdb之類的所有驅動,這說明odbc驅動在作業系統中是存在的,只是因為執行模式導致呼叫的odbc程式不同,造成找不到對應的驅動。了解到這一點,就能找到解決方案:切換64位執行模式為32位。
切換iis執行模式為32位
asp.net執行模式為32位
重新註冊asp.net,開始→執行→cmd,執行指令碼:%systemroot%\microsoft.net\framework\v2.0.40607\aspnet_regiis.exe -i。若要註冊64位,指令碼為:%systemroot%\microsoft.net\framework64\v2.0.40607\aspnet_regiis.exe -i。
重啟機器,iis即可執行32位的程式,odbc的連線也生效了。
設定對應的環境變數:右擊」我的電腦」 – 「屬性」 – 「高階」 – 「環境變數」 – 「系統環境變數」:
1、新建nls_lang=simplified chinese_china.zhs16gbk(注意中間有空格,這個如果不設,toad查詢中文會是亂碼)
2、新建或修改tns_admin=d:\oracle\instantclient_11_2
3、修改path增加d:\oracle\instantclient_11_2,同時刪除原來64位oracle的路徑
其中第一條很重要,解決執行時報:ora-12705: cannot access nls data files or invalid environment specified的錯誤。
windows registry editor version 5.00
[hkey_local_machine\software\oracle\key_oraclient10g_home1]
」nls_lang」=」simplified chinese_china.zhs16gbk」
」oracle_bundle_name」=」standard」
」oracle_group_name」=」oracle – oraclient10g_home1″
」oracle_home」=」d:\oracle\instantclient_11_2」
」oracle_home_key」=」software\\oracle\\key_oraclient10g_home1″
」oracle_home_name」=」oraclient10g_home1″
雙擊匯入登錄檔。
將64位oracle的tns檔案拷入d:\oracle\instantclient_11_2中,否則執行會報:ora-12154: tns:could not resolve the connect identifier specified錯誤。
完成以上修改後,重啟電腦,執行**程式,發現一切都如期望的一樣工作!
win2003 64位系統IIS配置方法
1 因用模版安裝asp.net 2.0需先解除安裝64位的.net2.0 命令 c windows microsoft.net framework64 v2程式設計客棧.0.50727 aspnet regiis.exe u 2 把iis切換為32bit模式執行 命令 cscript c inetp...
win7 64位系統下使用Oracle的問題
在win7 64位系統下使用oracle最簡單的方法就是 path裡,然後再解壓路徑下新增sqlnet.ora和tnsnames.ora檔案 sqlnet.ora 檔案內容 sqlnet.authentication services nts names.directory path tnsname...
win7 64位系統下 PL SQL無法連線的問題
由於 plsql developer 沒有64位版本,所以在64位系統上執行該程鏈結64位oracle時就會報錯,筆者為這個問題糾結了好幾天,後來通過請教google 動手實踐,終於搞定了這個問題。現在把筆者解決的過程記錄下來,分享給遇到同樣問題的們。後複製d oracle product 10.2...