vs2012通过occi连接oracle出错,是连接语句出错吗

#include
#define WIN32COMMON //避免函数重定义错误
#include
using namespace std;
using namespace oracle::occi;
int main()
{
Environment *env;
Connection *conn;
Statement *stmt;
ResultSet *rs;

string username = "collect";
string password = "1234";
string connstring = "192.168.11.40:1521/orcl";
string sql,strname;
string isno;

env = Environment::createEnvironment(); //创建一个环境变量
conn = env->createConnection(username,password,connstring); //创建一个数据库连接对象
sql = "SELECT host_name FROM m_host ";  //拼接一个SQL语句
stmt = conn->createStatement(sql); //创建一个Statement对象
stmt ->executeUpdate();
try 
{
    rs =  stmt->executeQuery();//执行SQL语句
    while (rs->next()) 
    { //用循环,一条一条地取得查询的结果记录
        isno = rs->getString(1);//取出第一列的值(对应为int型)
        cout << isno ;
    }
    cout << "SELECT ―― SUCCESS" << endl;
} 
catch (SQLException ex) 
{       cout << " Error Number : "<< ex.getErrorCode() << endl; //取出异常代码
    cout << ex.getMessage() << endl; //取出异常信息
}

conn->terminateStatement(stmt); //终止Statement对象
env->terminateConnection(conn); //断开数据库连接
Environment::terminateEnvironment(env); //终止环境变量
return 0;

}
已经加载了头文件库文件还有lib文件,运行会有这个错误,是连接的语句出错了吗,图片说明

3个回答

用occi连接数据库的方式没错。。

已经配置tnsname了,现在又是因为msvcr80.dll,违反接口什么的,还是不能运行。我下载一个放到system32里 还是不行

不知应该是不会出错的

但是具体的要看您自己的额

l_c_x_
l_c_x_ 回复MR-Zhangjp: 已经修改了,那我的connstring改成我的服务名,还是原来这样就可以啊。不好意思,麻烦了。
3 年多之前 回复
u011937547
MR-Zhangjp 回复l_c_x_: tnsname.ora 肯定的修改,必须确定数据库能连上。。
3 年多之前 回复
l_c_x_
l_c_x_ 回复qq_29447051: 需要修改tnsname.ora什么的吗
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问