欢迎来到天天文库
浏览记录
ID:61507084
大小:74.00 KB
页数:6页
时间:2021-02-08
《VC++.NET使用OCCI连接远程ORACLE数据库.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、VC++.NET使用OCCI连接远程ORACLE数据库 由于项目的需要,需要用C++去连Oracle数据库,Oracle版本为10g,在经过n次错误后终于成功连接。 最开始用ADO连,装上客户端以后,在OracleNetManager中设置服务命名,测试连接成功,然后设置ODBC数据源,测试也成功,ADO连接串写上"DSN=xxx"就能连上了,但是在释放连接时总是出错,经过多次尝试后放弃,在网上看到Oracle专门为C++提供了连接的接口OCCI,于是尝试采用这种方法。 一、安装Ora
2、cle客户端 安装方式选择为管理员。安装完以后设置服务命名。在%ORACLIENTHOME%NETWORKADMIN目录下tnsnames.ora文件记录了服务命名的设置。我的设置如下: ORCL_192.168.0.3 = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521)) ) (CONNECT_D
3、ATA = (SID = orcl) (SERVER = DEDICATED) ) )ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.3)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL_192.168.0.3) ) )其中192.168.0.3为远程Oracle服务器IP
4、地址设置完以后在NetManager中测试连接,成功就OK了。 二、设置VC++.net环境 我用的编译器是VS2003,首先在工具---选项中Project添加包含文件%OracleClientHome%Ociinclude添加库文件%OracleClientHome%Ocilibmsvcvc71和%OracleClientHome%Ocilibmsvc如果是VC6.0的话就添加%OracleClientHome%Ocilibmsvcvc6。然后设置项目属性,在编译器
5、---链接中添加lib文件,oraocci10d.lib,之后把oraocci10d.dll文件复制到system32目录下,这个文件在VC71目录下。第三步在C++----代码生成中设置运行时库为多线程DLL或是多线程调试DLL,注意这一步设置很重要,没有设置的话会造成getString函数出错。 三、代码 #include "stdafx.h"#include using namespace std;using namespace oracle::occi ;int main(
6、) { Environment* env=Environment::createEnvironment("ZHS16GBK", "UTF8"); //Environment *env=Environment::createEnvironment(Environment::DEFAULT); string mc; { Connection *conn = env->createConnection("system", "system", "orcl_192.168.0.3");
7、 try { Statement *stmt = conn->createStatement("select * from test1"); ResultSet *rs = stmt->executeQuery(); while(rs->next() == true) { mc=rs->getString(1); cout << mc <<
8、 endl; } stmt->closeResultSet(rs); conn->terminateStatement(stmt); } catch (SQLException e) {
此文档下载收益归作者所有