C++访问ORACLE数据库

首先,参考资料是官方文档:https://docs.oracle.com/database/121/LNCPP/toc.htm

OCCI要访问ORACLE数据库,需要几部分文件:include头文件,lib库文件,dll文件,其实基本步骤是怎么找到这些文件。

获取这些文件,需要在oracle官网下载几个包:

1:Instant Client Package - Basic: All files required to run OCI, OCCI, and JDBC-OCI applications

2:Instant Client Package - SDK: Additional header files and an example makefile for developing Oracle applications with Instant Client

3:OCCI接口:Oracle C++ Call Interface


分别下载这三个包:

1:Instant Client Package - Basic、Instant Client Package - SDK两个包的下载地址:http://www.oracle.com/technetwork/topics/winsoft-085727.html(其他平台:http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html)

选中一个版本,所选版本需要高于oracle数据库的版本;且这两个包的版本要一致。

2:OCCI接口下载地址:http://www.oracle.com/technetwork/database/occidownloads-083553.html

选中一个版本,该版本要和前两个包的版本保持一致。从该下载页的表格中可以看出,VS2010提供了zip包,而之前的VS版本则需要安装oracle客户端才能访问数据库,所以使用vs2010就方便多了,只需要相应的库文件即可。


下载完成后:

分别解压三个包:

1:所需的include头文件在instantclient-sdk-nt-11.2.0.4.0\instantclient_11_2\sdk\include路径下(Instant Client Package - SDK包)

2:lib文件在OCCI接口包中:oraocci11.lib或者oraocci11d.lib(SDK包中也有lib文件,但测试发现用不上)

3:dll文件在OCCI接口包中的:oraocci11.dll或者oraocci11d.dll,以及Instant Client Package - Basic包中的:oraociei11.dll、oci.dll、orannzsbb11.dll(如果orannzsbb11不要也可以,该包下的其他dll、sym、exe文件不用管,至于具体作用还没来得及研究)。

参考代码:

[cpp]  view plain  copy
  1. #include "occi.h"  
  2. using namespace oracle::occi;  
  3.   
  4. #include <iostream>  
  5. #include <string>  
  6. using namespace std;  
  7.   
  8. int testOracle(){  
  9.       
  10.     Environment *env;  
  11.     try  
  12.     {  
  13.         env =Environment::createEnvironment(Environment::DEFAULT);  
  14.         cout<<"success"<<endl;  
  15.         string name = "root";  
  16.         string pass = "root";  
  17.         string srvName = "//171.29.34.41:1521/ORCL";  
  18.   
  19.         Connection *conn = env->createConnection(name, pass,srvName);  
  20.         cout<<"conn success"<<endl;  
  21.         Statement *stmt = NULL;  
  22.         ResultSet *rs = NULL;  
  23.         string sql = "select \"StorageServerPath\" from \"temp\"";  
  24.   
  25.         stmt = conn->createStatement(sql);  
  26.         rs = stmt->executeQuery();  
  27.         while (rs->next()) {  
  28.             cout <<rs->getString(1)<<endl;  
  29.         }  
  30.   
  31.         env->terminateConnection(conn);  
  32.     }  
  33.     catch(SQLException e)  
  34.     {  
  35.         cout<<e.what()<<endl;  
  36.         return -1;  
  37.     }  
  38.     Environment::terminateEnvironment(env);  
  39.     cout<<"end!"<<endl;  
  40.       
  41.     return 0;  
  42. }  
  43.   
  44. int main()  
  45. {  
  46.     testOracle();  
  47.       
  48.     getchar();  
  49.     return 0;  
  50. }  


其他参考文章:

C# 使用OCCI 连接Oracle 数据库:http://blog.csdn.net/superhackerzhang/article/details/7648235

VC8 + OCCI 连接oracle 11g(11.2):http://blog.csdn.net/yangxingya/article/details/6005133



转载自:http://blog.csdn.net/garfield2005/article/details/50432408

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值