c++ 调用occi访问oracle

//头文件
#include "stdafx.h"
#include "occi.h" 
#include "occiCommon.h" 
#include "occiControl.h" 
#include "occiData.h" 
#include "occiObjects.h" 
#pragma  comment (lib,"../../Lib/2010/oraocci11.lib") 
using namespace oracle::occi; 


class OcciConection { 
public: 
    OcciConection(); 
    virtual ~OcciConection(); 
    BOOL ExcuteSql(CString strSql); 
    BOOL Conection(); 
    void OcciDisConection(); 
    CString strUser; 
    CString strPasswd; 
    CString strDatabase; 
private: 
    oracle::occi::Environment *env; 
    oracle::occi::Connection  *conn; 
};
//实现代码
#include "stdafx.h"
#include "OcciFunction.h"






OcciConection::OcciConection()
{
}
OcciConection::~OcciConection()
{
}
BOOL OcciConection::Conection()
{
    CStringA straUser(strUser.GetBuffer(0));
    strUser.ReleaseBuffer();
    std::string user=straUser.GetBuffer(0);
    straUser.ReleaseBuffer();

    CStringA straPasswd(strPasswd.GetBuffer(0));
    strPasswd.ReleaseBuffer();
    std::string passwd=straPasswd.GetBuffer(0);
    straPasswd.ReleaseBuffer();

    CStringA straDatabase(strDatabase.GetBuffer(0));
    strDatabase.ReleaseBuffer();
    std::string database=straDatabase.GetBuffer(0);
    straDatabase.ReleaseBuffer();

    env = Environment::createEnvironment();
    try
    {
        conn = env->createConnection(user, passwd, database);
    }
    catch (SQLException& ex)
    {
        std::string error=ex.getMessage();
        return FALSE;
    }
    return TRUE;
}

void OcciConection::OcciDisConection()
{
    env->terminateConnection (conn);
    Environment::terminateEnvironment (env);
}

BOOL OcciConection::ExcuteSql(CString strSql)
{
    try
    {
        CStringA straSql(strSql.GetBuffer(0));
        strSql.ReleaseBuffer();
        std::string sql=straSql.GetBuffer(0);
        straSql.ReleaseBuffer();
        
        Statement *stmt = conn->createStatement(sql);
        stmt->executeUpdate();
        conn->terminateStatement(stmt);
    }
    catch (SQLException& ex)
    {
        std::string error=ex.getMessage();
        return FALSE;
    }
    return TRUE;
}


你可能感兴趣的:(c++ 调用occi访问oracle)