Mercurial > hg > orthanc-databases
diff Framework/PostgreSQL/PostgreSQLDatabase.cpp @ 215:b40b30075c51
added TransactionType_Implicit
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Fri, 26 Mar 2021 17:32:29 +0100 |
parents | ab96698c73a3 |
children | fbb52129158a |
line wrap: on
line diff
--- a/Framework/PostgreSQL/PostgreSQLDatabase.cpp Thu Mar 25 13:56:26 2021 +0100 +++ b/Framework/PostgreSQL/PostgreSQLDatabase.cpp Fri Mar 26 17:32:29 2021 +0100 @@ -232,9 +232,6 @@ { class PostgreSQLImplicitTransaction : public ImplicitTransaction { - private: - PostgreSQLDatabase& db_; - protected: virtual IResult* ExecuteInternal(IPrecompiledStatement& statement, const Dictionary& parameters) @@ -247,25 +244,26 @@ { dynamic_cast<PostgreSQLStatement&>(statement).ExecuteWithoutResult(*this, parameters); } - - public: - explicit PostgreSQLImplicitTransaction(PostgreSQLDatabase& db) : - db_(db) - { - } }; } - ITransaction* PostgreSQLDatabase::CreateTransaction(bool isImplicit) + ITransaction* PostgreSQLDatabase::CreateTransaction(TransactionType type) { - if (isImplicit) + switch (type) { - return new PostgreSQLImplicitTransaction(*this); - } - else - { - return new PostgreSQLTransaction(*this); + case TransactionType_Implicit: + return new PostgreSQLImplicitTransaction; + + case TransactionType_ReadOnly: + // TODO => READ-ONLY + return new PostgreSQLTransaction(*this); + + case TransactionType_ReadWrite: + return new PostgreSQLTransaction(*this); + + default: + throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); } }