diff options
Diffstat (limited to 'odb/sqlite/transaction-impl.cxx')
-rw-r--r-- | odb/sqlite/transaction-impl.cxx | 35 |
1 files changed, 28 insertions, 7 deletions
diff --git a/odb/sqlite/transaction-impl.cxx b/odb/sqlite/transaction-impl.cxx index 772b274..b425ed8 100644 --- a/odb/sqlite/transaction-impl.cxx +++ b/odb/sqlite/transaction-impl.cxx @@ -14,12 +14,38 @@ namespace odb namespace sqlite { transaction_impl:: + transaction_impl (database_type& db, lock l) + : odb::transaction_impl (db), lock_ (l) + { + } + + transaction_impl:: transaction_impl (connection_ptr c, lock l) - : odb::transaction_impl (c->database (), *c), connection_ (c) + : odb::transaction_impl (c->database (), *c), + connection_ (c), + lock_ (l) + { + } + + transaction_impl:: + ~transaction_impl () + { + } + + void transaction_impl:: + start () { + // Grab a connection if we don't already have one. + // + if (connection_ == 0) + { + connection_ = static_cast<database_type&> (database_).connection (); + odb::transaction_impl::connection_ = connection_.get (); + } + statement_cache& sc (connection_->statement_cache ()); - switch (l) + switch (lock_) { case deferred: { @@ -39,11 +65,6 @@ namespace odb } } - transaction_impl:: - ~transaction_impl () - { - } - void transaction_impl:: commit () { |