| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279 |
- #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();
- }
|