31 std::optional<int> sqlite_open_flags = std::nullopt);
40 size_t row_count(std::string_view table_name)
override;
42 void create_table(std::string_view table_schema)
override;
44 size_t rows_changed_by_last_statement()
override;
46 std::shared_ptr<Statement> new_statement(std::string_view sql)
const override;
48 bool is_threadsafe()
const override;
53 void bind(
int column, std::string_view val)
override;
54 void bind(
int column,
size_t val)
override;
55 void bind(
int column, std::chrono::system_clock::time_point time)
override;
56 void bind(
int column,
const std::vector<uint8_t>& val)
override;
57 void bind(
int column,
const uint8_t* data,
size_t len)
override;
59 std::pair<const uint8_t*, size_t> get_blob(
int column)
override;
60 std::string get_str(
int column)
override;
61 size_t get_size_t(
int column)
override;
63 size_t spin()
override;
66 Sqlite3_Statement(sqlite3* db, std::string_view base_sql);
67 ~Sqlite3_Statement()
override;
69 Sqlite3_Statement(
const Sqlite3_Statement& other) =
delete;
70 Sqlite3_Statement(Sqlite3_Statement&& other) =
delete;
71 Sqlite3_Statement& operator=(
const Sqlite3_Statement& other) =
delete;
72 Sqlite3_Statement& operator=(Sqlite3_Statement&& other) =
delete;