diff options
Diffstat (limited to 'libodbcpp/odbc-param.cpp')
-rw-r--r-- | libodbcpp/odbc-param.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/libodbcpp/odbc-param.cpp b/libodbcpp/odbc-param.cpp index f165d60..120703e 100644 --- a/libodbcpp/odbc-param.cpp +++ b/libodbcpp/odbc-param.cpp @@ -74,7 +74,8 @@ SIMPLEBINDER(bool, BooleanParam, B); SIMPLEBINDER(double, FloatingPointParam, F); SIMPLEBINDER(float, FloatingPointParam, F); -SIMPLEBINDER(const Glib::ustring &, GlibUstringParam, S); +SIMPLEBINDER(const Glib::ustring &, StdStringParam, S); +SIMPLEBINDER(const std::string_view &, StdStringParam, S); SIMPLEBINDER(const boost::posix_time::ptime &, TimeStampParam, T); SIMPLEBINDER(const boost::posix_time::time_duration &, IntervalParam, T); @@ -86,7 +87,7 @@ ODBC::Command::bindNull(unsigned int i) } void -ODBC::GlibUstringParam::operator=(Glib::ustring const & d) +ODBC::StdStringParam::operator=(Glib::ustring const & d) { const char * addr = data.data(); data = d; @@ -99,6 +100,19 @@ ODBC::GlibUstringParam::operator=(Glib::ustring const & d) } void +ODBC::StdStringParam::operator=(std::string_view const & d) +{ + const char * addr = data.data(); + data = d; + bindLen = d.length(); + paramBound &= (addr == data.data()); + if (!paramBound) { + paramBound = false; + bind(); + } +} + +void ODBC::TimeStampParam::operator=(const boost::posix_time::ptime & d) { data.year = d.date().year(); |