summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libodbcpp/connection.cpp9
-rw-r--r--libodbcpp/connection.h1
2 files changed, 10 insertions, 0 deletions
diff --git a/libodbcpp/connection.cpp b/libodbcpp/connection.cpp
index 087fc69..8619201 100644
--- a/libodbcpp/connection.cpp
+++ b/libodbcpp/connection.cpp
@@ -100,6 +100,15 @@ ODBC::Connection::~Connection()
}
}
+void
+ODBC::Connection::finish() const
+{
+ if (txDepth != 0) {
+ rollbackTx();
+ throw Error("Transaction still open");
+ }
+}
+
int
ODBC::Connection::beginTx() const
{
diff --git a/libodbcpp/connection.h b/libodbcpp/connection.h
index 4fc52ca..0e507bd 100644
--- a/libodbcpp/connection.h
+++ b/libodbcpp/connection.h
@@ -16,6 +16,7 @@ namespace ODBC {
SQLHENV env;
SQLHDBC conn;
+ void finish() const;
int beginTx() const;
int commitTx() const;
int rollbackTx() const;