finished statement cache class

This commit is contained in:
2025-08-05 19:30:40 +02:00
parent 31964e55c1
commit 35fad9f47c
13 changed files with 410 additions and 74 deletions
@@ -26,14 +26,14 @@ public:
virtual utils::result<std::unique_ptr<query_result_impl>, utils::error> fetch(const interface::parameter_binder& bindings) = 0;
template < class Type >
void bind_object(Type &obj, const interface::parameter_binder& bindings) {
void bind_object(Type &obj, interface::parameter_binder& bindings) {
object_parameter_binder object_binder_;
object_binder_.reset(start_index());
object_binder_.bind(obj, bindings);
}
template < class Type >
void bind(const size_t pos, Type &val, const interface::parameter_binder& bindings) {
void bind(const size_t pos, Type &val, interface::parameter_binder& bindings) {
utils::data_type_traits<Type>::bind_value(bindings, adjust_index(pos), val);
}
@@ -16,11 +16,11 @@ public:
virtual utils::result<std::unique_ptr<query_result_impl>, utils::error> fetch(interface::parameter_binder& bindings) = 0;
template<class Type>
void bind(const Type &obj, const interface::parameter_binder& bindings) {
void bind(const Type &obj, interface::parameter_binder& bindings) {
statement_->bind_object(obj, bindings);
}
template<typename Type>
void bind(size_t pos, Type &value, const interface::parameter_binder& bindings) {
void bind(size_t pos, Type &value, interface::parameter_binder& bindings) {
statement_->bind(pos, value, bindings);
}
void bind(size_t pos, const char *value, size_t size, interface::parameter_binder& bindings) const;
@@ -28,6 +28,8 @@ public:
void reset() const;
[[nodiscard]] std::string sql() const;
[[nodiscard]] std::unique_ptr<utils::attribute_writer> create_binder() const;
protected: