VC++.NET使用OCCI连接远程ORACLE数据库.doc

VC++.NET使用OCCI连接远程ORACLE数据库.doc

ID:61507084

大小:74.00 KB

页数:6页

时间:2021-02-08

VC++.NET使用OCCI连接远程ORACLE数据库.doc_第1页
VC++.NET使用OCCI连接远程ORACLE数据库.doc_第2页
VC++.NET使用OCCI连接远程ORACLE数据库.doc_第3页
VC++.NET使用OCCI连接远程ORACLE数据库.doc_第4页
VC++.NET使用OCCI连接远程ORACLE数据库.doc_第5页
资源描述:

《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)        {            

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。