關於vs2008使用oracleclient鏈接oracle數據庫報報錯OCIEnvCreate 失敗,返回代碼為 -1,但錯誤消息文本不可用


       用vs2008鏈接oracle數據庫出現問題,報錯OCIEnvCreate 失敗,返回代碼為 -1,但錯誤消息文本不可用,從網上找了好久方法,有兩種oracle客戶端文件權限,和運行vs2008以管理員身份,這些都試過了沒有用,查了好久還是沒有解決問題,只好換一種方式鏈接oracle數據了。
       我使用的是ODAC方式鏈接oracle數據庫,這樣就不需要安裝oracle客戶端了,我的操作步驟如下:
1.從[url=http://download.oracle.com/otn/other/ole-oo4o/ODTwithODAC1110621.zip?AuthParam=1427792567_926a5eb7e7f7456724673afbdb80c825][/url]下載安裝ODAC安裝文件,因為我需要安裝文件下面的幾個DLL,下載下來的文件為ODTwithODAC1110621.zip 壓縮文件。
2.我們解壓之后里面有安裝setup.exe.點擊執行,之后彈出一個dos界面,等待幾十秒之后彈出安裝界面。按提示點擊下一步完成安裝。到90%的時候安裝會比較慢。
3.安裝完之后我們在安裝路徑下(我的是E:\app\Administrator)可以找到oci.dll,ociw32.dll,orannzentr11,orannzmcs11,orannzsbb11,oraocci11,oraociei11,orasql11.dll,orasqlplusic11,sqora32,sqresja,就這么多DLL,最關鍵的一個DLL是在(我的是E:\app\Administrator\odp.net\bin)路徑下里面有兩個文件夾,你對應自己的.Net Framework 選擇Oracle.DataAccess.dll。
4.將上面提到的DLL拷貝到DeBug的路徑下面,我的asp.net程序,我拷貝到了bin目錄下面
5.重新生成解決方案,寫段使用Oracle.DataAccess.Client方式鏈接Oracle的方式試一下,是否可以鏈接成功。
6.我提供下我的例子

[code=csharp] 測試例子[/code]

public void connByOracleClient()
    {
        string connString = @"user id=XXXXpassword=XXXX;Data Source=(DESCRIPTION ="
    + "(ADDRESS = (PROTOCOL = TCP)(HOST = XX.xx.xx.xx)(PORT = 1521))"
   + " (CONNECT_DATA ="
     + " (SERVER = DEDICATED)"
     + " (SERVICE_NAME = xx)"
    + "))";
        OracleConnection conn = new OracleConnection(connString);
        conn.Open();
        string sql = "select * from xx";

        OracleCommand comm = new OracleCommand(sql, conn);
        OracleDataReader rdr = comm.ExecuteReader();
        while (rdr.Read())
        {
            string s = rdr.GetString(5);
        }


運行成功沒有任何錯誤和異常。

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com