summaryrefslogtreecommitdiff
path: root/odb/relational/mssql
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2012-03-07 10:21:09 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2012-03-07 10:21:09 +0200
commit19131a419b35e409e6b65fc47ff31f7742ff54f3 (patch)
tree48a2fc660814062ce114d83e939f16d0ede511e6 /odb/relational/mssql
parentf573927d48a7ceb155cf681e7cbad1e5176b2c0b (diff)
Use RAII to free select statement results
Diffstat (limited to 'odb/relational/mssql')
-rw-r--r--odb/relational/mssql/context.cxx1
-rw-r--r--odb/relational/mssql/source.cxx18
2 files changed, 1 insertions, 18 deletions
diff --git a/odb/relational/mssql/context.cxx b/odb/relational/mssql/context.cxx
index 312cc03..1fddbe9 100644
--- a/odb/relational/mssql/context.cxx
+++ b/odb/relational/mssql/context.cxx
@@ -84,6 +84,7 @@ namespace relational
generate_grow = false;
need_alias_as = true;
insert_send_auto_id = false;
+ delay_freeing_statement_result = true;
data_->bind_vector_ = "mssql::bind*";
// Populate the C++ type to DB type map.
diff --git a/odb/relational/mssql/source.cxx b/odb/relational/mssql/source.cxx
index 1b800aa..2d8d41d 100644
--- a/odb/relational/mssql/source.cxx
+++ b/odb/relational/mssql/source.cxx
@@ -971,24 +971,6 @@ namespace relational
}
virtual void
- 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
- // streaming long data.
- //
- os << "if (r == select_statement::no_data)" << endl
- << "st.free_result ();"
- << endl;
- }
-
- 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)