📄 sqlitedb.h.svn-base
字号:
//#pragma comment(lib, "sqlite3.lib")
#ifndef _TQND_SQLITEDB_
#define _TQND_SQLITEDB_
//#include "sqlite3ext.h"
#include "sqlite3.h"
#include "IChatLogDB.h"
#ifndef NAMESPACE_SQLITE_BEGIN
#define NAMESPACE_SQLITE_BEGIN namespace sqlite {
#define NAMESPACE_SQLITE_END }
#endif
NAMESPACE_SQLITE_BEGIN
using namespace std;
class CResult
{
friend class SQLiteDB;
public:
CResult() : m_ppRes(NULL), m_nRow(0), m_nCol(0) {}
~CResult() {sqlite3_free_table(m_ppRes);}
//获得行数
int GetRowNum() {return m_nRow+1;} //0行是字段名
//获得列数
int GetColNum() {return m_nCol;}
//获得结果数目
int GetResultNum() {return m_nRow;}
//获取对应行列的结果
char* GetAt(int nRow,int nCol)
{
if(nRow<=m_nRow+1&&nCol<=m_nCol)
return m_ppRes[nRow*m_nCol+nCol];
else return NULL;
}
private:
char** m_ppRes;
int m_nRow;
int m_nCol;
};
class SQLiteDB
{
public:
SQLiteDB() : m_pDB(NULL), m_bOpenflag(false), m_pRes(NULL)
{
m_strKey = "";
}
//功能说明 :连接数据库。如果数据库已经存在,则打开现有数据库,如果不存在,则新创建一个数据库
//参数说明 :string DBName 数据库名称
//返回值说明:bool类型 true 数据库打开成功STRIN
// false 数据库打开失败
bool OpenDB(const char* pszPath, const char* pszKey = NULL);
//功能说明 :在指定的数据库中执行sql语句(非select语句!)
//参数说明 :string sql 执行的sql语句
//返回值说明:int类型 -1 sql语句执行失败,同时输出错误信息
// 0 sql语句执行成功,返回结果
int Execute(const char* pszStatement);
//功能说明 :在指定的数据库中执行文件中的sql语句(文件中不能含有select语句!)
//参数说明 :string sql 执行的sql语句
//返回值说明:int类型 -1 sql语句执行失败,同时输出错误信息
// 0 sql语句执行成功,返回结果
int ExecuteSQLFromFile(const char* pszFile);
//功能说明 :在指定的数据库中执行select的sql语句
//参数说明 :string sql 执行的sql语句
//返回值说明:Result类型 NULL sql语句执行失败,同时输出错误信息
// rs sql语句执行成功,返回Result类对象rs
CResult* ExecuteSelect(const char* pszSelect);
//////////////////////////////////////////////////////////////////////////
bool AddInfoContainBinary(string& strSql, string& strTxt);
bool GetInfoContainBinary(string& strSql, ROW_INFO_VEC& vecContent, bool bSys);
//功能说明 :关闭数据库。
//参数说明 :void 无
//返回值说明 :bool类型 true 数据库关闭成功
// false 数据库关闭失败
bool CloseDB();
~SQLiteDB();
private:
string Decode(string& strContent);
string Encode(string& strContent);
string Process(string& strContent);
private:
sqlite3* m_pDB;
bool m_bOpenflag;
CResult* m_pRes;
string m_strKey;
};
#endif
NAMESPACE_SQLITE_END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -