📄 mysqlrecordset.cpp
字号:
// MySqlRecordset.cpp: implementation of the CMySqlRecordset class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "MySqlRecordset.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CMySqlRecordset::CMySqlRecordset()
{
m_row.allow_null(0);
m_pResultset = NULL;
m_pQuery = NULL;
}
CMySqlRecordset::CMySqlRecordset( sql_query_c* pQuery, sql_result_c* pResultset )
{
m_row.allow_null(0);
m_pResultset = pResultset;
m_pQuery = pQuery;
}
CMySqlRecordset::~CMySqlRecordset()
{
if ( m_pQuery ) m_pQuery->free_result(m_pResultset);
}
/*****************************************************************
** @name: GetRowCount
** @return __int64 记录集记录的数目
** @description:
得到记录集记录的数目
****************************************************************/
__int64 CMySqlRecordset::GetRowCount()
{
if ( m_pResultset ) return m_pResultset->n_rows();
return 0;
}
/*****************************************************************
** @name: GetFieldCount
** @return int 域的数目
** @description:
得到记录集的域的数目
****************************************************************/
int CMySqlRecordset::GetFieldCount()
{
if ( m_pResultset ) return m_pResultset->n_fields();
return 0;
}
/*****************************************************************
** @name: MoveNext
** @return void
** @description:
滚动记录到下一条。函数不作溢出检查。由调用者保证。
****************************************************************/
void CMySqlRecordset::MoveNext()
{
if ( m_pResultset )
m_row = m_pResultset->fetch_row();
}
/*****************************************************************
** @name: GetFieldValue
** @param [in] int unIdx 数据库表的域(字段)的索引
** @return sql_var_c 当前记录的域(字段)的索引对应的字段的值,如
** 果索引溢出则返回空值
** @description:
得到当前记录的域(字段)的索引对应的字段的值
****************************************************************/
sql_var_c CMySqlRecordset::GetFieldValue(int unIdx)
{
sql_var_c valueNull;
if (unIdx < GetFieldCount())
return m_row[unIdx];
return valueNull;
}
/*****************************************************************
** @name: GetFieldValue
** @param [in] LPCTSTR lpszFieldName 数据库表的域(字段)的名称
** @return sql_var_c 当前记录的域名称对应的字段的值,如果名称错误
** 返回空值
** @description:
得到当前记录的域名称对应的字段的值
****************************************************************/
sql_var_c CMySqlRecordset::GetFieldValue(LPCTSTR lpszFieldName)
{
sql_var_c valueNull;
sql_field_c field;
for ( UINT idx=0; idx < (UINT)GetFieldCount(); idx++ )
{
field = m_pResultset->fetch_field(idx);
if (strcmp(field.get_name(),lpszFieldName) == 0)
return GetFieldValue(idx);
}
return valueNull;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -