• 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  
  • 相关阅读:
    cmd开启3389,无需重启!
    x86的控制寄存器CR0,CR1,CR2,CR3
    x64下fs的角色已经换成了gs
    在win64里,只有一种调用约定
    fs寄存器
    【转】C++ 编译器的函数名修饰规则
    windbg ida需要symbols
    WIN7-X64内核模式下编程实现导出表列表查看
    VS2010+WDK配置要点
    比特币 —— 学习笔记(一)
  • 原文地址:https://www.cnblogs.com/left69/p/5703155.html
Copyright © 2020-2023  润新知