You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
openmw/components/sqlite3/statement.cpp

26 lines
726 B
C++

#include "statement.hpp"
#include <sqlite3.h>
#include <stdexcept>
#include <string>
#include <string_view>
namespace Sqlite3
{
void CloseSqlite3Stmt::operator()(sqlite3_stmt* handle) const noexcept
{
sqlite3_finalize(handle);
}
StatementHandle makeStatementHandle(sqlite3& db, std::string_view query)
{
sqlite3_stmt* stmt = nullptr;
if (const int ec = sqlite3_prepare_v2(&db, query.data(), static_cast<int>(query.size()), &stmt, nullptr);
ec != SQLITE_OK)
throw std::runtime_error("Failed to prepare statement for query \"" + std::string(query)
+ "\": " + std::string(sqlite3_errmsg(&db)));
return StatementHandle(stmt);
}
}