aboutsummaryrefslogtreecommitdiff
path: root/odb/relational/mssql/source.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-12-22 11:03:29 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-01-20 15:43:45 +0200
commitbf122510c89d80380277ab3fb374e647bd3e2ac8 (patch)
treeaa25f22c7c1679ad8e0d3fb5010ffefb988f9dc6 /odb/relational/mssql/source.cxx
parentc81d68fd7c0bf884942bd5108008d9718ae87719 (diff)
Handle delayed result set freeing in all places
Diffstat (limited to 'odb/relational/mssql/source.cxx')
-rw-r--r--odb/relational/mssql/source.cxx11
1 files changed, 8 insertions, 3 deletions
diff --git a/odb/relational/mssql/source.cxx b/odb/relational/mssql/source.cxx
index 629f823..c1236b8 100644
--- a/odb/relational/mssql/source.cxx
+++ b/odb/relational/mssql/source.cxx
@@ -1279,12 +1279,11 @@ namespace relational
virtual void
init_value_extra ()
{
- os << "sts.find_statement ().stream_result ();"
- << "sts.find_statement ().free_result ();";
+ os << "sts.find_statement ().stream_result ();";
}
virtual void
- free_statement_result ()
+ free_statement_result_immediate ()
{
// Only free the result if there are no rows. Otherwise we
// need to keep the result alive until after we are done
@@ -1296,6 +1295,12 @@ namespace relational
}
virtual void
+ free_statement_result_delayed ()
+ {
+ os << "sts.find_statement ().free_result ();";
+ }
+
+ virtual void
persist_statement_extra (type& c,
relational::query_parameters&,
persist_position p)