comparison Framework/MySQL/MySQLDatabase.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 b40b30075c51
children a4918d57435c
comparison
equal deleted inserted replaced
216:fbb52129158a 217:ee5858d438dc
205 db.OpenRoot(); 205 db.OpenRoot();
206 206
207 const std::string& database = parameters.GetDatabase(); 207 const std::string& database = parameters.GetDatabase();
208 208
209 { 209 {
210 MySQLTransaction t(db); 210 MySQLTransaction t(db, TransactionType_ReadWrite);
211 211
212 if (!db.DoesDatabaseExist(t, database)) 212 if (!db.DoesDatabaseExist(t, database))
213 { 213 {
214 LOG(ERROR) << "Inexistent database, please create it first: " << database; 214 LOG(ERROR) << "Inexistent database, please create it first: " << database;
215 throw Orthanc::OrthancException(Orthanc::ErrorCode_UnknownResource); 215 throw Orthanc::OrthancException(Orthanc::ErrorCode_UnknownResource);
337 bool success; 337 bool success;
338 338
339 { 339 {
340 MySQLStatement statement(*this, query); 340 MySQLStatement statement(*this, query);
341 341
342 MySQLTransaction t(*this); 342 MySQLTransaction t(*this, TransactionType_ReadWrite);
343 std::unique_ptr<IResult> result(t.Execute(statement, args)); 343 std::unique_ptr<IResult> result(t.Execute(statement, args));
344 344
345 success = (!result->IsDone() && 345 success = (!result->IsDone() &&
346 result->GetField(0).GetType() == ValueType_Integer64 && 346 result->GetField(0).GetType() == ValueType_Integer64 &&
347 dynamic_cast<const Integer64Value&>(result->GetField(0)).GetValue() == 1); 347 dynamic_cast<const Integer64Value&>(result->GetField(0)).GetValue() == 1);
545 { 545 {
546 case TransactionType_Implicit: 546 case TransactionType_Implicit:
547 return new MySQLImplicitTransaction; 547 return new MySQLImplicitTransaction;
548 548
549 case TransactionType_ReadOnly: 549 case TransactionType_ReadOnly:
550 // TODO => READ-ONLY
551 return new MySQLTransaction(*this);
552
553 case TransactionType_ReadWrite: 550 case TransactionType_ReadWrite:
554 return new MySQLTransaction(*this); 551 return new MySQLTransaction(*this, type);
555 552
556 default: 553 default:
557 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange); 554 throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
558 } 555 }
559 } 556 }