diff options
Diffstat (limited to 'icetray/icetray/abstractDatabaseClient.cpp')
-rw-r--r-- | icetray/icetray/abstractDatabaseClient.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/icetray/icetray/abstractDatabaseClient.cpp b/icetray/icetray/abstractDatabaseClient.cpp index e18045b..8bac22f 100644 --- a/icetray/icetray/abstractDatabaseClient.cpp +++ b/icetray/icetray/abstractDatabaseClient.cpp @@ -1,6 +1,7 @@ #include "abstractDatabaseClient.h" #include "Ice/Config.h" #include "IceUtil/Optional.h" +#include <Ice/BuiltinSequences.h> namespace IceTray { AbstractDatabaseClient::AbstractDatabaseClient(DatabasePoolPtr d) : @@ -25,15 +26,34 @@ namespace IceTray { else { \ cmd->bindNull(o); \ } \ + } \ + template<> \ + void \ + AbstractDatabaseClient::bind1(int o, DB::Command * cmd, const boost::optional<T> & p) \ + { \ + if (p) { \ + cmd->bindFunc(o, *p); \ + } \ + else { \ + cmd->bindNull(o); \ + } \ } PARAMBINDER(std::string, bindParamS); PARAMBINDER(Ice::Byte, bindParamI); PARAMBINDER(Ice::Short, bindParamI); PARAMBINDER(Ice::Int, bindParamI); PARAMBINDER(Ice::Long, bindParamI); + PARAMBINDER(unsigned long, bindParamI); PARAMBINDER(Ice::Float, bindParamF); PARAMBINDER(Ice::Double, bindParamF); PARAMBINDER(bool, bindParamB); + PARAMBINDER(Ice::ByteSeq, bindParamBLOB); + template<> + void + AbstractDatabaseClient::bind1(int o, DB::Command * cmd, const std::nullptr_t &) \ + { + cmd->bindNull(o); + } void AbstractDatabaseClient::bind(int, DB::Command *) |