源代码如下:
#include <iostream>   
#include <stdio.h>   
#include <occi.h>   
using namespace oracle::occi;
int main()
{   
Environment *env;   
Connection *conn;   
Statement *stmt;   
//连接  char struser[]="test";
char strpwd[]="test";
char strconn_string[]="192.168.1.1:1521/orcl";
env = Environment::createEnvironment(Environment::OBJECT);   
 conn = env->createConnection(struser,strpwd,strconn_string);   
if( NULL != conn )
  printf("conn success \r\n");  
else   
  printf("conn fail \r\n");
////执行sql,返回结果并显示   
char strname[100];
stmt = conn->createStatement( "select * from table1");
ResultSet *rset = stmt-> executeQuery();   
while( rset->next() )   
{   
  strcpy(strname,rset->getString(1).c_str());
printf("test strnanme =%s",strname);
}   
//关闭   
stmt->closeResultSet(rset);   
conn->terminateStatement(stmt);   
env->terminateConnection(conn);   
Environment::terminateEnvironment(env);
return 0;   
}   
这些源码都是网上搜来的,能连接上数据库,但是根本没有执行printf("test strnanme =%s",strname);
这语句,所以得不到记录集。请高手指教指教!到底哪里搞错了!! 

解决方案 »

  1.   

    我刚试了下可以,你可以参考以下:
    http://linbren.blog.163.com/blog/static/5568030820089196560641/
    注意点是我那个是oracle10g的,所以oraocci9.lib改成了oraocci10.lib
    还有这个你要根据自身情况进行修改:char strconn_string[]="192.168.1.1:1521/orcl";
      

  2.   


    楼上那位兄弟,我指的是LINUX C++,你那个贴是VC++的,不同系统环境的.
      

  3.   

    根本没有执行printf("test strnanme =%s",strname);
    在确定数据库连接成功的前提下:
    表table1的所有者是不是连接的用户test;
    表里是否有数据。。