diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-03-07 10:21:07 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-03-07 10:21:07 +0200 |
commit | c1b8b6f16e4881e57aa0da67e6f09ad71ee6099d (patch) | |
tree | da1f5c81451d5a75f5ed12ae6752eb3feac969f7 /odb/mssql/object-result.txx | |
parent | 2534b3aa626d6a426559c556b20faf7b69b47717 (diff) |
Use RAII to free select statement results
Diffstat (limited to 'odb/mssql/object-result.txx')
-rw-r--r-- | odb/mssql/object-result.txx | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/odb/mssql/object-result.txx b/odb/mssql/object-result.txx index efaeae9..9f6b2d0 100644 --- a/odb/mssql/object-result.txx +++ b/odb/mssql/object-result.txx @@ -31,6 +31,9 @@ namespace odb } delete image_copy_; + + if (!this->end_) + statement_->free_result (); } template <typename T> @@ -129,7 +132,10 @@ namespace odb } if (statement_->fetch () == select_statement::no_data) + { + statement_->free_result (); this->end_ = true; + } else { cc.callback = &change_callback; @@ -184,6 +190,9 @@ namespace odb cc.callback = 0; } + if (!this->end_) + statement_->free_result (); + delete image_copy_; } @@ -252,7 +261,10 @@ namespace odb } if (statement_->fetch () == select_statement::no_data) + { + statement_->free_result (); this->end_ = true; + } else { cc.callback = &change_callback; |