1、首先应该创建环境变量:
Environment类是OCCI程序的基础类,所有的对象的建立都是依计对象来创建的,所以对象的建立必须放在第一位,而且也必须是最后一个被终止的。例如:首先创建一个对象env,然后通过创建一个Connectionconn,是连接了数据库的对象;终止时,却反过来先终止对象,再终止对象。
2、连接数据库:
创建完一个后,可以调用类下的方法createConnection()来创建一个;通过方法我们可以连接到任意一个数据库中。
3、连接数据库的实例代码:
#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地址就可连接。