SQLite C++ Wrapper

联合创作 · 2023-09-30 18:33

SQLite C++ Wrapper 是一个 C++ 语言对 SQLite 的最小封装包。

示例代码1:

#include <string>
#include <iostream>
#include <stdexcept>
using namespace std;

#include "sqlite3x.hpp"
using namespace sqlite3x;

int main(void) {
   
try {
      sqlite3_connection con
("test.db");

     
int count = con.executeint(
       
"select count(*) "
       
"from sqlite_master "
       
"where name='t_test';");

     
if(count == 0) {
         con
.executenonquery(
           
"create table t_test(number,string);");
     
}

      sqlite3_transaction trans
(con);
     
{
         sqlite3_command cmd
(con,
           
"insert into t_test values(?,?);");
         cmd
.bind(2, "foobar", 6);

         
for(int i = 0; i < 10000; ++i) {
            cmd
.bind(1, i);
            cmd
.executenonquery();
         
}
     
}

     
// if trans goes out of scope (due to an exception or
     
// anything else) before calling commit(), it will
     
// automatically rollback()
      trans
.commit();
   
}
   
catch(exception &ex) {
      cerr
<< "Exception Occured: " << ex.what() << endl;
   
}

   
return 0;
}

示例代码2:

#include <iostream>
#include <stdexcept>
using namespace std;

#include "sqlite3x.hpp"
using namespace sqlite3x;

int main(void) {
   
try {
      sqlite3_connection con
("test.db");

       sqlite3_command cmd
(con, "select * from t_test;");
       sqlite3_reader reader
= cmd.executereader();

       
while(reader.read()) {
          cout
<< reader.getcolname(0) << ": "
               
<< reader.getint(0) << endl;
       
}
   
}
   
catch(exception &ex) {
      cerr
<< "Exception Occured: " << ex.what() << endl;
   
}

   
return 0;
}
浏览 7
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报