c/c++ SQLite3的常用使用方法;

下面测试用的sqlite例子;大家可以参考使用;

  1   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