win2003 64位系統(tǒng)下ODBC連接使用方法
環(huán)境
一般系統(tǒng)部署的服務(wù)器若是windows系統(tǒng),就會(huì)采用64位win2003的結(jié)構(gòu)??墒俏覀兙帉懙某绦蚪^大多數(shù)都是在x86下32位cpu架構(gòu)中編譯的,要正常移植到64位機(jī)器還真的是很麻煩,不僅要求應(yīng)用程序是64位模式編譯,還需要數(shù)據(jù)庫(kù)也得是64位,iis64位,framework64位,好在相應(yīng)的廠商都提供這些支持組件。不知道有人遇到過(guò)像我這樣的問(wèn)題么,應(yīng)用中有需要增加一個(gè)Access數(shù)據(jù)庫(kù)導(dǎo)入功能,這就需要連接ODBC的mdb驅(qū)動(dòng),可是Microsoft OLE DB Provider for Jet不支持64位系統(tǒng),即使安裝了office2007后,發(fā)現(xiàn)ODBC也沒(méi)有任何變化,這下尷尬了。
分析
對(duì)64位系統(tǒng)結(jié)構(gòu)進(jìn)行分析。
c盤下有兩個(gè)程序安裝目錄:Program Files和Program Files (x86);
windows文件夾下有兩個(gè)目錄:System32和SysWOW64;
在System32中的odbcad32.exe中沒(méi)有其他驅(qū)動(dòng)(這也是控制面板中ODBC直接啟動(dòng)的程序),但是在SysWOW64下的odbcad32.exe卻存在mdb之類的所有驅(qū)動(dòng),這說(shuō)明ODBC驅(qū)動(dòng)在操作系統(tǒng)中是存在的,只是因?yàn)檫\(yùn)行模式導(dǎo)致調(diào)用的odbc程序不同,造成找不到對(duì)應(yīng)的驅(qū)動(dòng)。了解到這一點(diǎn),就能找到解決方案:切換64位運(yùn)行模式為32位。
解決步驟
切換IIS運(yùn)行模式為32位
開(kāi)始→運(yùn)行→cmd,運(yùn)行腳本:
cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 1
即可將IIS由64位切換為32位模式;若想恢復(fù)為64位模式,運(yùn)行腳本:cscript %SYSTEMDRIVE%\inetpub\adminscripts\adsutil.vbs SET W3SVC/AppPools/Enable32bitAppOnWin64 0。若腳本報(bào)錯(cuò),切換路徑為C:\Inetpub\AdminScripts,因?yàn)閍dsutil.vbs文件在該路徑下。
Asp.net運(yùn)行模式為32位
重新注冊(cè)asp.net,開(kāi)始→運(yùn)行→cmd
運(yùn)行腳本:%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.40607\aspnet_regiis.exe -i。
若要注冊(cè)64位,腳本為:%SYSTEMROOT%\Microsoft.NET\Framework64\v2.0.40607\aspnet_regiis.exe -i。
重啟機(jī)器,IIS即可運(yùn)行32位的程序,ODBC的連接也生效了。
Oracle64位切換為32位的方法
若以前系統(tǒng)運(yùn)行在64位模式下使用的是64位的oracle,修改為32位模式后程序的數(shù)據(jù)庫(kù)連接就失敗,會(huì)報(bào):“如果在安裝 32 位 Oracle 客戶端組件的情況下以 64 位模式運(yùn)行……”這個(gè)錯(cuò)誤。想到的方法自然是再安裝32位的oracle客戶端了。其實(shí)最簡(jiǎn)單的方法是下載ORALCE工具包Instant Client Package。將其解壓到任意文件夾下,如D:\oracle\instantclient_11_2。
設(shè)置對(duì)應(yīng)的環(huán)境變量:右擊”我的電腦” – “屬性” – “高級(jí)” – “環(huán)境變量” – “系統(tǒng)環(huán)境變量”:
1、新建NLS_lANG=SIMPLIFIED CHINESE_CHINA.ZHS16GBK(注意中間有空格,這個(gè)如果不設(shè),toad查詢中文會(huì)是亂碼)
2、新建或修改TNS_ADMIN=D:\oracle\instantclient_11_2
3、修改Path增加D:\oracle\instantclient_11_2,同時(shí)刪除原來(lái)64位oracle的路徑
其中第一條很重要,解決運(yùn)行時(shí)報(bào):Ora-12705: cannot access nls data files or invalid environment specified的錯(cuò)誤。
新建文本文件,修改后綴名為reg,內(nèi)容為:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraClient10g_home1] ”NLS_LANG”=”SIMPLIFIED CHINESE_CHINA.ZHS16GBK” ”O(jiān)RACLE_BUNDLE_NAME”=”Standard” ”O(jiān)RACLE_GROUP_NAME”=”O(jiān)racle – OraClient10g_home1″ ”O(jiān)RACLE_HOME”=”D:\oracle\instantclient_11_2” ”O(jiān)RACLE_HOME_KEY”=”SOFTWARE\\ORACLE\\KEY_OraClient10g_home1″ ”O(jiān)RACLE_HOME_NAME”=”O(jiān)raClient10g_home1″
雙擊導(dǎo)入注冊(cè)表。
將64位oracle的tns文件拷入D:\oracle\instantclient_11_2中,否則運(yùn)行會(huì)報(bào):ORA-12154: TNS:could not resolve the connect identifier specified錯(cuò)誤。
完成以上修改后,重啟電腦,運(yùn)行網(wǎng)站程序,發(fā)現(xiàn)一切都如期望的一樣工作!
祝大家好運(yùn)!
相關(guān)文章
Windows下php5+apache+mysql5 手工搭建筆記
php運(yùn)行環(huán)境對(duì)于站長(zhǎng)們或者初學(xué)者來(lái)說(shuō)可以直接用一鍵包的方式或者直接從服務(wù)提供商處得到支持,不必自己手工按部就班的搭建,所以這篇文章是寫給我這樣的菜鳥(niǎo)又喜歡胡鬧的程序員看的,哈哈。2011-02-02
為應(yīng)用程序池 ''DefaultAppPool'' 提供服務(wù)的進(jìn)程關(guān)閉時(shí)間超過(guò)了限制
為應(yīng)用程序池 'DefaultAppPool' 提供服務(wù)的進(jìn)程關(guān)閉時(shí)間超過(guò)了限制服務(wù)器經(jīng)常產(chǎn)生“應(yīng)用程序池 'DefaultAppPool' 提供服務(wù)的進(jìn)程關(guān)閉時(shí)間超過(guò)了限制。進(jìn)程 ID 是 '2068'?!钡腻e(cuò)誤,導(dǎo)致iis處于假死狀態(tài),經(jīng)了解是IIS應(yīng)用程序池的設(shè)置問(wèn)題2011-11-11
windows2003安裝apache-mysql-php-phpmyadmin
在本機(jī)搭建apache,php,mysql的開(kāi)發(fā)環(huán)境網(wǎng)上文章很多,我在這兒列舉一下在windows2003sp2,vista上搭建最新的Apache+PHP+MySQL+phpMyAdmin會(huì)出現(xiàn)的一些新問(wèn)題,也許會(huì)對(duì)你有所幫助.2009-02-02
Windows上安裝WSL+Ubuntu來(lái)運(yùn)行Linux環(huán)境
Windows Subsystem for Linux(簡(jiǎn)稱WSL),用于Windows計(jì)算機(jī)上運(yùn)行Linux 環(huán)境,Win安裝WSL(Windows Subsystem for Linux)主要是在win系統(tǒng)可以運(yùn)行l(wèi)inux系統(tǒng),下面詳解介紹如何安裝WSL和Ubuntu以及Ubuntu一些簡(jiǎn)單配置2024-06-06
WIN7下網(wǎng)站用localhost可以訪問(wèn)改為ip不可訪問(wèn)如何解決
iis發(fā)布的網(wǎng)站用localhost可以訪問(wèn),改成IP就無(wú)法訪問(wèn)該怎么解決,本文提供解決方法,需要的朋友可以參考下2012-12-12
IIS連接數(shù)實(shí)驗(yàn)(Web開(kāi)發(fā)必讀)
本文旨在通過(guò)實(shí)驗(yàn)發(fā)現(xiàn)IIS連接狀態(tài)以及其它因素會(huì)對(duì)它產(chǎn)生的影響,需要的朋友可以參考下2014-12-12
在dell PowerEdge 2950上安裝win2003 server的方法介紹
本文介紹下,在dell PowerEdge 2950上,安裝windows 2003 server的方法,以及遇到的一些問(wèn)題與解決方法,有遇到類似問(wèn)題的朋友,可以參考下2013-05-05
防止黑客侵入你正在使用的Windows系統(tǒng)(克隆管理員賬戶)
當(dāng)黑客入侵一臺(tái)主機(jī)后,會(huì)想方設(shè)法保護(hù)自己的“勞動(dòng)成果”,因此會(huì)在肉雞上留下種種后門來(lái)長(zhǎng)時(shí)間得控制肉雞,其中使用最多的就是賬戶隱藏技術(shù)2012-07-07

