aboutsummaryrefslogtreecommitdiff
path: root/odb/sqlite/database.cxx
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-08-21 16:27:34 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-08-21 16:27:34 +0200
commit5694c0a4529334756f2b914ad67408df199551dc (patch)
tree38daa2e27d6049ca7a808af642eb82a29c9d2886 /odb/sqlite/database.cxx
parent1bf4678c29b6e51396c18582b270254d1bd2cddc (diff)
Add odb::connection class
This abstract class represents a connection to the database. One can use it to start a transaction or to execute a native statement out of a transaction. Before we had concrete connection classes in the database runtime libraries (e.g., odb::mysql::connection). Now these classes derive from odb::connection.
Diffstat (limited to 'odb/sqlite/database.cxx')
-rw-r--r--odb/sqlite/database.cxx41
1 files changed, 4 insertions, 37 deletions
diff --git a/odb/sqlite/database.cxx b/odb/sqlite/database.cxx
index 912ec97..e756608 100644
--- a/odb/sqlite/database.cxx
+++ b/odb/sqlite/database.cxx
@@ -6,10 +6,8 @@
#include <sstream>
#include <odb/sqlite/database.hxx>
-#include <odb/sqlite/transaction.hxx>
#include <odb/sqlite/connection.hxx>
#include <odb/sqlite/connection-factory.hxx>
-#include <odb/sqlite/statement.hxx>
#include <odb/sqlite/error.hxx>
#include <odb/sqlite/exceptions.hxx>
@@ -80,42 +78,11 @@ namespace odb
details::options::print_usage (os);
}
- unsigned long long database::
- execute (const char* s, std::size_t n)
+ odb::connection* database::
+ connection_ ()
{
- if (!transaction::has_current ())
- throw not_in_transaction ();
-
- connection_type& c (transaction::current ().connection ());
- simple_statement st (c, s, n);
- return st.execute ();
- }
-
- transaction_impl* database::
- begin ()
- {
- if (transaction::has_current ())
- throw already_in_transaction ();
-
- return new transaction_impl (*this, transaction_impl::deferred);
- }
-
- transaction_impl* database::
- begin_immediate ()
- {
- if (transaction::has_current ())
- throw already_in_transaction ();
-
- return new transaction_impl (*this, transaction_impl::immediate);
- }
-
- transaction_impl* database::
- begin_exclusive ()
- {
- if (transaction::has_current ())
- throw already_in_transaction ();
-
- return new transaction_impl (*this, transaction_impl::exclusive);
+ connection_ptr c (factory_->connect ());
+ return c.release ();
}
}
}