77 lines
1.9 KiB
C
77 lines
1.9 KiB
C
|
|
#pragma once
|
|||
|
|
/*
|
|||
|
|
*
|
|||
|
|
* Sql封装类,避免多线程环境下,执行SQL查询加锁后没有释放锁,导致其他线程阻塞得不到执行。
|
|||
|
|
* 使用方式:
|
|||
|
|
CSqlHelper sqlHelper(&m_SQLConn)
|
|||
|
|
sqlHelper.Exec(sQueryActorData, ...)
|
|||
|
|
* CSqlHelper内部有个变量,记录执行查询或者数据库操作命令是否成功,如果成功,析构函数会自动
|
|||
|
|
* 调用SQL::ResetQuery()。注意,因为每次执行查询成功,都会修改CSqlHelper类的m_bNeedReset
|
|||
|
|
* 所以,如果要连续执行多个db查询命令,每个命令执行完毕都需要手动调用Reset。
|
|||
|
|
* 例如:
|
|||
|
|
* // 执行SQL命令1
|
|||
|
|
* CSqlHelper sqlHelper(&m_SQLConn)
|
|||
|
|
* sqlHelper.Exec(sDBCmd1);
|
|||
|
|
* // 这里需要手动重置
|
|||
|
|
* sqlHelper.Reset();
|
|||
|
|
* // 执行SQL命令2
|
|||
|
|
* sqlHelper.Query(sDBQuery2, ...);
|
|||
|
|
* // 如果这是最后一条命令,不需要手动重置,析构函数会自动重置
|
|||
|
|
*/
|
|||
|
|
|
|||
|
|
#include "_osdef.h"
|
|||
|
|
#include "SQL.h"
|
|||
|
|
|
|||
|
|
class CSQLConenction;
|
|||
|
|
class CSqlHelper
|
|||
|
|
{
|
|||
|
|
public:
|
|||
|
|
CSqlHelper(CSQLConenction* conn);
|
|||
|
|
~CSqlHelper();
|
|||
|
|
/*
|
|||
|
|
* Comments: 重置本次查询结果
|
|||
|
|
* @Return void:
|
|||
|
|
* @Remark:
|
|||
|
|
*/
|
|||
|
|
void Reset();
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* Comments: 执行SQL查询,不定长参数
|
|||
|
|
* Param const char * sQueryFormat:
|
|||
|
|
* Param ...:
|
|||
|
|
* @Return int:
|
|||
|
|
* @Remark:
|
|||
|
|
*/
|
|||
|
|
int Query(const char* sQueryFormat, ...);
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* Comments: 执行SQL查询,定长参数
|
|||
|
|
* Param const char * sQueryText:
|
|||
|
|
* Param const size_t nTextLen:
|
|||
|
|
* @Return int:
|
|||
|
|
* @Remark:
|
|||
|
|
*/
|
|||
|
|
int RealQuery(const char* sQueryText, const size_t nTextLen);
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* Comments: 执行SQL命令,不定长参数
|
|||
|
|
* Param const char * sQueryFormat:
|
|||
|
|
* Param ...:
|
|||
|
|
* @Return int:
|
|||
|
|
* @Remark:
|
|||
|
|
*/
|
|||
|
|
int Exec(const char* sQueryFormat, ...);
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* Comments: 执行SQL命令,定长参数
|
|||
|
|
* Param const char * sExecText:
|
|||
|
|
* Param const size_t nTextLen:
|
|||
|
|
* @Return int:
|
|||
|
|
* @Remark:
|
|||
|
|
*/
|
|||
|
|
int RealExec(const char* sExecText, const size_t nTextLen);
|
|||
|
|
private:
|
|||
|
|
CSQLConenction* m_pSQLConnection;
|
|||
|
|
bool m_bNeedReset;
|
|||
|
|
};
|