From f3e419f52b42cfefa9b3eedbde3697c8b95c92a7 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 22 Nov 2010 12:09:48 +0200 Subject: Make query result aware of session and const objects --- odb/mysql/result.txx | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) (limited to 'odb/mysql/result.txx') diff --git a/odb/mysql/result.txx b/odb/mysql/result.txx index c342b17..bb1fe01 100644 --- a/odb/mysql/result.txx +++ b/odb/mysql/result.txx @@ -16,19 +16,26 @@ namespace odb template result_impl:: result_impl (details::shared_ptr statement, - object_statements& statements) - : statement_ (statement), statements_ (statements) + object_statements& statements) + : odb::result_impl (statements.connection ().database ()), + statement_ (statement), + statements_ (statements) { next (); } template void result_impl:: - current (T& x) + current (object_type& x) { - if (!this->end_) - traits::init ( - x, statements_.image (), statements_.connection ().database ()); + object_traits::init (x, statements_.image (), this->database ()); + } + + template + typename result_impl::id_type result_impl:: + current_id () + { + return object_traits::id (statements_.image ()); } template @@ -42,12 +49,12 @@ namespace odb // if (statement_->cached ()) { - typename traits::image_type& im (statements_.image ()); + typename object_traits::image_type& im (statements_.image ()); if (im.version != statements_.out_image_version ()) { binding& b (statements_.out_image_binding ()); - traits::bind (b.bind, im, true); + object_traits::bind (b.bind, im, true); statements_.out_image_version (im.version); b.version++; } @@ -59,13 +66,13 @@ namespace odb { case select_statement::truncated: { - typename traits::image_type& im (statements_.image ()); - traits::grow (im, statements_.out_image_error ()); + typename object_traits::image_type& im (statements_.image ()); + object_traits::grow (im, statements_.out_image_error ()); if (im.version != statements_.out_image_version ()) { binding& b (statements_.out_image_binding ()); - traits::bind (b.bind, im, true); + object_traits::bind (b.bind, im, true); statements_.out_image_version (im.version); b.version++; statement_->refetch (); -- cgit v1.1