#ifndef STATEMENT_PROXY_HPP #define STATEMENT_PROXY_HPP #include "matador/sql/interface/statement_impl.hpp" namespace matador::sql { class statement_proxy { protected: explicit statement_proxy(std::unique_ptr&& stmt); public: virtual ~statement_proxy() = default; virtual utils::result execute() = 0; virtual utils::result, utils::error> fetch() = 0; template void bind(const Type &obj) { statement_->bind_object(obj); } template void bind(size_t pos, Type &value) { statement_->bind(pos, value); } void bind(size_t pos, const char *value, size_t size) const; void bind(size_t pos, std::string &val, size_t size) const; void reset() const; protected: std::unique_ptr statement_; }; } #endif //STATEMENT_PROXY_HPP