SQLiteHelper
方便进行数据库的操作
SQLiteHelper.h
#if !defined(AFX_SQLITEHELPER_H__59F8C44E_0D98_4422_AEB1_2FD927EE8902__INCLUDED_)
#define AFX_SQLITEHELPER_H__59F8C44E_0D98_4422_AEB1_2FD927EE8902__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000#include "sqlite3.h"
#include <vector>
#pragma comment(lib,"sqlite3.lib")using namespace std;typedef int(*callBackFun)(void*, int, char**, char**);class SQLiteHelper
{
public:SQLiteHelper();~SQLiteHelper();sqlite3* getSqlite();//打开数据库bool OpenSqlite(CString strPath);//关闭数据库连接void CloseSqlite();//执行不返回数据的SQL语句(增、删、改)void ExecuteSqlite(CString& strSql);//执行查询操作void InquireSqlite(CString& strSql, callBackFun pCallfun);//获取字段名称int GetTableField(CString sTableName, vector<CString>& vTableField);//输出错误信息void OutPutInfo(CString strInfo);
private:sqlite3* pDB;
};#endif // !defined(AFX_SQLITEHELPER_H__59F8C44E_0D98_4422_AEB1_2FD927EE8902__INCLUDED_)
SQLiteHelper.cpp
#include "stdafx.h"
#include "SQLiteHelper.h"SQLiteHelper::SQLiteHelper()
{pDB = NULL;
}SQLiteHelper::~SQLiteHelper()
{
}sqlite3* SQLiteHelper::getSqlite()
{return pDB;
}bool SQLiteHelper::OpenSqlite(CString strPath)
{int nRes = sqlite3_open(strPath, &pDB);if (nRes != SQLITE_OK){CString cErrMsg = sqlite3_errmsg(pDB);OutPutInfo(cErrMsg);return false;}return true;
}void SQLiteHelper::CloseSqlite()
{sqlite3_close(pDB);
}void SQLiteHelper::ExecuteSqlite(CString& strSql)
{char* cErrMsg;int nRes = sqlite3_exec(pDB, strSql, 0, 0, &cErrMsg);if (nRes != SQLITE_OK){OutPutInfo(cErrMsg);}
}void SQLiteHelper::InquireSqlite(CString& strSql, callBackFun pCallfun)
{char* cErrMsg;int nRes = sqlite3_exec(pDB, strSql, pCallfun, 0, &cErrMsg);if (nRes != SQLITE_OK){OutPutInfo(cErrMsg);}
}int SQLiteHelper::GetTableField(CString sTableName,vector<CString>& vTableField)
{char** pResult = NULL;int nRow = 0;int nCol = 0;CString strSql = "select * from " + sTableName;int rc = sqlite3_get_table(pDB, strSql, &pResult, &nRow, &nCol, NULL);if (rc == SQLITE_OK){for (int i = 0; i < nCol; i++){vTableField.push_back(pResult[i]);}}sqlite3_free_table(pResult);return rc;
}void SQLiteHelper::OutPutInfo(CString strInfo)
{AfxMessageBox(strInfo);
}