diff Framework/MySQL/MySQLTransaction.cpp @ 217:ee5858d438dc

TransactionType given to MySQLTransaction constructor
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 26 Mar 2021 18:02:34 +0100
parents ab96698c73a3
children d1b124d116c1
line wrap: on
line diff
--- a/Framework/MySQL/MySQLTransaction.cpp	Fri Mar 26 17:47:56 2021 +0100
+++ b/Framework/MySQL/MySQLTransaction.cpp	Fri Mar 26 18:02:34 2021 +0100
@@ -31,11 +31,25 @@
 
 namespace OrthancDatabases
 {
-  MySQLTransaction::MySQLTransaction(MySQLDatabase& db) :
+  MySQLTransaction::MySQLTransaction(MySQLDatabase& db,
+                                     TransactionType type) :
     db_(db),
     active_(false)
   {
-    db_.Execute("START TRANSACTION", false);
+    switch (type)
+    {
+      case TransactionType_ReadWrite:
+        db_.Execute("START TRANSACTION READ WRITE", false);
+        break;
+
+      case TransactionType_ReadOnly:
+        db_.Execute("START TRANSACTION READ ONLY", false);
+        break;
+
+      default:
+        throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
+    }
+        
     active_ = true;
   }