这个封装主要包括 插入数据 删除过期数据,和查询指定数据,列出代码目的是为了 让刚接触的快速熟悉Sqlite的操作,和其中回调函数的使用 首先是头文件 MySqlite.h #pragma once #include <afxcmn.h> #include "sqlite3.h" #include <string> #include <vector> #include <list> #pragma comment(lib, "sqlite3") using namespace std; typedef struct CallbackStruct { int nCount; CListCtrl* listctrl; }CallbackStruct; class CMySqlite { public: CMySqlite(void); ~CMySqlite(void); public: bool GBConvertUTF8(CString strOld, CString& strNew); bool UTF8ConvertGB(CString strOld, CString& strNew); bool open(const char* strfilename); CString GetLastErrorMsg(void); bool CreateNewTable(const char* strTable); bool SetStructValue(TSFVD tsfvd); int close(void); int ExecuteQuery(QueryInfo qInfo); int GetTableList(vector<string>& vecTableName); int DeleteOutdateData(int nSaveDay); void SetClistCtrlList(CListCtrl* listctrl); int begin(void); //事务开启 int commit(void);// 事务结束 int GetQueryCount(void); static int Callback(void* NotUsed, int argc, char** argv, char** azColName); static int CallbackDelete(void* NotUsed, int argc, char** argv , char** azColName); private: BOOL MByteToWChar(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize); BOOL MByteToWChar1(LPCSTR lpcszStr, LPWSTR lpwszStr, DWORD dwSize); BOOL WCharToMByte(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize); BOOL WCharToMByte1(LPCWSTR lpcwszStr, LPSTR lpszStr, DWORD dwSize); private: CallbackStruct m_callstruct; CString m_strfilename; // 表格名称 CString m_strTableName; sqlite3* m_pDB; char* m_errMsg; CString m_strdbName; }; 执行文件MySqlite.cpp #include "stdafx.h" #include "MySqlite.h" #include <algorithm> CMySqlite::CMySqlite(void) : m_pDB(NULL) , m_errMsg(NULL) , m_strdbName(_T("")) , m_strTableName(_T("")) , m_nCount(0) , m_strfilename(_T("")) { } CMySqlite::~CMySqlite(void) { } bool CMySqlite::GBConvertUTF8(CString strOld, CString& strNew) { wchar_t remotedir1[MAX_PATH] ;//= {L".//图像测试文件夹//"}; char chremotedir1[MAX_PATH*2] = {0}; MByteToWChar((LPCSTR)strOld,re