0 Star 0 Fork 14

Mr_Su / NanoSQL

forked from htfy96 / NanoSQL 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
nanosql.cpp 1.12 KB
一键复制 编辑 原始数据 按行查看 历史
htfy96 提交于 2015-03-07 13:44 . Initial comt
#include <string>
#include <cstring>
#include <cstdlib>
#include <stdexcept>
#include <sqlite3.h>
#include "nanosql.hpp"
using namespace std;
Sql::Sql(const string& filename):tran_(false)
{
raw_result.arr = NULL;
raw_result.row = 0;
raw_result.col = 0;
sqlite3_open(filename.c_str(), &db_);
}
Sql::~Sql()
{
sqlite3_close(db_);
sqlite3_free_table(raw_result.arr);
}
bool Sql::is_tran() const
{
return tran_;
}
int Sql::begin_tran()
{
if (tran_)
throw runtime_error("already in transaction");
exec("begin;");
tran_=true;
return 0;
}
int Sql::end_tran()
{
if (!tran_)
throw runtime_error("not in transaction yet");
exec("commit;");
tran_=false;
return 0;
}
int Sql::exec(const string& query, CallbackFunc cb)
{
static char* clasterr=NULL;
sqlite3_exec(db_, query.c_str(), cb, 0, &clasterr);
if (clasterr!=NULL) lasterr=clasterr;
return static_cast<bool>(clasterr);
}
int Sql::get_table(const string& query)
{
static char* clasterr=NULL;
sqlite3_get_table(db_, query.c_str(), &raw_result.arr, &raw_result.row, &raw_result.col, &clasterr);
if (clasterr!=NULL) lasterr=clasterr;
return static_cast<bool>(clasterr);
}
C++
1
https://gitee.com/github-22728074/NanoSQL.git
git@gitee.com:github-22728074/NanoSQL.git
github-22728074
NanoSQL
NanoSQL
master

搜索帮助