From 5b0430fdf4617b396e462872d438a663b174a3a8 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 12 Oct 2012 17:24:44 +0200 Subject: Completion of prepared query support --- odb/connection.ixx | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) (limited to 'odb/connection.ixx') diff --git a/odb/connection.ixx b/odb/connection.ixx index fd1a624..8842d8e 100644 --- a/odb/connection.ixx +++ b/odb/connection.ixx @@ -3,6 +3,7 @@ // license : GNU GPL v2; see accompanying LICENSE file #include // std::string +#include namespace odb { @@ -44,6 +45,63 @@ namespace odb return prepare_query (n, query (q)); } + template + inline prepared_query connection:: + prepare_query (const char* n, const query& q) + { + return query_::call (*this, n, q); + } + + template + inline void connection:: + cache_query (const prepared_query& pq) + { + assert (pq); + cache_query_ (pq.impl_, typeid (T), 0, 0, 0); + } + + template + inline void connection:: + cache_query (const prepared_query& pq, std::auto_ptr

params) + { + assert (pq); + assert (params.get () != 0); + cache_query_ ( + pq.impl_, typeid (T), params.get (), &typeid (P), ¶ms_deleter

); + params.release (); + } + +#ifdef ODB_CXX11 + template + inline void connection:: + cache_query (const prepared_query& pq, std::unique_ptr

params) + { + assert (pq); + assert (params); + cache_query_ ( + pq.impl_, typeid (T), params.get (), &typeid (P), ¶ms_deleter

); + params.release (); + } +#endif + + template + inline prepared_query connection:: + lookup_query (const char* name) const + { + return prepared_query (lookup_query_ (name, typeid (T), 0, 0)); + } + + template + inline prepared_query connection:: + lookup_query (const char* name, P*& params) const + { + return prepared_query ( + lookup_query_ (name, + typeid (T), + reinterpret_cast (¶ms), + &typeid (P))); + } + inline void connection:: tracer (tracer_type& t) { -- cgit v1.1