| 323 | } |
| 324 | |
| 325 | QStringList SimpleDatabase::getUpdateStatementForTable(Tables const& table, int toVersion) { |
| 326 | QFile sqlFile; |
| 327 | switch (table) { |
| 328 | case Tables::ContactMessages: |
| 329 | sqlFile.setFileName(QStringLiteral(":/sql/UpdateContactMessagesToVersion%1.sql").arg(toVersion)); |
| 330 | break; |
| 331 | case Tables::Contacts: |
| 332 | sqlFile.setFileName(QStringLiteral(":/sql/UpdateContactsToVersion%1.sql").arg(toVersion)); |
| 333 | break; |
| 334 | case Tables::ControlMessages: |
| 335 | sqlFile.setFileName(QStringLiteral(":/sql/UpdateContactControlMessagesToVersion%1.sql").arg(toVersion)); |
| 336 | break; |
| 337 | case Tables::GroupMessages: |
| 338 | sqlFile.setFileName(QStringLiteral(":/sql/UpdateGroupMessagesToVersion%1.sql").arg(toVersion)); |
| 339 | break; |
| 340 | case Tables::FeatureLevels: |
| 341 | sqlFile.setFileName(QStringLiteral(":/sql/UpdateFeatureLevelsToVersion%1.sql").arg(toVersion)); |
| 342 | break; |
| 343 | case Tables::Groups: |
| 344 | sqlFile.setFileName(QStringLiteral(":/sql/UpdateGroupsToVersion%1.sql").arg(toVersion)); |
| 345 | break; |
| 346 | case Tables::Media: |
| 347 | sqlFile.setFileName(QStringLiteral(":/sql/UpdateMediaToVersion%1.sql").arg(toVersion)); |
| 348 | break; |
| 349 | case Tables::Settings: |
| 350 | sqlFile.setFileName(QStringLiteral(":/sql/UpdateSettingsToVersion%1.sql").arg(toVersion)); |
| 351 | break; |
| 352 | case Tables::TableVersions: |
| 353 | sqlFile.setFileName(QStringLiteral(":/sql/UpdateTableVersionsToVersion%1.sql").arg(toVersion)); |
| 354 | break; |
| 355 | default: |
| 356 | throw openmittsu::exceptions::InternalErrorException() << "Unknown Table type given for fetching update statements from resources: " << static_cast<int>(table); |
| 357 | } |
| 358 | |
| 359 | if (!sqlFile.exists() || !sqlFile.open(QFile::ReadOnly)) { |
| 360 | throw openmittsu::exceptions::InternalErrorException() << "Could not find or open the file \"" << sqlFile.fileName().toStdString() << "\" containg the update statements from resources: " << static_cast<int>(table); |
| 361 | } else { |
| 362 | QTextStream fileStream(&sqlFile); |
| 363 | |
| 364 | QString result = fileStream.readAll(); |
| 365 | sqlFile.close(); |
| 366 | |
| 367 | #if defined(QT_VERSION) && (QT_VERSION >= QT_VERSION_CHECK(5, 14, 0)) |
| 368 | return result.split(QStringLiteral("__OPENMITTSU_QUERY_SEP__"), Qt::SkipEmptyParts); |
| 369 | #else |
| 370 | return result.split(QStringLiteral("__OPENMITTSU_QUERY_SEP__"), QString::SkipEmptyParts); |
| 371 | #endif |
| 372 | } |
| 373 | } |
| 374 | |
| 375 | QString SimpleDatabase::getTableName(Tables const& table) { |
| 376 | switch (table) { |