1、首先应该创建环境变量:
Environment类是OCCI程序的基础类,所有的对象的建立都是依计对象来创建的,所以对象的建立必须放在第一位,而且也必须是最后一个被终止的。例如:首先创建一个对象env,然后通过创建一个Connectionconn,是连接了数据库的对象;终止时,却反过来先终止对象,再终止对象。
2、连接数据库:
创建完一个后,可以调用类下的方法createConnection()来创建一个;通过方法我们可以连接到任意一个数据库中。
#include "stdafx.h" #include "iostream" #include "occi.h" using namespace std; using namespace oracle::occi; int _tmain(int argc,_TCHAR* argv[]) { Environment *env = NULL; Connection *conn = NULL; string name = "system"; string pass = "system"; string srvName = "192.168.20.200/orcl"; try { /*创建一个环境变量*/ env = Environment::createEnvironment(); if (NULL == env) { printf("CreateEnvironment error.\n"); return -1; } else cout << "CreateEnvironment Success..." << endl; //创建数据库连接 conn = env->createConnection(name,pass,srvName);//用户名,密码,数据库名 if(NULL == conn) { printf("CreateConnection error.\n"); return -1; } else cout << "conn success" << endl; } catch(sqlException e) { char szLog[260] = {0}; sprintf(szLog,"InitADOConn错误:%s",e.what()); } /*先断开连接*/ if (conn != NULL) { env->terminateConnection(conn); conn = NULL; } /*再终止环境变量*/ if (env != NULL) { Environment::terminateEnvironment(env); env = NULL; } system("pause"); return 0; }
与ADO相比,我发现在远程连接数据库时,occi方式不用配置本地服务,通过在连接字符串中指定ip地址就可连接。