From ae321006e7ccd4db92beed2d0e525d20cee922fa Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sun, 24 Feb 2019 14:15:34 +0000 Subject: Update to new libdbpp interface --- libodbcpp/odbc-param.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'libodbcpp/odbc-param.cpp') 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; @@ -98,6 +99,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) { -- cgit v1.2.3