代码拉取完成,页面将自动刷新
//Author: [email protected]
//Use of this source code is governed by a BSD-style license
#include"SqliteDB.h"
#include<stdexcept>
#include<sqlite3.h>
#include"PreparedStatement.h"
SqliteDB::SqliteDB(const std::string &db_file)
: m_conn(nullptr)
{
int ret = sqlite3_open(db_file.c_str(), &m_conn);;
if( ret != SQLITE_OK )
{
std::string msg(sqlite3_errmsg(m_conn));
throw std::runtime_error("fail to open " + db_file + " reason: " + msg);
}
}
SqliteDB::~SqliteDB()
{
close();//忽略所有错误
}
int SqliteDB::close()
{
int ret = closeConn();
if( ret == SQLITE_OK )
m_conn = nullptr;
return ret;
}
int SqliteDB::closeConn()
{
return sqlite3_close(m_conn);
}
const char* SqliteDB::errorMsg()
{
return sqlite3_errmsg(m_conn);
}
int SqliteDB::execute(const std::string &sql)
{
return sqlite3_exec(m_conn, sql.c_str(), nullptr, nullptr, nullptr);
}
//====================================PreparedStatement=====================
std::weak_ptr<PreparedStatement> SqliteDB::createPreparedStatement(const std::string &sql)
{
std::shared_ptr<PreparedStatement> stmt(new PreparedStatement(m_conn, sql));
m_stmt_list.push_back(stmt);
return std::weak_ptr<PreparedStatement>(stmt);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。