/
/// Copyright (C), 2011
/// \file DBResultSet.h
/// \brief DATABASE数据库结果集接口
/// \author hkp(horace20@live.cn)
/// \version 1.1
/// \date 2011
///
#ifndef _DATABASE_RECORD_SET_
#define _DATABASE_RECORD_SET_
#pragma comment(lib,"libmysql.lib")
#pragma warning(disable: 4786) ///
#include
#include
using namespace std;
namespace Database
{
class CDBResultSet : public IDBResultSet
{
friend class CDBConnect; ///
private:
MYSQL_RES* m_pMyQuery; ///
MYSQL_ROW m_currentRow; ///
unsigned int m_fieldCount; ///
private:
/
/// \brief CDBResultSet类的构造函数
/// \param[in] 无
/// \param[out] 无
/// \return 无
/
CDBResultSet();
/
/// \brief 释放结果集,得到字段的个数
/// \param[in] 结果集
/// \param[out] 无
/// \return 无
/
void Reset(MYSQL_RES *pMyQuery);
public:
/
/// \brief CDBResultSet类的析构函数
/// \param[in] 结果集
/// \param[out] 无
/// \return 无
/
~CDBResultSet(){ Close(); }
/
/// \brief 是否最后
/// \param[in] 无
/// \param[out] 无
/// \return TRUE 到最后 FALSE 没到最后
/
bool IsEnd();
/
/// \brief 查找指定数据
/// \param[in] 偏移量
/// \param[out] 无
/// \return 无
/
void SeekData(int offset);
/
/// \brief 释放结果集
/// \param[in] 无
/// \param[out] 无
/// \return 无
/
void Close();
/
/// \brief 得到记录数
/// \param[in] 无
/// \param[out] 无
/// \return >=0 正常 <0异常
/
DB_ROW_CONUT GetRowNum();
/
/// \brief 取得下一条记录
/// \param[in] 无
/// \param[out] 无
/// \return TRUE 正常 FALSE 异常
/
bool GetNextRecod();
/
/// \brief 得到字段
/// \param[in] 字段下标
/// \param[out] 取得有符号整型值
/// \return =0 正常 <0异常
/
int GetFiled(int filedId, int& value);
/
/// \brief 得到字段
/// \param[in] 字段下标
/// \param[out] 取得无符号整型值
/// \return =0 正常 <0异常
/
int GetFiled(int filedId, unsigned int& value);
/
/// \brief 得到字段
/// \param[in] 字段下标
/// \param[out] 取得字符串类型值
/// \return =0 正常 <0异常
/
int GetFiled(int filedId, string& value);
/
/// \brief 得到字段
/// \param[in] 字段下标
/// \param[out] 取得len长度的字符串值
/// \return =0 正常 <0异常
/
int GetFiled(int filedId, char* value, int len);
/
/// \brief 得到字段
/// \param[in] 字段下标
/// \param[out] 取得bool值
/// \return =0 正常 <0异常
/
int GetFiled(int filedId, bool& value);
/
/// \brief 得到字段
/// \param[in] 字段下标
/// \param[out] 取得float值
/// \return =0 正常 <0异常
/
int GetFiled(int filedId, float& value);
/
/// \brief 得到字段
/// \param[in] 字段下标
/// \param[out] 取得double值
/// \return =0 正常 <0异常
/
int GetFiled(int filedId, double& value);
/
/// \brief 得到字段
/// \param[in] 字段下标
/// \param[out] 取得时间类型值
/// \return =0 正常 <0异常
/
int GetFiled(int filedId, time_t& value);
/
/// \brief 得到字段,此函数分配内存,调用FreeGetFiledByte(BYTE **value)释放内存
/// \param[in] 字段下标
/// \param[out] 指向二进制buffer的指针
/// \param[out] 指针的长度
/// \return =0 正常 <0异常
/
int GetFiled(int filedId, uint8 **value, int *len);
/
/// \brief 得到字段
/// \param[in] 字段名
/// \param[out] 取得有符号整型值
/// \return =0 正常 <0异常
/
int GetFiled(const char* fieldName, int& value);
/
/// \brief 得到字段
/// \param[in] 字段下标
/// \param[out] 取得wu符号整型值
/// \return =0 正常 <0异常
/
int GetFiled(const char* fieldName, unsigned int& value);
/
/// \brief 得到字段
/// \param[in] 字段名
/// \param[out] 取得字符串值
/// \return =0 正常 <0异常
/
int GetFiled(const char* fieldName, string& value);
/
/// \brief 得到字段
/// \param[in] 字段名
/// \param[out] 取得len长度的字符串值
/// \return =0 正常 <0异常
/
int GetFiled(const char* fieldName, char* value, int len);
/
/// \brief 得到字段
/// \param[in] 字段名
/// \param[out] 取得bool值
/// \return =0 正常 <0异常
/
int GetFiled(const char* fieldName, bool& value);
/
/// \brief 得到字段
/// \param[in] 字段名
/// \param[out] 取得float值
/// \return =0 正常 <0异常
/
int GetFiled(const char* fieldName, float& value);
/
/// \brief 得到字段
/// \param[in] 字段名
/// \param[out] 取得double值
/// \return =0 正常 <0异常
/
int GetFiled(const char* fieldName, double& value);
/
/// \brief 得到字段,此函数分配内存,调用FreeGetFiledByte(BYTE **value)释放内存
/// \param[in] 字段下标
/// \param[out] 指向二进制buffer的指针
/// \param[out] 指针的长度
/// \return =0 正常 <0异常
/
int GetFiled(const char* fieldName, time_t& value);
/
/// \brief 得到字段,此函数分配内存,调用FreeGetFiledByte(BYTE **value)释放内存
/// \param[in] 字段名
/// \param[out] 指向二进制buffer的指针
/// \param[out] 指针的长度
/// \return =0 正常 <0异常
/
int GetFiled(const char* fieldName, uint8 **value, int *len);
private:
/
/// \brief 得到字段ID
/// \param[in] 字段名
/// \param[out] 取得字段的ID
/// \return >=0 正常 <0异常
/
int GetFiedIdByName(const char* fieldName);
};
}
#endif