VC6 C/CPP操作ORACLE数据库 clilib方案

来源:互联网 发布:linux boot分区 编辑:程序博客网 时间:2024/06/05 08:41

//VC6 ORACLE HA-Instant Client-v11.2.0.3.0-x86.rar  ocilib-4.2.0-windows.zip


#include "stdafx.h"
#include "ocilib.h"

#define OCI_CHARSET_ANSI

#ifdef _MSC_VER

#if defined(OCI_CHARSET_WIDE)
#pragma comment(lib, "ocilibw.lib")
#elif defined(OCI_CHARSET_ANSI)
#pragma comment(lib, "ociliba.lib")
#endif

#endif

#include <iostream>
#include <fstream>
#include <iomanip>
#include <sstream>

int test(void)
{
    OCI_Connection *cn;
OCI_Statement  *st;
    OCI_Resultset  *rs;
//要安装ORACLE Instant Client OCI_Initialize第二个参数可指令此目录
// char *home="D:\\Program Files\\Oracle\\Instant Client\\BIN";
    if (!OCI_Initialize(NULL, NULL, OCI_ENV_DEFAULT | OCI_ENV_CONTEXT)){
printf("OCI_Initialize failure\n");
        return EXIT_FAILURE;
}
    cn = OCI_ConnectionCreate("192.168.1.7/ORCL", "user", "passwd", 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));


 st  = OCI_StatementCreate(cn);

    OCI_ExecuteStmt(st, "select table_name from all_tables where owner='RX_DATASERVER'");
    rs = OCI_GetResultset(st);
    while (OCI_FetchNext(rs))
        printf("code: %i, name %s\n", OCI_GetInt(rs, 0)  , OCI_GetString(rs, 1));
    printf("\n%d row(s) fetched\n", OCI_GetRowCount(rs));

    OCI_Cleanup();
    return EXIT_SUCCESS;
}

int main(int argc, char* argv[])
{
printf("Hello World!\n");
test();
getchar();
return 0;
}

0 0
原创粉丝点击