C++使用 OCILIB 连接 Oracle
来源:互联网 发布:淘宝上牛仔裤 编辑:程序博客网 时间:2024/06/05 18:21
#include <iostream>#include "ocilib.h"//错误处理void err_handler(OCI_Error *err){ int err_type = OCI_ErrorGetType(err); char *err_msg = (char*)OCI_ErrorGetString(err); printf("%s - %s\n", err_type == OCI_ERR_WARNING ? "warning" : "error", err_msg);}int main(int argc, char *argv[]){ int nRet = 0; OCI_Connection* cn = NULL; OCI_Statement* st = NULL; OCI_Resultset* rs = NULL; //初始化OCI库 nRet = OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT); if(!nRet) { std::cout << "OCI_Initialize fail" << std::endl; return -1; } do { std::cout << "compile version:" << OCI_GetOCICompileVersion() << std::endl; std::cout << "runtime version:" << OCI_GetOCIRuntimeVersion() << std::endl; //建立联接:tns:cctt1;username:d10086;password:d10086 cn = OCI_ConnectionCreate("cctt1", "D10086", "D10086", OCI_SESSION_DEFAULT); if(NULL == cn) { std::cout << "OCI_ConnectionCreate fail" << std::endl; err_handler(OCI_GetLastError()); nRet = -2; break; } printf("Server major version : %i\n", OCI_GetServerMajorVersion(cn)); printf("Server minor version : %i\n", OCI_GetServerMinorVersion(cn)); printf("Server revision version : %i\n\n", OCI_GetServerRevisionVersion(cn)); printf("Connection version : %i\n\n", OCI_GetVersionConnection(cn)); //建立声明 st = OCI_StatementCreate(cn); if(NULL == st) { std::cout << "OCI_StatementCreate fail" << std::endl; err_handler(OCI_GetLastError()); nRet = -3; break; } //绑定变量 char *value = "E3"; //准备SQL语句,用 :value 占位符占位 if(!OCI_Prepare(st, "select * from tb_smss_message where smsid=:value")) { std::cout << "OCI_Prepare fail" << std::endl; err_handler(OCI_GetLastError()); nRet = -4; break; } //绑定变量,用变量替换占位符 if(!OCI_BindString (st, ":value", value, strlen(value))) { std::cout << "OCI_BindString fail" << std::endl; err_handler(OCI_GetLastError()); nRet = -5; break; } //执行声明 if(!OCI_Execute(st)) { std::cout << "OCI_Execute fail" << std::endl; err_handler(OCI_GetLastError()); nRet = -6; break; } //得到返回值集 rs = OCI_GetResultset(st); if(NULL == rs) { std::cout << "OCI_GetResultset fail" << std::endl; err_handler(OCI_GetLastError()); nRet = -5; break; } //枚举返回值集 while (OCI_FetchNext(rs)) { printf("%i - %s\n", OCI_GetString(rs, 1), OCI_GetString(rs,2)); } }while(0); //释放返回集 if(rs) OCI_ReleaseResultsets (st); //清除声明 if(st) OCI_StatementFree(st); //清除连接 if(cn) OCI_ConnectionFree (cn); //清除OCI库 OCI_Cleanup(); return EXIT_SUCCESS;}
0 0
- C++使用 OCILIB 连接 Oracle
- 使用 OCILIB 连接并操作 Oracle 数据库
- c 语言使用ocilib连接 orale数据库
- C++通过OCILIB连接Oracle
- CPP/VCPP_连接Oracle数据库-OCILIB
- OCILIB 连接Oracle数据库——注意事项
- 在LINUX上使用OCILIB连接ORACLE数据库失败的问题
- Oracle数据库开发——使用OCILIB
- C++使用ocilib访问oracle数据库
- C++使用ocilib访问oracle的函数
- 使用oci封装库ocilib访问oracle
- 使用ocilib库访问oracle数据库
- C++使用ocilib直连oracle
- OCILIB使用
- linux中用netbeans开发ocilib连接oracle程序
- OCILIB 连接Oracle数据库——安装配置
- OCILIB 连接Oracle数据库——插入数据
- ocilib连接池
- hbase插入数据
- ZooKeeper源码学习笔记(3)--Cluster模式下的ZooKeeper
- Matlab横坐标轴去掉科学计数法
- uboot配置分析之make100ask24x0_config分析
- springmvc常用注解标签详解
- C++使用 OCILIB 连接 Oracle
- 博客收藏
- 第一个项目20170304个人小结
- Spring_AOP_XML
- 观察者模式 —— 让你的对象知悉现况
- hadoop2.5.2学习14--MR之协同过滤天猫推荐算法实现01
- 线程的调度和优先级问题
- Java数据结构04 栈与队列
- HDU 5833 Zhu and 772002 高斯消元解异或方程组,求自由元个数,bitset压位