代码拉取完成,页面将自动刷新
同步操作将从 htfy96/NanoSQL 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
#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);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。