summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2017-05-14 18:32:27 +0100
committerDan Goodliffe <dan@randomdan.homeip.net>2017-05-14 18:32:27 +0100
commite56ac1e5bf53326edc7d86c88cc039b469dc9b18 (patch)
tree643382d3ea9ab10871f440fb364cc331c90454f5
parentStandalone split (diff)
downloadicetray-e56ac1e5bf53326edc7d86c88cc039b469dc9b18.tar.bz2
icetray-e56ac1e5bf53326edc7d86c88cc039b469dc9b18.tar.xz
icetray-e56ac1e5bf53326edc7d86c88cc039b469dc9b18.zip
Add fetch variant that takes an existing DB connection, suitable for use in transaction blocks etcicetray-0.1.4
-rw-r--r--icetray/icetray/abstractDatabaseClient.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/icetray/icetray/abstractDatabaseClient.h b/icetray/icetray/abstractDatabaseClient.h
index 4c65ff7..3242553 100644
--- a/icetray/icetray/abstractDatabaseClient.h
+++ b/icetray/icetray/abstractDatabaseClient.h
@@ -18,7 +18,15 @@ namespace IceTray {
fetch(const SqlSource & sql, const Params & ... params)
{
auto c = db->get();
- auto s = sql.select(c.get());
+ return fetch<Domain, Params...>(c.get(), sql, params...);
+ }
+
+ template<typename Domain, typename ... Params>
+ inline
+ Domain
+ fetch(DB::Connection * c, const SqlSource & sql, const Params & ... params)
+ {
+ auto s = sql.select(c);
bind(0, s.get(), params...);
return Slicer::DeserializeAny<Slicer::SqlSelectDeserializer, Domain>(*s);
}