From 040efdd3f04e0d7bd50196fb0d6c592d1a517e29 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Wed, 16 Aug 2017 12:18:59 -0400 Subject: [PATCH] 2017-08-16 Fred Gleason * Added fixup code in 'rdadmin/createdb.cpp' to recalculate voice track counts. * Incremented the database version to 266. --- ChangeLog | 4 ++++ lib/dbversion.h | 2 +- rdadmin/createdb.cpp | 35 +++++++++++++++++++++++++++++++++++ utils/rdrevert/rdrevert.cpp | 12 ++++++++++++ utils/rdrevert/rdrevert.h | 1 + 5 files changed, 53 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 9ac7ff53..b001ea12 100644 --- a/ChangeLog +++ b/ChangeLog @@ -15956,3 +15956,7 @@ 2017-08-16 Fred Gleason * Fixed a bug in 'lib/rdlog.cpp' that caused incorrect results when calculating the total number of voice tracks in a log. +2017-08-16 Fred Gleason + * Added fixup code in 'rdadmin/createdb.cpp' to recalculate + voice track counts. + * Incremented the database version to 266. diff --git a/lib/dbversion.h b/lib/dbversion.h index 9b782a2e..4a5db0b6 100644 --- a/lib/dbversion.h +++ b/lib/dbversion.h @@ -24,7 +24,7 @@ /* * Current Database Version */ -#define RD_VERSION_DATABASE 265 +#define RD_VERSION_DATABASE 266 #endif // DBVERSION_H diff --git a/rdadmin/createdb.cpp b/rdadmin/createdb.cpp index 3e0e4dbc..9bdf0249 100644 --- a/rdadmin/createdb.cpp +++ b/rdadmin/createdb.cpp @@ -8422,7 +8422,42 @@ int UpdateDb(int ver) delete q; } + if(ver<266) { + sql=QString("select NAME from LOGS"); + q=new QSqlQuery(sql); + while(q->next()) { + sql=QString("select `")+RDLog::tableName(q->value(0).toString())+ + "`.ID from "+ + "`"+RDLog::tableName(q->value(0).toString())+"` left join CART "+ + "on `"+RDLog::tableName(q->value(0).toString())+ + "`.CART_NUMBER=CART.NUMBER where "+ + "CART.OWNER is not null"; + q1=new RDSqlQuery(sql); + int completed=q1->size(); + delete q1; + sql=QString("select ID from `")+RDLog::tableName(q->value(0).toString())+ + "` where "+QString().sprintf("TYPE=%d",RDLogLine::Track); + q1=new RDSqlQuery(sql); + int scheduled=q1->size()+completed; + delete q1; + + sql=QString("update LOGS set ")+ + QString().sprintf("SCHEDULED_TRACKS=%d,",scheduled)+ + QString().sprintf("COMPLETED_TRACKS=%u ",completed)+ + "where NAME=\""+RDEscapeString(q->value(0).toString())+"\""; + q1=new RDSqlQuery(sql); + delete q1; + } + delete q; + } + + // + // Maintainer's Note: + // + // When adding a schema update here, be sure also to implement the + // corresponding reversion in rdrevert(8)! + // // // Update Version Field diff --git a/utils/rdrevert/rdrevert.cpp b/utils/rdrevert/rdrevert.cpp index 7f575e8d..4292420f 100644 --- a/utils/rdrevert/rdrevert.cpp +++ b/utils/rdrevert/rdrevert.cpp @@ -218,6 +218,10 @@ void MainObject::Revert(int schema) const case 265: Revert265(); break; + + case 266: + Revert266(); + break; } } @@ -638,6 +642,14 @@ void MainObject::Revert265() const } +void MainObject::Revert266() const +{ + // Nothing to do here as this is a pseudo-schema change. + + SetVersion(265); +} + + int MainObject::GetVersion() const { QString sql; diff --git a/utils/rdrevert/rdrevert.h b/utils/rdrevert/rdrevert.h index b14815f6..235ec778 100644 --- a/utils/rdrevert/rdrevert.h +++ b/utils/rdrevert/rdrevert.h @@ -61,6 +61,7 @@ class MainObject : public QObject void Revert263() const; void Revert264() const; void Revert265() const; + void Revert266() const; int GetVersion() const; void SetVersion(int schema) const; int MapSchema(const QString &ver);