aboutsummaryrefslogtreecommitdiff
path: root/odb/sqlite/object-statements.hxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-03-24 14:02:16 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-03-24 14:02:16 +0200
commit7939f7972cf22ee9a74518978e4f7d4d77535e09 (patch)
treeb211e2f455ef717482370fc262a63a5f7bfeb77f /odb/sqlite/object-statements.hxx
parent01e70d9a1d49bcb126adc45f85168aa7c9cbad19 (diff)
Add support for clearing connection from active and uncached statements
Diffstat (limited to 'odb/sqlite/object-statements.hxx')
-rw-r--r--odb/sqlite/object-statements.hxx16
1 files changed, 16 insertions, 0 deletions
diff --git a/odb/sqlite/object-statements.hxx b/odb/sqlite/object-statements.hxx
index 68fd04e..3ab627d 100644
--- a/odb/sqlite/object-statements.hxx
+++ b/odb/sqlite/object-statements.hxx
@@ -246,10 +246,14 @@ namespace odb
persist_statement ()
{
if (persist_ == 0)
+ {
persist_.reset (
new (details::shared) persist_statement_type (
conn_, object_traits::persist_statement, in_image_binding_));
+ persist_->cached (true);
+ }
+
return *persist_;
}
@@ -257,6 +261,7 @@ namespace odb
find_statement ()
{
if (find_ == 0)
+ {
find_.reset (
new (details::shared) find_statement_type (
conn_,
@@ -264,6 +269,9 @@ namespace odb
id_image_binding_,
out_image_binding_));
+ find_->cached (true);
+ }
+
return *find_;
}
@@ -271,6 +279,7 @@ namespace odb
update_statement ()
{
if (update_ == 0)
+ {
update_.reset (
new (details::shared) update_statement_type (
conn_,
@@ -278,6 +287,9 @@ namespace odb
id_image_binding_,
in_image_binding_));
+ update_->cached (true);
+ }
+
return *update_;
}
@@ -285,12 +297,16 @@ namespace odb
erase_statement ()
{
if (erase_ == 0)
+ {
erase_.reset (
new (details::shared) erase_statement_type (
conn_,
object_traits::erase_statement,
id_image_binding_));
+ erase_->cached (true);
+ }
+
return *erase_;
}