summaryrefslogtreecommitdiff
path: root/libodbcpp/odbc-param.h
diff options
context:
space:
mode:
Diffstat (limited to 'libodbcpp/odbc-param.h')
-rw-r--r--libodbcpp/odbc-param.h64
1 files changed, 38 insertions, 26 deletions
diff --git a/libodbcpp/odbc-param.h b/libodbcpp/odbc-param.h
index 03aaef5..58ed9d2 100644
--- a/libodbcpp/odbc-param.h
+++ b/libodbcpp/odbc-param.h
@@ -3,7 +3,14 @@
#include "odbc-param_fwd.h"
#include <boost/date_time/posix_time/posix_time_types.hpp>
+#pragma GCC diagnostic push
+#pragma GCC diagnostic ignored "-Wold-style-cast"
+#pragma GCC diagnostic ignored "-Wsign-conversion"
+#ifndef __clang__
+# pragma GCC diagnostic ignored "-Wuseless-cast"
+#endif
#include <glibmm/ustring.h>
+#pragma GCC diagnostic pop
#include <malloc.h>
#include <sqlext.h>
@@ -13,7 +20,7 @@ namespace ODBC {
BooleanParam() : Param() { }
BooleanParam(Command * c, unsigned int i) : Param(c, i)
{
- bindLen = BooleanParam::size();
+ bindLen = static_cast<SQLLEN>(BooleanParam::size());
}
virtual SQLSMALLINT
ctype() const override
@@ -30,7 +37,7 @@ namespace ODBC {
{
return sizeof(SQLINTEGER);
}
- virtual SQLINTEGER
+ virtual SQLSMALLINT
dp() const override
{
return 0;
@@ -55,24 +62,24 @@ namespace ODBC {
SignedIntegerParam() : Param() { }
SignedIntegerParam(Command * c, unsigned int i) : Param(c, i)
{
- bindLen = SignedIntegerParam::size();
+ bindLen = static_cast<SQLLEN>(SignedIntegerParam::size());
}
virtual SQLSMALLINT
ctype() const override
{
- return SQL_C_LONG;
+ return SQL_C_SBIGINT;
}
virtual SQLSMALLINT
stype() const override
{
- return SQL_C_LONG;
+ return SQL_C_SBIGINT;
}
virtual SQLULEN
size() const override
{
- return sizeof(SQLINTEGER);
+ return sizeof(data);
}
- virtual SQLINTEGER
+ virtual SQLSMALLINT
dp() const override
{
return 0;
@@ -83,38 +90,38 @@ namespace ODBC {
return &data;
}
SignedIntegerParam &
- operator=(const SQLINTEGER & d)
+ operator=(const SQLBIGINT & d)
{
data = d;
return *this;
}
protected:
- SQLINTEGER data;
+ SQLBIGINT data;
};
class UnsignedIntegerParam : public Param {
public:
UnsignedIntegerParam() : Param() { }
UnsignedIntegerParam(Command * c, unsigned int i) : Param(c, i)
{
- bindLen = UnsignedIntegerParam::size();
+ bindLen = static_cast<SQLLEN>(UnsignedIntegerParam::size());
}
virtual SQLSMALLINT
ctype() const override
{
- return SQL_C_ULONG;
+ return SQL_C_UBIGINT;
}
virtual SQLSMALLINT
stype() const override
{
- return SQL_C_ULONG;
+ return SQL_C_UBIGINT;
}
virtual SQLULEN
size() const override
{
- return sizeof(SQLUINTEGER);
+ return sizeof(data);
}
- virtual SQLINTEGER
+ virtual SQLSMALLINT
dp() const override
{
return 0;
@@ -125,21 +132,21 @@ namespace ODBC {
return &data;
}
UnsignedIntegerParam &
- operator=(const SQLUINTEGER & d)
+ operator=(const SQLUBIGINT & d)
{
data = d;
return *this;
}
protected:
- SQLUINTEGER data;
+ SQLUBIGINT data;
};
class FloatingPointParam : public Param {
public:
FloatingPointParam() : Param() { }
FloatingPointParam(Command * c, unsigned int i) : Param(c, i)
{
- bindLen = FloatingPointParam::size();
+ bindLen = static_cast<SQLLEN>(FloatingPointParam::size());
}
virtual SQLSMALLINT
ctype() const override
@@ -156,7 +163,7 @@ namespace ODBC {
{
return sizeof(SQLDOUBLE);
}
- virtual SQLINTEGER
+ virtual SQLSMALLINT
dp() const override
{
return 10;
@@ -167,11 +174,16 @@ namespace ODBC {
return &data;
}
FloatingPointParam &
- operator=(const SQLDOUBLE & d)
+ operator=(const double & d)
{
data = d;
return *this;
}
+ FloatingPointParam &
+ operator=(const float & f)
+ {
+ return operator=(static_cast<double>(f));
+ }
protected:
SQLDOUBLE data;
@@ -181,7 +193,7 @@ namespace ODBC {
StdStringParam() : Param() { }
StdStringParam(Command * c, unsigned int i) : Param(c, i)
{
- bindLen = StdStringParam::size();
+ bindLen = static_cast<SQLLEN>(StdStringParam::size());
}
virtual SQLSMALLINT
ctype() const override
@@ -198,7 +210,7 @@ namespace ODBC {
{
return data.length();
}
- virtual SQLINTEGER
+ virtual SQLSMALLINT
dp() const override
{
return 0;
@@ -219,7 +231,7 @@ namespace ODBC {
IntervalParam() : Param() { }
IntervalParam(Command * c, unsigned int i) : Param(c, i)
{
- bindLen = IntervalParam::size();
+ bindLen = static_cast<SQLLEN>(IntervalParam::size());
}
virtual SQLSMALLINT
ctype() const override
@@ -236,7 +248,7 @@ namespace ODBC {
{
return sizeof(SQL_INTERVAL_STRUCT);
}
- virtual SQLINTEGER
+ virtual SQLSMALLINT
dp() const override
{
return boost::posix_time::time_res_traits::num_fractional_digits();
@@ -256,7 +268,7 @@ namespace ODBC {
TimeStampParam() : Param() { }
TimeStampParam(Command * c, unsigned int i) : Param(c, i)
{
- bindLen = TimeStampParam::size();
+ bindLen = static_cast<SQLLEN>(TimeStampParam::size());
}
virtual SQLSMALLINT
ctype() const override
@@ -273,7 +285,7 @@ namespace ODBC {
{
return sizeof(SQL_TIMESTAMP_STRUCT);
}
- virtual SQLINTEGER
+ virtual SQLSMALLINT
dp() const override
{
return boost::posix_time::time_res_traits::num_fractional_digits();
@@ -310,7 +322,7 @@ namespace ODBC {
{
return 0;
}
- virtual SQLINTEGER
+ virtual SQLSMALLINT
dp() const override
{
return 0;