使用Visual Studio 2012 C ++连接到Oracle 11.2

时间:2016-02-03 16:21:49

标签: c++ oracle visual-studio-2012 occi

我正在尝试使用OCCI和Visual Studio 2012 c ++建立与Oracle 11.2的连接。

我已按照以下步骤操作。

  1. 获取instantclient-basic-windows.x64-11.2.0.4.0,instantclient-sdk-windows.x64-11.2.0.4.0和instantclient-sqlplus-nt-11.2.0.4.0并解压缩到C :(那么它应该是C:\ instantclient_11_2)

  2. 为Visual Studio 2010提取OCCI(这是http://www.oracle.com/technetwork/database/occidownloads-083553.html上的最新版本)

  3. 配置
    在C:\ instantclient_11_2 \ vc10中,从OCCI添加oraocci11.dll和oraocci11d.dll。 在C:\ instantclient_11_2 \ sdk \ lib \ msvc \ vc10中添加oraocci11d.lib和oraocci11.lib

  4. 将系统路径变量中的路径设置为C:\ instantclient_11_2 \ sdk \ lib \ msvc \ vc10; C:\ instantclient_11_2;

  5. 在项目中设置库路径 - > properties-> linker->输入 - >其他依赖项C:\ instantclient_11_2 \ sdk \ lib \ msvc \ vc10 \ oraocci11.lib C:\ instantclient_11_2 \ SDK \ lib中\ MSVC \ VC10 \ oraocci11d.lib

  6. 编辑VC ++目录包括C:\ instantclient_11_2 \ sdk \ include; $(IncludePath)库目录:C:\ instantclient_11_2 \ sdk \ lib \ msvc \ vc10; $(LibraryPath)

  7. 64位配置环境

  8. 工具 - >选项 - 调试 - >符号 - > Microsoft符号服务器(如有必要)

  9. 该计划,

    #include "stdafx.h"
    #include <iostream>
    #include <occi.h>
    
    namespace oc = oracle::occi;
    
    int main()
    {
        try
        {
            // setup
            oc::Environment* env = oc::Environment::createEnvironment(oracle::occi::Environment::DEFAULT); // 1
    
            try{
                oc::Connection* conn = env->createConnection("ASD", "ASD123", "dbName"); // 2
            }
            catch(const oc::SQLException& e){
                std::cout  << e.what() << std::endl; 
                exit(EXIT_FAILURE); 
            }
            oc::Environment::terminateEnvironment(env); 
        }
        catch(const oc::SQLException& e) // 7
        {
            std::cout << "Exception: " << e.what() << std::endl;
        }
    
        system("pause");
    }
    

    但我不断收到以下问题,

    'testSample4.exe'(Win32):已加载'C:\ instantclient_11_2 \ sdk \ lib \ msvc \ vc10 \ oraocci11.dll'。无法找到或打开PDB文件。

    testSample4.exe中0x000007FEFD41ADCD的第一次机会异常:Microsoft C ++异常:内存位置0x000000000031E7E8处的oracle :: occi :: SQLException。

    然后得到错误:属性OCI_ATTR_USERNAME大于最大允许长度255

    有人可以帮我这个吗...

0 个答案:

没有答案