From 881033464c13398f78be306d8d785616f0947896 Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 24 Feb 2019 15:29:12 +0000 Subject: Bring inline with clang-tidy checks --- libodbcpp/odbc-param.h | 52 ++++++++++++++++---------------------------------- 1 file changed, 16 insertions(+), 36 deletions(-) (limited to 'libodbcpp/odbc-param.h') diff --git a/libodbcpp/odbc-param.h b/libodbcpp/odbc-param.h index 0981fe9..6ef5ae1 100644 --- a/libodbcpp/odbc-param.h +++ b/libodbcpp/odbc-param.h @@ -4,119 +4,99 @@ #include #include #include -#include "odbc-bind.h" +#include "odbc-param_fwd.h" #include namespace ODBC { - class Command; - class Param : public virtual Bind { - public: - Param(); - Param(Command *, unsigned int idx); - virtual ~Param() = 0; - void bind() const; - - virtual SQLSMALLINT stype() const = 0; // The SQL type ID - virtual SQLINTEGER dp() const = 0; // The decimal place count - virtual const void * dataAddress() const = 0; // The address of the data - - protected: - friend class Column; - mutable Command * paramCmd; - mutable unsigned int paramIdx; - mutable bool paramBound; // Has SqlBind(...) been called since last change of address? - SQLLEN dataLength; - }; - class BooleanParam : public Param { public: BooleanParam() : Param() { } - BooleanParam(Command * c, unsigned int i) : Param(c, i) { bindLen = size(); } + BooleanParam(Command * c, unsigned int i) : Param(c, i) { bindLen = BooleanParam::size(); } virtual SQLSMALLINT ctype() const override { return SQL_C_BIT; } virtual SQLSMALLINT stype() const override { return SQL_C_BIT; } virtual SQLULEN size() const override { return sizeof(SQLINTEGER); } virtual SQLINTEGER dp() const override { return 0; } virtual const void * dataAddress() const override { return &data; } - void operator=(const SQLINTEGER & d) { data = d; } + BooleanParam & operator=(const SQLINTEGER & d) { data = d; return *this; } protected: SQLINTEGER data; }; class SignedIntegerParam : public Param { public: SignedIntegerParam() : Param() { } - SignedIntegerParam(Command * c, unsigned int i) : Param(c, i) { bindLen = size(); } + SignedIntegerParam(Command * c, unsigned int i) : Param(c, i) { bindLen = SignedIntegerParam::size(); } virtual SQLSMALLINT ctype() const override { return SQL_C_LONG; } virtual SQLSMALLINT stype() const override { return SQL_C_LONG; } virtual SQLULEN size() const override { return sizeof(SQLINTEGER); } virtual SQLINTEGER dp() const override { return 0; } virtual const void * dataAddress() const override { return &data; } - void operator=(const SQLINTEGER & d) { data = d; } + SignedIntegerParam & operator=(const SQLINTEGER & d) { data = d; return *this; } protected: SQLINTEGER data; }; class UnsignedIntegerParam : public Param { public: UnsignedIntegerParam() : Param() { } - UnsignedIntegerParam(Command * c, unsigned int i) : Param(c, i) { bindLen = size(); } + UnsignedIntegerParam(Command * c, unsigned int i) : Param(c, i) { bindLen = UnsignedIntegerParam::size(); } virtual SQLSMALLINT ctype() const override { return SQL_C_ULONG; } virtual SQLSMALLINT stype() const override { return SQL_C_ULONG; } virtual SQLULEN size() const override { return sizeof(SQLUINTEGER); } virtual SQLINTEGER dp() const override { return 0; } virtual const void * dataAddress() const override { return &data; } - void operator=(const SQLUINTEGER & d) { data = d; } + UnsignedIntegerParam & operator=(const SQLUINTEGER & d) { data = d; return *this; } protected: SQLUINTEGER data; }; class FloatingPointParam : public Param { public: FloatingPointParam() : Param() { } - FloatingPointParam(Command * c, unsigned int i) : Param(c, i) { bindLen = size(); } + FloatingPointParam(Command * c, unsigned int i) : Param(c, i) { bindLen = FloatingPointParam::size(); } virtual SQLSMALLINT ctype() const override { return SQL_C_DOUBLE; } virtual SQLSMALLINT stype() const override { return SQL_C_DOUBLE; } virtual SQLULEN size() const override { return sizeof(SQLDOUBLE); } virtual SQLINTEGER dp() const override { return 10; } virtual const void * dataAddress() const override { return &data; } - void operator=(const SQLDOUBLE & d) { data = d; } + FloatingPointParam & operator=(const SQLDOUBLE & d) { data = d; return *this; } protected: SQLDOUBLE data; }; class StdStringParam : public Param { public: StdStringParam() : Param() { } - StdStringParam(Command * c, unsigned int i) : Param(c, i) { bindLen = size(); } + StdStringParam(Command * c, unsigned int i) : Param(c, i) { bindLen = StdStringParam::size(); } virtual SQLSMALLINT ctype() const override { return SQL_C_CHAR; } virtual SQLSMALLINT stype() const override { return SQL_CHAR; } virtual SQLULEN size() const override { return data.length(); } virtual SQLINTEGER dp() const override { return 0; } virtual const void * dataAddress() const override { return data.data(); } - void operator=(const std::string_view & d); - void operator=(const Glib::ustring & d); + StdStringParam & operator=(const std::string_view & d); + StdStringParam & operator=(const Glib::ustring & d); protected: std::string data; }; class IntervalParam : public Param { public: IntervalParam() : Param() { } - IntervalParam(Command * c, unsigned int i) : Param(c, i) { bindLen = size(); } + IntervalParam(Command * c, unsigned int i) : Param(c, i) { bindLen = IntervalParam::size(); } virtual SQLSMALLINT ctype() const override { return SQL_C_INTERVAL_DAY_TO_SECOND; } virtual SQLSMALLINT stype() const override { return SQL_INTERVAL_DAY_TO_SECOND; } virtual SQLULEN size() const override { return sizeof(SQL_INTERVAL_STRUCT); } virtual SQLINTEGER dp() const override { return boost::posix_time::time_res_traits::num_fractional_digits(); } virtual const void * dataAddress() const override { return &data; } - void operator=(const boost::posix_time::time_duration & d); + IntervalParam & operator=(const boost::posix_time::time_duration & d); protected: SQL_INTERVAL_STRUCT data; }; class TimeStampParam : public Param { public: TimeStampParam() : Param() { } - TimeStampParam(Command * c, unsigned int i) : Param(c, i) { bindLen = size(); } + TimeStampParam(Command * c, unsigned int i) : Param(c, i) { bindLen = TimeStampParam::size(); } virtual SQLSMALLINT ctype() const override { return SQL_C_TYPE_TIMESTAMP; } virtual SQLSMALLINT stype() const override { return SQL_TYPE_TIMESTAMP; } virtual SQLULEN size() const override { return sizeof(SQL_TIMESTAMP_STRUCT); } virtual SQLINTEGER dp() const override { return boost::posix_time::time_res_traits::num_fractional_digits(); } virtual const void * dataAddress() const override { return &data; } - void operator=(const boost::posix_time::ptime & d); + TimeStampParam & operator=(const boost::posix_time::ptime & d); protected: SQL_TIMESTAMP_STRUCT data; }; -- cgit v1.2.3