?? 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 + -