#include "StdAfx.h" #include "OtlDB.h" #include "OtlConnHost.h" #ifdef DBCTRL_EXPORTS /***************************************************************** **【函数名称】 Initialize **【函数功能】 初始化OTL环境(接口静态函数实现) **【参数】 **【返回值】 *****************************************************************/ void IOtlConnection::Initialize() { otl_connect::otl_initialize(); } /***************************************************************** **【函数名称】 getInstance **【函数功能】 获取数据库连接实例(接口静态函数实现) **【参数】 **【返回值】 *****************************************************************/ IOtlConnection* IOtlConnection::getInstance() { return COtlConnection::GetOtlInstence(); } #endif COtlConnection* COtlConnection::m_pInstence = NULL;//静态变量声明 COtlConnection::COtlConnection() { m_pOtlConnHost = new COtlConnHost(); } COtlConnection::~COtlConnection() { delete m_pOtlConnHost; delete m_pInstence; } /***************************************************************** **【函数名称】 GetInstence **【函数功能】 获取数据库实例(静态成员) **【参数】 **【返回值】 *****************************************************************/ COtlConnection* COtlConnection::GetOtlInstence() { if (NULL == m_pInstence) { m_pInstence = new COtlConnection(); } return m_pInstence; } /***************************************************************** **【函数名称】 DestroyInst **【函数功能】 释放一个数据连接实例(静态成员) **【参数】 pInst 要释放的数据库实例 **【返回值】 *****************************************************************/ // void COtlConnection::DestroyInst(COtlConnection* pInst) // { // delete pInst; // } /***************************************************************** **【函数名称】 Connect **【函数功能】 连接注册表中默认配置的数据库 **【参数】 **【返回值】 *****************************************************************/ BOOL COtlConnection::Connect() { return m_pOtlConnHost->Connect(); } /***************************************************************** **【函数名称】 Connect **【函数功能】 连接指定连接字符串的数据库 **【参数】 **【返回值】 *****************************************************************/ BOOL COtlConnection::Connect(LPCTSTR lpszConnString) { return m_pOtlConnHost->Connect(lpszConnString); } /***************************************************************** **【函数名称】 Disconnect **【函数功能】 断开数据库连接 **【参数】 **【返回值】 *****************************************************************/ void COtlConnection::Disconnect() { m_pOtlConnHost->Disconnect(); } /***************************************************************** **【函数名称】 GetDbType **【函数功能】 获取数据库类型 **【参数】 **【返回值】 数据库类型 *****************************************************************/ DB_TYPE COtlConnection::GetDatabaseType() { return m_pOtlConnHost->GetDBType(); } /***************************************************************** **【函数名称】 ConnectTest **【函数功能】 数据库连接测试 **【参数】 **【返回值】 *****************************************************************/ BOOL COtlConnection::ConnectTest(LPCTSTR lpszConnString, LPSTR lpErrInfo)// 连接测试 { return m_pOtlConnHost->TestConnect(lpszConnString,lpErrInfo); } /***************************************************************** **【函数名称】 InsertConstant **【函数功能】 恒量插入(单数据) **【参数】 lpszSQL Insert语句 **【返回值】 *****************************************************************/ BOOL COtlConnection::InsertConstant(LPCTSTR lpszSQL) { // 把数据库类型判断移动到底层实现 return m_pOtlConnHost->InsertConstant(lpszSQL); } /***************************************************************** **【函数名称】 ExecCommand **【函数功能】 直接命令执行 **【参数】 lpszSQL SQL执行语句 **【返回值】 *****************************************************************/ BOOL COtlConnection::ExecCommand(LPCTSTR lpszSQL) { return m_pOtlConnHost->ExecCommand(lpszSQL); } /***************************************************************** **【函数名称】 DropTableCommand **【函数功能】 删除表命令函数 **【参数】 lpszSQL SQL执行语句 **【返回值】 *****************************************************************/ void COtlConnection::DropTableCommand(LPCTSTR lpszSQL) { m_pOtlConnHost->ExecComForDropTable(lpszSQL); } /***************************************************************** **【函数名称】 GetSingleDataString **【函数功能】 获取字符串单值 **【参数】 IN lpszSQL SQL查询语句 OUT lpValue **【返回值】 *****************************************************************/ BOOL COtlConnection::GetSingleDataString(LPCTSTR lpszSQL, CHAR* lpValue) { return m_pOtlConnHost->GetSingleDataString(lpszSQL, lpValue); } /***************************************************************** **【函数名称】 GetSingleDataStr **【函数功能】 获取字符串单值 **【参数】 IN lpszSQL SQL查询语句 OUT lpValue **【返回值】 *****************************************************************/ CString COtlConnection::GetSingleDataStr(LPCTSTR strSql) // 获取字符串单值 { CHAR buff[OTL_MAX_BUFF_SIZE]; if (m_pOtlConnHost->GetSingleDataString(strSql, buff)) { CString strValue = buff; return strValue; } return ""; } /***************************************************************** **【函数名称】 GetSingleDataStrtoInt **【函数功能】 获取字符串单值并转化成整型返回 **【参数】 CString strSql SQL查询语句 **【返回值】 *****************************************************************/ long COtlConnection::GetSingleDataStr2Int(LPCTSTR strSql) { CString strResult = GetSingleDataStr(strSql); return atoi(strResult); } /***************************************************************** **【函数名称】 GetSingleDataText **【函数功能】 获取Text串单值 **【参数】 IN lpszSQL SQL查询语句 OUT lpValue 返回值 **【返回值】 *****************************************************************/ BOOL COtlConnection::GetSingleDataText(LPCTSTR lpszSQL, CHAR* lpValue) { return m_pOtlConnHost->GetSingleDataText(lpszSQL, lpValue); } /***************************************************************** **【函数名称】 GetSingleDataInt **【函数功能】 获取整型单值 **【参数】 IN lpszSQL SQL查询语句 OUT nValue 返回值 **【返回值】 *****************************************************************/ BOOL COtlConnection::GetSingleDataInt(LPCTSTR lpszSQL, LONG& nValue) { return m_pOtlConnHost->GetSingleDataInt(lpszSQL, nValue); } /***************************************************************** **【函数名称】 GetSingleDataInt **【函数功能】 获取整型单值 **【参数】 CString strSql SQL查询语句 **【返回值】 成功返回 查询结果int值 失败返回-1 *****************************************************************/ long COtlConnection::GetSingleDataInt(LPCTSTR strSql) { long lValue = 0; if (m_pOtlConnHost->GetSingleDataInt(strSql, lValue)) { return lValue; } return -1; } /***************************************************************** **【函数名称】 QueryRecords **【函数功能】 查询记录集 **【参数】 lpszSQL SQL查询语句 **【返回值】 *****************************************************************/ OTL_RECORD_SET* COtlConnection::QueryRecords(LPCTSTR lpszSQL) { COtlRecordset* pRD = new COtlRecordset(m_pOtlConnHost); if(!pRD->__InitData(lpszSQL)) { OTL_RECORD_SET::DestroyInstance(pRD); return NULL; } return pRD; } /***************************************************************** **【函数名称】 CallStoredProc **【函数功能】 调用存储过程 **【参数】 a_DeclareWord:存储过程声明语句 **【返回值】 *****************************************************************/ OTL_STORED_PROC* COtlConnection::CallStoredProc( const CString& a_DeclareWord ) { return m_pOtlConnHost->CallStoredProc(a_DeclareWord); } /***************************************************************** **【函数名称】 GetLastError **【函数功能】 获取最近一次错误信息 **【参数】 **【返回值】 *****************************************************************/ LPCTSTR COtlConnection::GetLastError() { return m_pOtlConnHost->GetLastError(); }