解决方案 »

  1.   

    来自Oracle自己的例子
    #include <occi.h>
    using namespace oracle::occi;
      
    Environment *env;
    Connection *conn;   env = Environment::createEnvironment (Environment::OBJECT);
        conn = env->createConnection (user, passwd, db);
      

  2.   

    哦,前面看错了。你那个是ODBC/JDBC的联接方式OCCI里面不需要第一个参数:指定驱动程序 第二个参数为数据源,也不需要。
    conn = env->createConnection (user, passwd, db); 
    第三个参数为Oracle网络服务名称,对应为tnsnames.ora中一条网络服务配置的名称。比如下面的 linux241
    LINUX241 =
      (DESCRIPTION =
        (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.108.241)(PORT = 1521))
        (CONNECT_DATA =
          (SERVER = DEDICATED)
          (SERVICE_NAME = orcl)
        )
      )
      

  3.   

    还有个问题 occi中有 movefirst、movelast这样的函数吗
      

  4.   

    还有个问题 occi中有 movefirst、movelast这样的函数吗 
    --------------------------------------------------------------------------
    没有。只有ResultSet->next()向后逐行遍历movefirst可以重新执行获取结果集获得等效结果   movelast没有办法,只有逐行遍历。  
      

  5.   

    又有个问题 ,像这种 str=(LPCSTR)(_bstr_t)rs->Fields->GetItem(pitem)->Value;
    Occi怎么来实现啊