簡體   English   中英

創建連接時,Visual Studio 2010報告Oracle OCCI 11g的“訪問沖突”

[英]Visual studio 2010 reporting “Access violation” for Oracle OCCI 11g when creating connection

當我嘗試在Microsoft Visual Studio 2010上與Oracle OCCI 11g建立連接時,出現以下錯誤:

OracleOCCI.exe中0x005a79c9處未處理的異常:0xC0000005:訪問沖突讀取位置0x316c6561。

我的代碼非常簡單,如下所示:

class DMLDemo
{
private:

    Environment *env;
    Connection *conn;
    Statement *stmt;

public:

    DMLDemo (string user, string passwd, string db)
    {
        env = Environment::createEnvironment (Environment::DEFAULT);
        if(env==nullptr)
            cout << "Failure";


            try
            {
                conn = env->createConnection (user, passwd, db);
        }
            catch (exception* e)
            {
                cout << "Error";
            }


    }

    ~DMLDemo ()
    {
        env->terminateConnection (conn);
        Environment::terminateEnvironment (env);
    }

};


int _tmain(int argc, _TCHAR* argv[])
{
    //01. Test Simple Connection
    try
    {
        DMLDemo demo("scott","Michael1","");
    }
    catch (exception* e)
    {
        cout << e->what();

    }

    getche();


    return 0;
}

我用谷歌搜索了一些答案,似乎oracle dll版本和VC版本之間的兼容性出了問題。

有解決方案的人嗎? 或者只是更改為VS 2005?

我一直在為Oracle 11g(11.2.0)32位數據庫構建VS08和VS10接口。 我發現在V9目錄中提供的許多提供occi11x.dll的站點(包括我自己的Oracle安裝)與VS08控制台應用程序不兼容。 最后,我必須從公司的另一個位置將經過測試的“金”二進制文件發送給我。 將x86'gold'dll安裝在控制台啟動目錄中后,相同的代碼即可正常運行。

我正在VS10 occi11x.dll中搜索相同的適用性。 到目前為止,我還沒有找到它。 創建環境后,我也遇到類似的錯誤。 有些dll允許我建立連接,但嘗試執行ResultSet-> next()時出錯,其他dll甚至不允許我執行executeQuery()。 我認為甲骨文沒有適當地管理這個問題。

“損壞”的VS08 dll有時具有與“金色” dll相同的正確日期和文件大小。 也許對dll進行內部搜索會發現哪些是可行的。

http://www.oracle.com/technetwork/database/occidownloads-083553.html是oracle用於提供各種occi dll以匹配Visual Studio的站點。 也許他們的VS12版本實際上與Oracle12c數據庫更兼容。

好的,最后我安裝了VS 2008,代碼工作正常。 似乎2008年編譯的Oracle DLL在VS2010中不起作用。

也許有一天,Oracle可以發布其VS2010 Dlls。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM