3#include <StormByte/database/rows.hxx>
9namespace StormByte::Database {
21 PreparedSTMT(
const std::string& name,
const std::string& query)
noexcept:
22 m_name(name), m_query(query) {}
30 m_name(std::move(name)), m_query(std::move(query)) {}
69 template<
typename... Args>
74 (void)( ( Bind(
static_cast<int>(idx++), std::forward<Args>(args)) ), ... );
75 ExpectedRows result = DoExecute();
84 inline const std::string&
Name() const noexcept {
92 inline const std::string&
Query() const noexcept {
106 virtual void Bind(
const int& index,
const std::nullptr_t& value)
noexcept = 0;
113 virtual void Bind(
const int& index,
const int& value)
noexcept = 0;
120 virtual void Bind(
const int& index,
const unsigned int& value)
noexcept = 0;
127 virtual void Bind(
const int& index,
const int64_t& value)
noexcept = 0;
134 virtual void Bind(
const int& index,
const uint64_t& value)
noexcept = 0;
141 virtual void Bind(
const int& index,
const double& value)
noexcept = 0;
148 virtual void Bind(
const int& index,
bool value)
noexcept = 0;
155 virtual void Bind(
const int& index,
const std::string& value)
noexcept = 0;
160 virtual void Bind(
const int& index,
const std::vector<std::byte>& value)
noexcept = 0;
167 inline void Bind(
const int& index,
const char* value)
noexcept {
168 Bind(index, std::string(value));
174 virtual void Reset() noexcept = 0;
180 virtual ExpectedRows DoExecute() = 0;
Prepared statement for databases.
Definition prepared_stmt.hxx:14
const std::string & Name() const noexcept
Definition prepared_stmt.hxx:84
PreparedSTMT & operator=(const PreparedSTMT &other)=delete
const std::string & Query() const noexcept
Definition prepared_stmt.hxx:92
std::string m_query
Query to prepare.
Definition prepared_stmt.hxx:98
std::string m_name
Name of the prepared statement.
Definition prepared_stmt.hxx:97
PreparedSTMT(std::string &&name, std::string &&query) noexcept
Definition prepared_stmt.hxx:29
PreparedSTMT(PreparedSTMT &&other)=default
virtual ~PreparedSTMT()=default
PreparedSTMT & operator=(PreparedSTMT &&other)=default
ExpectedRows Execute(Args &&... args)
Definition prepared_stmt.hxx:70
PreparedSTMT(const std::string &name, const std::string &query) noexcept
Definition prepared_stmt.hxx:21
PreparedSTMT(const PreparedSTMT &other)=delete