我分别在vs2003和vs2005下,利用occi 连接oracle数据库,我用同样的代码在vc6.0下测试就可以顺利连接数据库,并得到正确的结果.我的代码如下:#include "stdafx.h"
#include <iostream>
#include <occi.h>
using namespace std;
using namespace oracle::occi;int _tmain(int argc, _TCHAR* argv[])
{
Environment *pEnviron = Environment::createEnvironment(Environment::DEFAULT);
try
{
Connection *pConn = pEnviron->createConnection("system", "test", "server");
if(pConn)
{
cout << "conn success" << endl;
}
else
{
cout << "conn failed" << endl;
}Statement *pState = pConn->createStatement("select * from hr.test");
ResultSet *pResu = pState->executeQuery();
while(pResu->next())
{
cout << "id:" << pResu->getInt(1) << endl;
cout << "name:" << pResu->getString(2) << endl;
}pState->closeResultSet(pResu);
pConn->terminateStatement(pState);
pEnviron->terminateConnection(pConn);
}
catch(SQLException ex )
{
cout << ex.getMessage();
}
catch(...)
{
cout << "unknow error" << endl;
}
return 0;
}可是在2003中每次执行到:
Connection *pConn = pEnviron->createConnection("system", "test", "server");
语句的时候就要报异常:
DataBaseTest.exe 中的 0x6087e01e 处未处理的异常: 0xC0000005: 读取位置 0x74737973 时发生访问冲突
难道是vs2003或者vs2005中有特殊的设置?还是环境设置有问题?还是什么其他原因呢?
请高手指点一二..感激不尽!!!我链接的库是oraocci9.lib包含文件目录是:E:\oracle\ora92\oci\include
库文件目录是:E:\oracle\ora92\oci\lib\msvc