summaryrefslogtreecommitdiff
path: root/odb/mssql/transaction-impl.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2024-02-01 18:10:29 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2024-02-01 18:10:29 +0300
commit2895ad78dbdb43e57fc34558b4530b4e105fc72d (patch)
tree9a176c9a1a34cfa9df60fcf482bc6c360ae11214 /odb/mssql/transaction-impl.cxx
parent8ac5c705c360b9ccde527eea24ddc90b2f6ed7ec (diff)
Turn libodb-mssql repository into package for muti-package repositorylibodb-mssql
Diffstat (limited to 'odb/mssql/transaction-impl.cxx')
-rw-r--r--odb/mssql/transaction-impl.cxx103
1 files changed, 0 insertions, 103 deletions
diff --git a/odb/mssql/transaction-impl.cxx b/odb/mssql/transaction-impl.cxx
deleted file mode 100644
index a44e83f..0000000
--- a/odb/mssql/transaction-impl.cxx
+++ /dev/null
@@ -1,103 +0,0 @@
-// file : odb/mssql/transaction-impl.cxx
-// license : ODB NCUEL; see accompanying LICENSE file
-
-#include <odb/tracer.hxx>
-
-#include <odb/mssql/mssql.hxx>
-#include <odb/mssql/database.hxx>
-#include <odb/mssql/connection.hxx>
-#include <odb/mssql/transaction-impl.hxx>
-#include <odb/mssql/error.hxx>
-
-namespace odb
-{
- namespace mssql
- {
- transaction_impl::
- transaction_impl (database_type& db)
- : odb::transaction_impl (db)
- {
- }
-
- transaction_impl::
- transaction_impl (connection_ptr c)
- : odb::transaction_impl (c->database (), *c), connection_ (c)
- {
- }
-
- 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 ();
- }
-
- {
- odb::tracer* t;
- if ((t = connection_->tracer ()) || (t = database_.tracer ()))
- t->execute (*connection_, "BEGIN");
- }
-
- // In ODBC a transaction is started automatically before the first
- // statement is executed.
- //
- }
-
- void transaction_impl::
- commit ()
- {
- // Invalidate query results.
- //
- connection_->invalidate_results ();
-
- {
- odb::tracer* t;
- if ((t = connection_->tracer ()) || (t = database_.tracer ()))
- t->execute (*connection_, "COMMIT");
- }
-
- SQLRETURN r (
- SQLEndTran (SQL_HANDLE_DBC, connection_->handle (), SQL_COMMIT));
-
- if (!SQL_SUCCEEDED (r))
- translate_error (r, *connection_, true);
-
- // Release the connection.
- //
- connection_.reset ();
- }
-
- void transaction_impl::
- rollback ()
- {
- // Invalidate query results.
- //
- connection_->invalidate_results ();
-
- {
- odb::tracer* t;
- if ((t = connection_->tracer ()) || (t = database_.tracer ()))
- t->execute (*connection_, "ROLLBACK");
- }
-
- SQLRETURN r (
- SQLEndTran (SQL_HANDLE_DBC, connection_->handle (), SQL_ROLLBACK));
-
- if (!SQL_SUCCEEDED (r))
- translate_error (r, *connection_, true);
-
- // Release the connection.
- //
- connection_.reset ();
- }
- }
-}