summaryrefslogtreecommitdiff
path: root/icetray/icetray/abstractDatabaseClient.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'icetray/icetray/abstractDatabaseClient.cpp')
-rw-r--r--icetray/icetray/abstractDatabaseClient.cpp20
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 *)