#pragma once #include #include #include enum class StepResult { Row, Done, Error, }; class Statement { public: virtual ~Statement() = default; virtual StepResult step() = 0; virtual void bind(std::vector params) = 0; virtual std::int64_t get_column_int64(const int col) = 0; virtual std::string get_column_text(const int col) = 0; virtual int get_column_int(const int col) = 0; virtual bool bind_text(const int pos, const std::string& data) = 0; virtual bool bind_int64(const int pos, const std::int64_t value) = 0; virtual bool bind_null(const int pos) = 0; };