c++调用SQLite3的常用使用方法;
                        
                            时间:2021-07-01 10:21:17
                            帮助过:2人阅读
							                        
                     
                    
                    
                       1 #include 
"CppSQLite3.h"
  2   2 
  3   3 Class TestSqlite{
  4   4     
  5   5     //定义db指针
  6   6 private:
  7   7     CppSQLite3DB*
 m_pSqlDb;
  8   8     TestSqlite()
  9   9     {
 10  10         m_pSqlDb =
 NULL;
 11  11         Init();
 12  12     }
 13  13     
 14  14     ~
TestSqlite()
 15  15     {
 16  16         if ( m_pSqlDb )
 17  17         {
 18  18             m_pSqlDb.Close();
 19  19             delete m_pSqlDb;
 20  20             m_pSqlDb =
 NULL;
 21  21         }    
 22  22     }
 23  23     //初始化
 24  24     BOOL Init()
 25  25     {
 26  26         //初始化sqlite指针
 27  27         if ( m_pSqlDb || !(m_pSqlDb = 
new CppSQLite3DB))
 28  28         {
 29  29             return FALSE;
 30  30         }
 31  31         
 32  32         try
 33  33         {
 34  34             string strDbFile = 
"D:\\Chunk.s3db";
 35  35             m_pSqlDb->open( strDbFile.c_str() );
//打开指定位置的本地数据库
 36  36         }
 37  37         catch (CppSQLite3Exception& e)
//处理sqlite异常
 38  38         {
 39  39             return FALSE;
 40  40         }
 41  41         
 42  42         return TRUE;
 43  43     }
 44  44 public:
 45  45     //读出db中指定名称的表数据
 46  46     void ReadAllLine(map<
int,
int>& mpDbInfo,
const string &
TblName)
 47  47     {
 48  48         try
 49  49         {
 50  50             char szCmd[
256];
 51  51             sprintf( szCmd, 
"SELECT id,testnum FROM %s;",TblName);
 52  52             CppSQLite3Query query = m_pSqlDb->execQuery( szCmd );
//执行查询语句
 53  53             while(!
query.eof())
 54  54             {
 55  55                 int id = query.getIntField( 
"id");    
//列项为id的值
 56  56                 int testnum = query.getIntField( 
"testnum");    
//列项testnum的值
 57  57                 
 58  58                 mpDbInfo.insert(make_pair(id,testnum));
//插入map
 59  59                 query.nextRow();
//继续下一行
 60  60             }
 61  61             query.finalize();
//结束查询,释放内存
 62  62         }    
 63  63         catch (CppSQLite3Exception&
 e)
 64  64         {        
 65  65             return;
 66  66         }
 67  67     }
 68  68     
 69  69     //更新指定数据
 70  70     BOOL DeleteLine(
const string& TblName,
const int& id,
const int&
 num)
 71  71     {
 72  72         try
 73  73         {
 74  74             char szCmd[
256];
 75  75             sprintf( szCmd, 
"update %s set num = %d WHERE id=%d;",TblName,num,id);
//更新内容
 76  76             m_pSqlDb->
execDML( szCmd );
 77  77         }
 78  78         catch (CppSQLite3Exception&
 e)
 79  79         {        
 80  80             return FALSE;
 81  81         }
 82  82         return TRUE;
 83  83     }
 84  84     
 85  85     //删除指定数据
 86  86     BOOL DeleteLine(
const string& TblName,
const int&
 id)
 87  87     {
 88  88         try
 89  89         {
 90  90             char szCmd[
256];
 91  91             sprintf( szCmd, 
"DELETE FROM %d WHERE id=%d;", TblName,id);
//删除语句
 92  92             m_pSqlDb->
execDML( szCmd );
 93  93         }
 94  94         catch (CppSQLite3Exception&
 e)
 95  95         {        
 96  96             return FALSE;
 97  97         }
 98  98         return TRUE;
 99  99     }
100 100 };
101 
102  
 
c++调用SQLite3的常用使用方法;
标签: