This commit is contained in:
2024-10-09 19:36:35 -05:00
parent 854caffea8
commit 67053645e1
13 changed files with 103 additions and 49 deletions

View File

@@ -39,20 +39,19 @@ auto db_delete::dump() const -> std::string {
}
auto db_delete::go() const -> db_result<context> {
static constexpr const std::string_view function_name{
static_cast<const char *>(__FUNCTION__),
};
sqlite3_stmt *stmt_ptr{nullptr};
auto query_str = dump();
auto res = sqlite3_prepare_v2(&context_->db3, query_str.c_str(), -1,
&stmt_ptr, nullptr);
context_->stmt = db3_stmt_t{
stmt_ptr,
sqlite3_statement_deleter(),
};
if (res != SQLITE_OK) {
return {context_, res};
}
context_->stmt.reset(stmt_ptr);
for (std::int32_t idx = 0;
idx < static_cast<std::int32_t>(context_->where_values.size()); idx++) {
res = std::visit(

View File

@@ -68,12 +68,15 @@ auto db_insert::go() const -> db_result<context> {
auto query_str = dump();
auto res = sqlite3_prepare_v2(&context_->db3, query_str.c_str(), -1,
&stmt_ptr, nullptr);
context_->stmt = db3_stmt_t{
stmt_ptr,
sqlite3_statement_deleter(),
};
if (res != SQLITE_OK) {
return {context_, res};
}
context_->stmt.reset(stmt_ptr);
for (std::int32_t idx = 0;
idx < static_cast<std::int32_t>(context_->values.size()); idx++) {
res = std::visit(

View File

@@ -85,20 +85,19 @@ auto db_select::dump() const -> std::string {
}
auto db_select::go() const -> db_result<context> {
static constexpr const std::string_view function_name{
static_cast<const char *>(__FUNCTION__),
};
sqlite3_stmt *stmt_ptr{nullptr};
auto query_str = dump();
auto res = sqlite3_prepare_v2(&context_->db3, query_str.c_str(), -1,
&stmt_ptr, nullptr);
context_->stmt = db3_stmt_t{
stmt_ptr,
sqlite3_statement_deleter(),
};
if (res != SQLITE_OK) {
return {context_, res};
}
context_->stmt.reset(stmt_ptr);
for (std::int32_t idx = 0;
idx < static_cast<std::int32_t>(context_->where_values.size()); idx++) {
res = std::visit(

View File

@@ -64,18 +64,18 @@ auto db_update::dump() const -> std::string {
}
auto db_update::go() const -> db_result<context> {
static constexpr const std::string_view function_name{
static_cast<const char *>(__FUNCTION__),
};
sqlite3_stmt *stmt_ptr{nullptr};
auto query_str = dump();
auto res = sqlite3_prepare_v2(&context_->db3, query_str.c_str(), -1,
&stmt_ptr, nullptr);
context_->stmt = db3_stmt_t{
stmt_ptr,
sqlite3_statement_deleter(),
};
if (res != SQLITE_OK) {
return {context_, res};
}
context_->stmt.reset(stmt_ptr);
for (std::int32_t idx = 0;
idx < static_cast<std::int32_t>(context_->column_values.size()); idx++) {