C++使用ocilib直连oracle

来源:互联网 发布:占星术杀人魔法 知乎 编辑:IT博客网 时间:2020/02/25 13:01
   ocilib的下载地址为:https://vrogier.github.io/ocilib/,当前版本为:version 4.3.3 (2017-06-07)    开发工具vs2017。   不用安装oracle客户端,只需要将oracle安装目录下的以下几个文件拷贝出来,注意区分是32位的还是64位的, oci.dll、oraociei12.dll、oraons.dll。我用的是客户端是12c的。   oracle是64位的,于是将程序编译成64位的。   vs2017的配置如下:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

   可以选取ocilib里面的例子测试。
#include <iostream>#include "ocilib.hpp"void err_handler(OCI_Error *err){    printf("%s\n", OCI_ErrorGetString(err));}int main(void){    OCI_Connection *cn;    if (!OCI_Initialize(err_handler, NULL, OCI_ENV_DEFAULT))    {        return EXIT_FAILURE;    }    cn = OCI_ConnectionCreate("(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=IP)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))", "user", "psw", OCI_SESSION_DEFAULT);    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));    OCI_ConnectionFree(cn);    OCI_Cleanup();    system("PAUSE");    return EXIT_SUCCESS;}
   运行结果如下:
Server major    version : 11Server minor    version : 2Server revision version : 0Connection      version : 1120

这里写图片描述