C#應(yīng)用程序開發(fā)免安裝Oracle戶端的問題資料_第1頁
C#應(yīng)用程序開發(fā)免安裝Oracle戶端的問題資料_第2頁
C#應(yīng)用程序開發(fā)免安裝Oracle戶端的問題資料_第3頁
C#應(yīng)用程序開發(fā)免安裝Oracle戶端的問題資料_第4頁
C#應(yīng)用程序開發(fā)免安裝Oracle戶端的問題資料_第5頁
已閱讀5頁,還剩10頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、C#C#應(yīng)用程序開發(fā)應(yīng)用程序開發(fā)(CS) (CS) 免安裝免安裝OracleOracle戶端的問題戶端的問題 當(dāng)前,隨著數(shù)字化和當(dāng)前,隨著數(shù)字化和網(wǎng)絡(luò)網(wǎng)絡(luò)化的發(fā)展,應(yīng)用開發(fā)程序能夠簡潔部署已化的發(fā)展,應(yīng)用開發(fā)程序能夠簡潔部署已成為重要的應(yīng)用環(huán)節(jié)。由于信息化的發(fā)展,我公司先后實(shí)施了電極箔生產(chǎn)成為重要的應(yīng)用環(huán)節(jié)。由于信息化的發(fā)展,我公司先后實(shí)施了電極箔生產(chǎn)管理系統(tǒng),電子鋁箔生產(chǎn)管理系統(tǒng),高純鋁生產(chǎn)管理系統(tǒng),每個(gè)生產(chǎn)管理管理系統(tǒng),電子鋁箔生產(chǎn)管理系統(tǒng),高純鋁生產(chǎn)管理系統(tǒng),每個(gè)生產(chǎn)管理系統(tǒng)都存在著系統(tǒng)都存在著ORACLEORACLE客戶端的使用安裝。維護(hù)工作量相當(dāng)大。如何解決客戶端的使用安裝。維護(hù)工作

2、量相當(dāng)大。如何解決C/SC/S架構(gòu)下不安裝架構(gòu)下不安裝ORACLEORACLE客戶端是一個(gè)非常重要的問題客戶端是一個(gè)非常重要的問題 在開發(fā)生產(chǎn)管理系統(tǒng)項(xiàng)目中使用在開發(fā)生產(chǎn)管理系統(tǒng)項(xiàng)目中使用.Net.Net鏈接鏈接OracleOracle數(shù)據(jù)庫,有兩個(gè)驅(qū)動(dòng):數(shù)據(jù)庫,有兩個(gè)驅(qū)動(dòng):一個(gè)是一個(gè)是Microsoft CorporationMicrosoft Corporation公司公司.Net.Net產(chǎn)品自帶的,一個(gè)是產(chǎn)品自帶的,一個(gè)是OracleOracle公司開公司開發(fā)的發(fā)的ODP.NetODP.Net的驅(qū)動(dòng)。的驅(qū)動(dòng)。Microsoft CorporationMicrosoft Corporati

3、on公司公司.Net.Net產(chǎn)品自帶的驅(qū)動(dòng),產(chǎn)品自帶的驅(qū)動(dòng),必須用必須用TNSTNS方式連接數(shù)據(jù)庫必須用方式連接數(shù)據(jù)庫必須用TNSTNS方式連接數(shù)據(jù)庫,而不能用這種:方式連接數(shù)據(jù)庫,而不能用這種:Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = Data Source=(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 4)(PORT = 1521)(CONNECT_DATA =(SERVER = 4)(PORT = 1521)(CO

4、NNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = ORC);User ID=admin;Password=admin;DEDICATED)(SERVICE_NAME = ORC);User ID=admin;Password=admin;一一 、項(xiàng)目研發(fā)背景、項(xiàng)目研發(fā)背景 開發(fā)開發(fā)OracleOracle的的.Net.Net程序,標(biāo)準(zhǔn)流程是先安裝程序,標(biāo)準(zhǔn)流程是先安裝OracleOracle客戶端,然后使客戶端,然后使用用.Net.Net自帶驅(qū)動(dòng)或者自帶驅(qū)動(dòng)或者ODP.NetODP.Net。其實(shí)只要按照這個(gè)流程來做,基本上不會(huì)有錯(cuò)。其實(shí)只要按照這個(gè)

5、流程來做,基本上不會(huì)有錯(cuò)誤,要錯(cuò)也只是誤,要錯(cuò)也只是TNSTNS錯(cuò)而已。由于錯(cuò)而已。由于OracleOracle客戶端實(shí)在是無比龐大,盡管后來可客戶端實(shí)在是無比龐大,盡管后來可以只安裝以只安裝OracleOracle客戶端運(yùn)行時(shí),仍然很大??蛻舳诉\(yùn)行時(shí),仍然很大。 在此方案中,我們希望能做到免安裝,伴隨著我們開發(fā)的主程序拷貝過在此方案中,我們希望能做到免安裝,伴隨著我們開發(fā)的主程序拷貝過去就能用。經(jīng)過多次測試,去就能用。經(jīng)過多次測試,OracleOracle客戶端運(yùn)行時(shí)的關(guān)鍵在于客戶端運(yùn)行時(shí)的關(guān)鍵在于OCIOCI,也就是說,也就是說,不管用什么語言寫的程序,只要能找到運(yùn)行時(shí)的不管用什么語言寫的

6、程序,只要能找到運(yùn)行時(shí)的oci.dlloci.dll,基本上就能鏈接,基本上就能鏈接OracleOracle數(shù)據(jù)庫了。數(shù)據(jù)庫了。綜合比較:綜合比較:Microsoft CorporationMicrosoft Corporation公司公司.Net.Net產(chǎn)品自帶的驅(qū)動(dòng)和產(chǎn)品自帶的驅(qū)動(dòng)和OracleOracle公司開發(fā)的公司開發(fā)的ODP.NetODP.Net的驅(qū)動(dòng)的驅(qū)動(dòng)比較項(xiàng)目比較項(xiàng)目.Net.Net自帶自帶OracleOracle驅(qū)動(dòng)驅(qū)動(dòng)Oracle ODP.NetOracle ODP.Net驅(qū)動(dòng)驅(qū)動(dòng)連接字符串連接字符串TNSTNS寫法寫法支持支持支持支持連接字符串非連接字符串非TNSTNS

7、寫法寫法不支持不支持支持支持是否支持是否支持Oracle9Oracle9運(yùn)行時(shí)運(yùn)行時(shí)支持支持不支持不支持是否支持是否支持Oracle11Oracle11運(yùn)行時(shí)運(yùn)行時(shí)支持支持支持支持OCIOCI目錄設(shè)置方式目錄設(shè)置方式環(huán)境變量環(huán)境變量PathPath中設(shè)置中設(shè)置環(huán)境變量環(huán)境變量PathPath中設(shè)置中設(shè)置其它環(huán)境變量其它環(huán)境變量需要設(shè)置需要設(shè)置ORACLE_HOME ORACLE_HOME 無無運(yùn)行時(shí)安裝包大小運(yùn)行時(shí)安裝包大小9i9i運(yùn)行時(shí)安裝包運(yùn)行時(shí)安裝包13M13M11g11g運(yùn)行時(shí)安裝包運(yùn)行時(shí)安裝包30M30M最新最新ODP.NetODP.Net共共52M52M綠色精簡后大小綠色精簡后大小

8、9i9i運(yùn)行時(shí)運(yùn)行時(shí)6.5M6.5M11g11g運(yùn)行時(shí)運(yùn)行時(shí)30M30M據(jù)說的差別據(jù)說的差別性能底下,功能特性少性能底下,功能特性少性能最高,功能特性多性能最高,功能特性多二、項(xiàng)目技術(shù)方案二、項(xiàng)目技術(shù)方案 1 1、OracleOracle數(shù)據(jù)庫連接,采用數(shù)據(jù)庫連接,采用ORACLE ODP.NETORACLE ODP.NEToci.dll: oci.dll: 主要是主要是Client.OracleCommandClient.OracleCommand事件。事件。ociw32.dllociw32.dll:主要是:主要是oracleoracle客戶端及網(wǎng)絡(luò)組件。客戶端及網(wǎng)絡(luò)組件。orannzsbb

9、11.dllorannzsbb11.dll、oraocci11.dlloraocci11.dll、oraociei11.dll:Oracle.DataAccess.Client.OracleExceptionoraociei11.dll:Oracle.DataAccess.Client.OracleException異常事異常事務(wù)處理務(wù)處理Oracle.DataAccess.dll:Oracle.DataAccess.dll:數(shù)據(jù)庫連接處理。數(shù)據(jù)庫連接處理。OraOps11w.dll: OraOps11w.dll: 主要是主要是Client.OracleCommandClient.Oracle

10、Command事件。事件。實(shí)際上,這是使用實(shí)際上,這是使用ODP.NetODP.Net經(jīng)常遇到的問題,在經(jīng)常遇到的問題,在ODP.NetODP.Net中,中,Oracle.DataAccess.dll=OraOps11w.dll=oci.dllOracle.DataAccess.dll=OraOps11w.dll=oci.dll,前面兩者的版本必,前面兩者的版本必須須100%100%匹配。匹配。應(yīng)用程序必須找到上述文件的路徑。應(yīng)用程序必須找到上述文件的路徑。2 2、客戶端監(jiān)聽處理。、客戶端監(jiān)聽處理。oracle.keyoracle.key、classes12.jarclasses12.jar、

11、ojdbc14.jarojdbc14.jarclasses12.jarclasses12.jar、ojdbc14.jarojdbc14.jar必須在注冊表里注冊文件路徑或必須在注冊表里注冊文件路徑或環(huán)境變量。環(huán)境變量。3.3.配置配置d:oracleinstantclientd:oracleinstantclient的的tnsnames.oratnsnames.ora文件,在當(dāng)前文件,在當(dāng)前NETWORKADMINNETWORKADMIN下存放文件下存放文件tnsnames.oratnsnames.ora只需要修改其中的服務(wù)只需要修改其中的服務(wù)器地址、服務(wù)名稱和端口。器地址、服務(wù)名稱和端口。

12、tnsnames.oratnsnames.ora文件內(nèi)容文件內(nèi)容orcl =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL orcl =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 81)(PORT = 1521)(CONNECT_DATA = TCP)(HOST = 81)(PORT = 1521)(CONNECT_DATA =(SERVICE_NAME = orcl)=(SERVICE_NAME = orcl)4 4、

13、注冊表加入下面鍵值、注冊表加入下面鍵值 變量名:變量名: 1) ORACLE_HOME 1) ORACLE_HOME 變量值:變量值:D:Program Filesinstantclient_10_2D:Program Filesinstantclient_10_2 2) 2) 變量名:變量名:TNS_ADMINTNS_ADMIN 變量值:變量值:D:Program Filesinstantclient_10_2D:Program Filesinstantclient_10_2 3) 3) 變量名:變量名:NLS_LANGNLS_LANG 變量值:變量值:SIMPLIFIED CHINESE_

14、CHINA.ZHS16GBKSIMPLIFIED CHINESE_CHINA.ZHS16GBK 4) 4) 修改修改PathPath變量,在后面添加變量,在后面添加 D:Program D:Program Filesinstantclient_10_2Filesinstantclient_10_2三、網(wǎng)絡(luò)實(shí)施的項(xiàng)目技術(shù)方案三、網(wǎng)絡(luò)實(shí)施的項(xiàng)目技術(shù)方案 在做過的項(xiàng)目中,經(jīng)常有連接在做過的項(xiàng)目中,經(jīng)常有連接OracleOracle數(shù)據(jù)庫的情況,但是由于種種原因數(shù)據(jù)庫的情況,但是由于種種原因,無法在部署程序的電腦上安裝,無法在部署程序的電腦上安裝OracleOracle客戶端。這里提供了一種簡單的,客

15、戶端。這里提供了一種簡單的,無需安裝和多余配置的方法。適用于無需安裝和多余配置的方法。適用于.NET C#.NET C#。 網(wǎng)上有一些解決辦法,通常是要下載對應(yīng)版本的網(wǎng)上有一些解決辦法,通常是要下載對應(yīng)版本的Oracle instant Oracle instant clientclient, 但是這個(gè)客戶端是個(gè)壓縮包,解壓之后,還要進(jìn)行一些配置。但是這個(gè)客戶端是個(gè)壓縮包,解壓之后,還要進(jìn)行一些配置。對于客戶來說,有時(shí)候配置這些也是比較繁瑣的,因此這里把相關(guān)的內(nèi)容對于客戶來說,有時(shí)候配置這些也是比較繁瑣的,因此這里把相關(guān)的內(nèi)容總結(jié)一下,得出一個(gè)較為合理的方法??偨Y(jié)一下,得出一個(gè)較為合理的方法。

16、本方法優(yōu)點(diǎn):本方法優(yōu)點(diǎn):1 1、程序內(nèi)集成、程序內(nèi)集成OracleOracle客戶端,無需用戶自行進(jìn)行配置客戶端,無需用戶自行進(jìn)行配置本方法缺點(diǎn):本方法缺點(diǎn):2 2、增加程序包的體積(、增加程序包的體積(Oracle instant clientOracle instant client本身有幾十兆大?。┍旧碛袔资状笮。┫旅嬲f一下如何實(shí)現(xiàn)。下面說一下如何實(shí)現(xiàn)。0 0、首先,從、首先,從OracleOracle網(wǎng)站上下載對應(yīng)版本的網(wǎng)站上下載對應(yīng)版本的Oracle instant clientOracle instant client包,網(wǎng)址在這里包,網(wǎng)址在這里http:/ 1 1、下載來的、下

17、載來的.zip.zip壓縮包,解壓后應(yīng)該有如下文件:(測試是壓縮包,解壓后應(yīng)該有如下文件:(測試是11G11G版本,版本,1010可能略有不同)可能略有不同)classes12.jarclasses12.jaroci.dlloci.dllocijdbc11.dllocijdbc11.dllociw32.dllociw32.dllojdbc14.jarojdbc14.jarOracle.DataAccess.dllOracle.DataAccess.dllorannzsbb11.dllorannzsbb11.dlloraocci11.dlloraocci11.dlloraociei11.dllo

18、raociei11.dllOraOps11.dllOraOps11.dll其中其中Oraociei11.dllOraociei11.dll體積最大,可能封裝了一些資源文件。體積最大,可能封裝了一些資源文件。2 2、在你的工程根目錄下新建一個(gè)、在你的工程根目錄下新建一個(gè)”O(jiān)racle”O(jiān)racle”的文件夾(其實(shí)名字和位置隨便定),然的文件夾(其實(shí)名字和位置隨便定),然后將上述文件拷貝到里邊,并在后將上述文件拷貝到里邊,并在Visual StudioVisual Studio中添加這個(gè)文件夾及文件們。保證你的中添加這個(gè)文件夾及文件們。保證你的解決方案里能看到它們。解決方案里能看到它們。3 3、在

19、、在Visual Studio IDEVisual Studio IDE的的“解決方案資源管理器解決方案資源管理器”里,打開里,打開OracleOracle文件夾,選中里文件夾,選中里邊所有的文件,在邊所有的文件,在“屬性屬性”“”“復(fù)制到輸出目錄復(fù)制到輸出目錄”里設(shè)置里設(shè)置“如果較新則復(fù)制如果較新則復(fù)制”,這樣在,這樣在編譯或者發(fā)布程序的時(shí)候,編譯或者發(fā)布程序的時(shí)候,OracleOracle文件夾會(huì)隨著發(fā)布到文件夾會(huì)隨著發(fā)布到exeexe所在的地方,部署時(shí)候就不所在的地方,部署時(shí)候就不會(huì)出現(xiàn)找不到會(huì)出現(xiàn)找不到OracleOracle庫的情況。庫的情況。4 4、按照網(wǎng)上的大多數(shù)教程,這個(gè)時(shí)候就

20、需要在、按照網(wǎng)上的大多數(shù)教程,這個(gè)時(shí)候就需要在widnowswidnows環(huán)境變量里邊添加?xùn)|西了。其環(huán)境變量里邊添加?xùn)|西了。其實(shí)這一步不是必須的,因?yàn)榭紤]到不同的客戶環(huán)境,有可能用戶沒有權(quán)限在他的計(jì)算實(shí)這一步不是必須的,因?yàn)榭紤]到不同的客戶環(huán)境,有可能用戶沒有權(quán)限在他的計(jì)算機(jī)上操作這些,那么我們把設(shè)置機(jī)上操作這些,那么我們把設(shè)置OracleOracle環(huán)境變量放到程序里來做。那么在你初始化程環(huán)境變量放到程序里來做。那么在你初始化程序之后,使用序之后,使用OracleOracle之前,需要添加如下代碼:之前,需要添加如下代碼: string oraclePath = System.Windows

21、.Forms.Application.StartupPath + string oraclePath = System.Windows.Forms.Application.StartupPath + oracle;oracle;Environment.SetEnvironmentVariable(PATH, Environment.SetEnvironmentVariable(PATH, oraclePath,EnvironmentVariableTarget.Process);oraclePath,EnvironmentVariableTarget.Process);Environment.

22、SetEnvironmentVariable(NLS_LANG, SIMPLIFIED Environment.SetEnvironmentVariable(NLS_LANG, SIMPLIFIED CHINESE_CHINA.ZHS16GBK, EnvironmentVariableTarget.Process);CHINESE_CHINA.ZHS16GBK, EnvironmentVariableTarget.Process);解釋一下上面的代碼:解釋一下上面的代碼:string oraclePath = System.Windows.Forms.Application.StartupPa

23、th + oracle;string oraclePath = System.Windows.Forms.Application.StartupPath + oracle;這一句取得了這一句取得了oracle oracle 驅(qū)動(dòng)文件夾的位置,也就是放驅(qū)動(dòng)文件夾的位置,也就是放oci.dlloci.dll的地方。的地方。Environment.SetEnvironmentVariable(PATH, Environment.SetEnvironmentVariable(PATH, oraclePath,EnvironmentVariableTarget.Process);oraclePath,E

24、nvironmentVariableTarget.Process);這一句設(shè)置環(huán)境變量這一句設(shè)置環(huán)境變量“PATHPATH”,寫入,寫入oracleoracle驅(qū)動(dòng)所在的文件夾,第三個(gè)參數(shù)表示這個(gè)驅(qū)動(dòng)所在的文件夾,第三個(gè)參數(shù)表示這個(gè)PATHPATH只在當(dāng)前進(jìn)程起作用,不會(huì)修改電腦本身。只在當(dāng)前進(jìn)程起作用,不會(huì)修改電腦本身。注意:如果你用到某些外部程序,還有其他注意:如果你用到某些外部程序,還有其他PATHPATH變量要設(shè)置,在這里加入就行了。具體方變量要設(shè)置,在這里加入就行了。具體方法參見法參見相關(guān)文檔。相關(guān)文檔。Environment.SetEnvironmentVariable(NLS_L

25、ANG, SIMPLIFIED Environment.SetEnvironmentVariable(NLS_LANG, SIMPLIFIED CHINESE_CHINA.ZHS16GBK, EnvironmentVariableTarget.Process);CHINESE_CHINA.ZHS16GBK, EnvironmentVariableTarget.Process);這一句,設(shè)置這一句,設(shè)置OracleOracle在通訊過程中使用的語言和字符集。我的項(xiàng)目用的是上面的字符集,在通訊過程中使用的語言和字符集。我的項(xiàng)目用的是上面的字符集,對應(yīng)到你的項(xiàng)目,可用對應(yīng)到你的項(xiàng)目,可用SQLSQL

26、語句去語句去oracleoracle數(shù)據(jù)庫中查詢。這個(gè)語言和字符集一定要和服務(wù)數(shù)據(jù)庫中查詢。這個(gè)語言和字符集一定要和服務(wù)器一致,否則可能會(huì)出現(xiàn)亂碼甚至無法連接??赡軙?huì)用到如下器一致,否則可能會(huì)出現(xiàn)亂碼甚至無法連接??赡軙?huì)用到如下SQLSQL語句:語句:/select userenv(language) from dual; /select userenv(language) from dual; 查詢服務(wù)端字符集查詢服務(wù)端字符集, ,用來設(shè)置上面的參數(shù)。用來設(shè)置上面的參數(shù)。/select /select * * from nls_database_parameters;/ from nls_d

27、atabase_parameters;/服務(wù)器字符集服務(wù)器字符集/select /select * * from nls_instance_parameters;/ora from nls_instance_parameters;/ora文件定義字符集文件定義字符集/select /select * * from nls_session_parameters; / from nls_session_parameters; /會(huì)話字符集會(huì)話字符集5 5、理論上,經(jīng)過上面的設(shè)置,你的程序就可以使用內(nèi)置到、理論上,經(jīng)過上面的設(shè)置,你的程序就可以使用內(nèi)置到exeexe目錄下的目錄下的OracleOra

28、cle驅(qū)動(dòng)了,這驅(qū)動(dòng)了,這里要注意的還有就是連接數(shù)據(jù)庫的方式,上面的修改并不能保證你可以使用里要注意的還有就是連接數(shù)據(jù)庫的方式,上面的修改并不能保證你可以使用tnstns名來連接,名來連接,因此連接字符串要做如下修改:因此連接字符串要做如下修改: 在在app.configapp.config中修改中修改connectionStringconnectionString為為Persist Security Info=True;User ID=Persist Security Info=True;User ID=數(shù)據(jù)庫用戶名數(shù)據(jù)庫用戶名;Password=;Password=數(shù)據(jù)庫密數(shù)據(jù)庫密碼碼;U

29、nicode=True;Data Source= (DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL ;Unicode=True;Data Source= (DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = = TCP)(HOST = 服務(wù)器服務(wù)器IPIP地址地址)(PORT = 1521)(CONNECT_DATA =(SERVICE_NAME = )(PORT = 1521)(CONNECT_DATA =(SERVICE_NAME = 服務(wù)服務(wù)器上的數(shù)據(jù)庫實(shí)例名器上的

30、數(shù)據(jù)庫實(shí)例名););這個(gè)主要是把這個(gè)主要是把“Data Source”Data Source”這部分直接用這部分直接用tcp/iptcp/ip字符串方式替換了(通常字符串方式替換了(通常Data SourceData Source是寫是寫tnstns名稱的)名稱的)6 6、好了,運(yùn)行你的程序試試看吧。、好了,運(yùn)行你的程序試試看吧。最后最后,如果你還是習(xí)慣寫,如果你還是習(xí)慣寫tnstns名稱來訪問名稱來訪問oracleoracle數(shù)據(jù)庫,那么還要做以下工作。數(shù)據(jù)庫,那么還要做以下工作。(注意,以下未測試)(注意,以下未測試)a.a.在程序的在程序的OracleOracle文件夾下增加文件夾下增加

31、tnsnames.oratnsnames.ora,并將,并將tnstns名稱的配置寫到里邊去。名稱的配置寫到里邊去。b.b.在程序設(shè)置環(huán)境變量的地方,加入在程序設(shè)置環(huán)境變量的地方,加入Environment.SetEnvironmentVariable(TNS_ADMIN, Environment.SetEnvironmentVariable(TNS_ADMIN, oraclePath,EnvironmentVariableTarget.Process);oraclePath,EnvironmentVariableTarget.Process);c.c.連接字符串里應(yīng)該可以使用連接字符串里應(yīng)該

32、可以使用tnstns名稱了名稱了Oracle ODP.Net Oracle ODP.Net 的手工分發(fā)的手工分發(fā) 1 1 、版本:、版本:VersionVersion 對于對于ODP.NetODP.Net版本問題,若使用版本問題,若使用ODP.Net10.2.0ODP.Net10.2.0版本,則客戶端版本,則客戶端(Oracle (Oracle Client)Client)也要相應(yīng)的使用也要相應(yīng)的使用10.210.2的版本,否則會(huì)鏈接不成功;其實(shí)也是很簡單,的版本,否則會(huì)鏈接不成功;其實(shí)也是很簡單,就是保證就是保證BinBin目錄下的目錄下的dlldll版本就基本差不多了;同時(shí)版本就基本差不多了;同時(shí)ODP.NetODP.Net在此目錄增加兩在此目錄增加兩個(gè)非常重要的個(gè)非常重要的dlldll(OraOps10.dllOraOps10.dll,OraOps10w.dllOraOps10w.dll););2 2、語言集:(

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論