⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mysqloperator.cpp

📁 视频播放控制器程序
💻 CPP
字号:
// MySqlOperator.cpp: implementation of the CMySqlOperator class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MySqlOperator.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMySqlOperator::CMySqlOperator()
{
	m_pConn = NULL;
	m_pQuery = NULL;
	m_bConnected = FALSE;
}

CMySqlOperator::~CMySqlOperator()
{
	FreeDb();	
}

/***************************************************************** 
** @name: FreeDb
** @return void
** @description: 
释放链接对象和查询对象。在数据库Open时候和CMySqlOperator对象注销的
时候被调用。
****************************************************************/
void CMySqlOperator::FreeDb()
{
	if(m_pQuery != NULL)
	{
		delete m_pQuery;
		m_pQuery=NULL;
	}

	if(m_pConn != NULL)
	{
		delete m_pConn;	
		m_pConn=NULL;
	}

	m_bConnected = FALSE;
}

/***************************************************************** 
** @name: Open
** @param [in] LPCTSTR lpszDb 数据库名称
** @param [in] LPCTSTR lpszHost 数据库所在主机地址
** @param [in] LPCTSTR lpszUser 数据库访问用户
** @param [in] LPCTSTR lpszPassword 用户密码
** @return BOOL 成功打开发挥TRUE,否则返回FALSE。
** @description: 
打开数据库链接。
****************************************************************/ 
BOOL CMySqlOperator::Open(LPCTSTR lpszDb,LPCTSTR lpszHost,LPCTSTR lpszUser,LPCTSTR lpszPassword)
{   //first free database.
	FreeDb();
	//connect to db:
	m_pConn = new sql_connection_c((LPTSTR)lpszDb,(LPTSTR)lpszHost,(LPTSTR)lpszUser,(LPTSTR)lpszPassword);
	if(GetErrCode()!=0)
		return FALSE;	

	m_pQuery = new sql_query_c(m_pConn);
	if(!m_pQuery)
		return FALSE;

	m_bConnected = TRUE;
	return TRUE;
}

/***************************************************************** 
** @name: GetErrCode
** @return short 错误号
** @description: 
得到数据库链接等操作中的错误号
****************************************************************/ 
UINT CMySqlOperator::GetErrCode()
{
	if(!m_pConn)
		return -1;
	
	return m_pConn->errcode();
}
	
/***************************************************************** 
** @name: ExecuteQuery
** @param [in] LPCTSTR lpszSql 数据库sql查询语句
** @return CMySqlRecordset* 如果查询执行失败,则返回NULL,否则返回查询结果集CMySqlRecordset
** 调用者必需自己销毁CMySqlRecordset对象,否则会导致内存泄漏          
** @description: 
执行sql查询语句,并返回查询结果。如果查询失败,这返回NULL。
****************************************************************/ 
CMySqlRecordset* CMySqlOperator::ExecuteQuery(LPCTSTR lpszSql)
{
	if(!m_pQuery)
		return NULL;

	if(!m_pQuery->execute((LPTSTR)lpszSql))
		return NULL;

	sql_result_c * pResult = m_pQuery->store();
	if(pResult)
		return new CMySqlRecordset(m_pQuery,pResult);	
	else
		return NULL;
}

/***************************************************************** 
** @name: Execute
** @param [in] LPCTSTR lpszSql 数据库sql语句
** @return BOOL 如果执行失败,则返回FALSE,否则返回TRUE    
** @description: 
执行sql语句,并返回执行结果。这个操作用于除查询外的更新、删除
等操作。
****************************************************************/ 
BOOL CMySqlOperator::Execute(LPCTSTR lpszSql)
{
	if(!m_pQuery)
		return FALSE;

	if(m_bConnected==FALSE)
		return FALSE;

	if(!m_pQuery->try_execute((LPTSTR)lpszSql))
	{
		if(m_pQuery->ping()!=0)
			m_bConnected = FALSE;
		return FALSE;
	}
	
	return TRUE;
}

/***************************************************************** 
** @name: IsConnected
** @return BOOL 如果连接操作未有失败,返回TRUE,否则FALSE    
** @description: 
返回连接操作是否有失败
****************************************************************/ 
BOOL CMySqlOperator::IsConnected()
{
	return m_bConnected;
}

/***************************************************************** 
** @name: Ping
** @return int 如果服务器活着,零。如果出现一个错误,非零。    
** @description: 
检查到服务器的连接是否正在工作。如果它关闭了,自动尝试一个再连接。
****************************************************************/ 
int CMySqlOperator::Ping()
{
	if(!m_pQuery)
		return -1;

	return m_pQuery->ping();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -