24 using ptr = sqlite3_stmt*;
34 typename T::ptr m_handle;
39 other.m_handle = T::invalid();
48 std::swap(m_handle, other.m_handle);
51 typename T::ptr
get()
const {
return m_handle; }
56 if (m_handle != T::invalid())
59 m_handle = T::invalid();
78 int get_int(
int column = 0)
const;
81 std::vector<uint8_t>
get_blob(
int column = 0)
const;
85 void bind(
int param,
const char*
value)
const;
86 void bind(
int param,
const std::vector<uint8_t>&
value)
const;
112 void assert_good()
const;
129 iterator() : m_owner(
nullptr), m_end(
true) { }
135 m_end = !m_owner->
step();
156 void execute(
const char * command)
const;
void execute(const char *command) const
sqlite3 * ptr
Definition: sql.h:15
std::string get_string(int column=0) const
static void close(ptr value)
sql::statement::iterator end(sql::statement &stmt)
row_value operator*() const
static auto invalid() -> ptr
Definition: sql.h:17
~scoped_handle()
Definition: sql.h:54
bool operator!=(const iterator &other)
Definition: sql.h:139
double get_double(int column=0) const
scoped_handle()
Definition: sql.h:36
std::vector< uint8_t > get_blob(int column=0) const
row_value operator()()
Definition: sql.h:145
std::vector< uint8_t > get_blob() const
Definition: sql.h:104
scoped_handle(scoped_handle &&other)
Definition: sql.h:37
T::ptr * get_address()
Definition: sql.h:52
sql::statement::iterator begin(sql::statement &stmt)
column_value operator[](int column) const
Definition: sql.h:116
bool table_exists(const char *name) const
iterator end()
Definition: sql.h:143
int get_int() const
Definition: sql.h:101
static void close(ptr value)
iterator begin()
Definition: sql.h:142
statement(const connection &conn, const char *sql)
sqlite3_stmt * ptr
Definition: sql.h:24
scoped_handle & operator=(scoped_handle other)
Definition: sql.h:41
void operator++()
Definition: sql.h:133
double get_double() const
Definition: sql.h:102
void swap(scoped_handle &other)
Definition: sql.h:46
int get_bool() const
Definition: sql.h:103
void transaction(std::function< void()> transaction) const
std::string get_string() const
Definition: sql.h:100
int get_int(int column=0) const
void bind(int param, int value) const
static auto invalid() -> ptr
Definition: sql.h:26
connection(const char *filename)