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

📄 sqlitedb.h.svn-base

📁 SQlite 的使用 读库 写库
💻 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 + -