我正在尝试使用OCCI和Visual Studio 2012 c ++建立与Oracle 11.2的连接。
我已按照以下步骤操作。
获取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)
为Visual Studio 2010提取OCCI(这是http://www.oracle.com/technetwork/database/occidownloads-083553.html上的最新版本)
配置
在C:\ instantclient_11_2 \ vc10中,从OCCI添加oraocci11.dll和oraocci11d.dll。
在C:\ instantclient_11_2 \ sdk \ lib \ msvc \ vc10中添加oraocci11d.lib和oraocci11.lib
将系统路径变量中的路径设置为C:\ instantclient_11_2 \ sdk \ lib \ msvc \ vc10; C:\ instantclient_11_2;
在项目中设置库路径 - > properties-> linker->输入 - >其他依赖项C:\ instantclient_11_2 \ sdk \ lib \ msvc \ vc10 \ oraocci11.lib C:\ instantclient_11_2 \ SDK \ lib中\ MSVC \ VC10 \ oraocci11d.lib
编辑VC ++目录包括C:\ instantclient_11_2 \ sdk \ include; $(IncludePath)库目录:C:\ instantclient_11_2 \ sdk \ lib \ msvc \ vc10; $(LibraryPath)
64位配置环境
工具 - >选项 - 调试 - >符号 - > Microsoft符号服务器(如有必要)
该计划,
#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
有人可以帮我这个吗...