diff --git a/ChangeLog b/ChangeLog index f9455a16..d490f379 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17121,3 +17121,5 @@ * Cleaned up SQL quieries in importers to ensure UTF-8 compatibility. 2018-07-11 Fred Gleason * Fixed a bug in rddbmgr(8) that caused reversion 289 to fail. +2018-07-12 Fred Gleason + * Cleaned up SQL quieries in 'lib/' ensure UTF-8 compatibility. diff --git a/lib/export_cutlog.cpp b/lib/export_cutlog.cpp index a536243d..13e03862 100644 --- a/lib/export_cutlog.cpp +++ b/lib/export_cutlog.cpp @@ -63,7 +63,7 @@ bool RDReport::ExportCutLog(const QString &filename,const QDate &startdate, "ELR_LINES.EXT_DATA,"+ // 06 "ELR_LINES.EXT_EVENT_ID,"+ // 07 "ELR_LINES.TITLE,"+ // 08 - "CART.FORCED_LENGTH,"+ // 09 + "CART.FORCED_LENGTH,"+ // 09 "ELR_LINES.STATION_NAME,"+ // 10 "ELR_LINES.PLAY_SOURCE,"+ // 11 "ELR_LINES.CUT_NUMBER,"+ // 12 diff --git a/lib/export_deltaflex.cpp b/lib/export_deltaflex.cpp index 690b71ff..84c05145 100644 --- a/lib/export_deltaflex.cpp +++ b/lib/export_deltaflex.cpp @@ -56,17 +56,17 @@ bool RDReport::ExportDeltaflex(const QString &filename,const QDate &startdate, air_fmt="%u"; } sql=QString("select ")+ - "ELR_LINES.LENGTH,"+ - "ELR_LINES.CART_NUMBER,"+ - "ELR_LINES.EVENT_DATETIME,"+ - "ELR_LINES.EVENT_TYPE,"+ - "ELR_LINES.EXT_START_TIME,"+ - "ELR_LINES.EXT_LENGTH,"+ - "ELR_LINES.EXT_DATA,"+ - "ELR_LINES.EXT_EVENT_ID,"+ - "ELR_LINES.EXT_ANNC_TYPE,"+ - "ELR_LINES.TITLE,"+ - "ELR_LINES.EXT_CART_NAME "+ + "ELR_LINES.LENGTH,"+ // 00 + "ELR_LINES.CART_NUMBER,"+ // 01 + "ELR_LINES.EVENT_DATETIME,"+ // 02 + "ELR_LINES.EVENT_TYPE,"+ // 03 + "ELR_LINES.EXT_START_TIME,"+ // 04 + "ELR_LINES.EXT_LENGTH,"+ // 05 + "ELR_LINES.EXT_DATA,"+ // 06 + "ELR_LINES.EXT_EVENT_ID,"+ // 07 + "ELR_LINES.EXT_ANNC_TYPE,"+ // 08 + "ELR_LINES.TITLE,"+ // 09 + "ELR_LINES.EXT_CART_NAME "+ // 10 "from ELR_LINES left join CART "+ "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ diff --git a/lib/export_musicclassical.cpp b/lib/export_musicclassical.cpp index 9881153a..998f653b 100644 --- a/lib/export_musicclassical.cpp +++ b/lib/export_musicclassical.cpp @@ -55,13 +55,13 @@ bool RDReport::ExportMusicClassical(const QString &filename, cart_fmt="%6u"; } sql=QString("select ")+ - "ELR_LINES.LENGTH,"+ - "ELR_LINES.CART_NUMBER,"+ - "ELR_LINES.EVENT_DATETIME,"+ - "ELR_LINES.TITLE,"+ - "ELR_LINES.ALBUM,"+ - "ELR_LINES.COMPOSER,"+ - "ELR_LINES.USER_DEFINED "+ + "ELR_LINES.LENGTH,"+ // 00 + "ELR_LINES.CART_NUMBER,"+ // 01 + "ELR_LINES.EVENT_DATETIME,"+ // 02 + "ELR_LINES.TITLE,"+ // 03 + "ELR_LINES.ALBUM,"+ // 04 + "ELR_LINES.COMPOSER,"+ // 05 + "ELR_LINES.USER_DEFINED "+ // 06 "from ELR_LINES left join CART "+ "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ diff --git a/lib/export_musicplayout.cpp b/lib/export_musicplayout.cpp index 76cdd8f4..5fe954b8 100644 --- a/lib/export_musicplayout.cpp +++ b/lib/export_musicplayout.cpp @@ -55,15 +55,15 @@ bool RDReport::ExportMusicPlayout(const QString &filename, cart_fmt="%6u"; } sql=QString("select ")+ - "ELR_LINES.LENGTH,"+ - "ELR_LINES.CART_NUMBER,"+ - "ELR_LINES.EVENT_DATETIME,"+ - "ELR_LINES.EXT_EVENT_ID,"+ - "ELR_LINES.TITLE,"+ - "ELR_LINES.CUT_NUMBER,"+ - "ELR_LINES.ARTIST,"+ - "ELR_LINES.ALBUM,"+ - "ELR_LINES.LABEL "+ + "ELR_LINES.LENGTH,"+ // 00 + "ELR_LINES.CART_NUMBER,"+ // 01 + "ELR_LINES.EVENT_DATETIME,"+ // 02 + "ELR_LINES.EXT_EVENT_ID,"+ // 03 + "ELR_LINES.TITLE,"+ // 04 + "ELR_LINES.CUT_NUMBER,"+ // 05 + "ELR_LINES.ARTIST,"+ // 06 + "ELR_LINES.ALBUM,"+ // 07 + "ELR_LINES.LABEL "+ // 08 "from ELR_LINES left join CART "+ "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ diff --git a/lib/export_musicsummary.cpp b/lib/export_musicsummary.cpp index 8de24c25..52d6238c 100644 --- a/lib/export_musicsummary.cpp +++ b/lib/export_musicsummary.cpp @@ -48,9 +48,9 @@ bool RDReport::ExportMusicSummary(const QString &filename, return false; } sql=QString("select ")+ - "ELR_LINES.ARTIST,"+ - "ELR_LINES.TITLE,"+ - "ELR_LINES.ALBUM "+ + "ELR_LINES.ARTIST,"+ // 00 + "ELR_LINES.TITLE,"+ // 01 + "ELR_LINES.ALBUM "+ // 02 "from ELR_LINES left join CART "+ "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ diff --git a/lib/export_nprsoundex.cpp b/lib/export_nprsoundex.cpp index eb7acbfe..bac5a128 100644 --- a/lib/export_nprsoundex.cpp +++ b/lib/export_nprsoundex.cpp @@ -65,12 +65,12 @@ bool RDReport::ExportNprSoundEx(const QString &filename,const QDate &startdate, // Roll Up Records // sql=QString("select ")+ - "EVENT_DATETIME,"+ - "LENGTH,"+ - "TITLE,"+ - "ARTIST,"+ - "ALBUM,"+ - "LABEL "+ + "EVENT_DATETIME,"+ // 00 + "LENGTH,"+ // 01 + "TITLE,"+ // 02 + "ARTIST,"+ // 03 + "ALBUM,"+ // 04 + "LABEL "+ // 05 "from ELR_LINES where "+ "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ "order by EVENT_DATETIME"; diff --git a/lib/export_radiotraffic.cpp b/lib/export_radiotraffic.cpp index bd6c68ed..a53376e9 100644 --- a/lib/export_radiotraffic.cpp +++ b/lib/export_radiotraffic.cpp @@ -51,17 +51,17 @@ bool RDReport::ExportRadioTraffic(const QString &filename, air_fmt=QString().sprintf("%%%-uu ",cartDigits()); } sql=QString("select ")+ - "ELR_LINES.LENGTH,"+ - "ELR_LINES.CART_NUMBER,"+ - "ELR_LINES.EVENT_DATETIME,"+ - "ELR_LINES.EVENT_TYPE,"+ - "ELR_LINES.EXT_START_TIME,"+ - "ELR_LINES.EXT_LENGTH,"+ - "ELR_LINES.EXT_DATA,"+ - "ELR_LINES.EXT_EVENT_ID,"+ - "ELR_LINES.EXT_ANNC_TYPE,"+ - "ELR_LINES.TITLE,"+ - "ELR_LINES.EXT_CART_NAME "+ + "ELR_LINES.LENGTH,"+ // 00 + "ELR_LINES.CART_NUMBER,"+ // 01 + "ELR_LINES.EVENT_DATETIME,"+ // 02 + "ELR_LINES.EVENT_TYPE,"+ // 03 + "ELR_LINES.EXT_START_TIME,"+ // 04 + "ELR_LINES.EXT_LENGTH,"+ // 05 + "ELR_LINES.EXT_DATA,"+ // 06 + "ELR_LINES.EXT_EVENT_ID,"+ // 07 + "ELR_LINES.EXT_ANNC_TYPE,"+ // 08 + "ELR_LINES.TITLE,"+ // 09 + "ELR_LINES.EXT_CART_NAME "+ // 10 "from ELR_LINES left join CART "+ "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ diff --git a/lib/export_spincount.cpp b/lib/export_spincount.cpp index b35424ef..fa3c6f5f 100644 --- a/lib/export_spincount.cpp +++ b/lib/export_spincount.cpp @@ -65,10 +65,10 @@ bool RDReport::ExportSpinCount(const QString &filename,const QDate &startdate, // Generate Spin Counts // sql=QString("select ")+ - "CART_NUMBER,"+ - "TITLE,"+ - "ARTIST,"+ - "ALBUM,LABEL "+ + "CART_NUMBER,"+ // 00 + "TITLE,"+ // 01 + "ARTIST,"+ // 02 + "ALBUM,LABEL "+ // 03 "from ELR_LINES where "+ "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ "order by TITLE"; diff --git a/lib/export_technical.cpp b/lib/export_technical.cpp index f5322d7c..eecf360c 100644 --- a/lib/export_technical.cpp +++ b/lib/export_technical.cpp @@ -60,21 +60,21 @@ bool RDReport::ExportTechnical(const QString &filename,const QDate &startdate, cart_fmt="%6u"; } sql=QString("select ")+ - "ELR_LINES.LENGTH,"+ - "ELR_LINES.CART_NUMBER,"+ - "ELR_LINES.EVENT_DATETIME,"+ - "ELR_LINES.EVENT_TYPE,"+ - "ELR_LINES.EXT_START_TIME,"+ - "ELR_LINES.EXT_LENGTH,"+ - "ELR_LINES.EXT_DATA,"+ - "ELR_LINES.EXT_EVENT_ID,"+ - "ELR_LINES.TITLE,"+ - "CART.FORCED_LENGTH,"+ - "ELR_LINES.STATION_NAME,"+ - "ELR_LINES.PLAY_SOURCE,"+ - "ELR_LINES.CUT_NUMBER,"+ - "ELR_LINES.START_SOURCE,"+ - "ELR_LINES.ONAIR_FLAG "+ + "ELR_LINES.LENGTH,"+ // 00 + "ELR_LINES.CART_NUMBER,"+ // 01 + "ELR_LINES.EVENT_DATETIME,"+ // 02 + "ELR_LINES.EVENT_TYPE,"+ // 03 + "ELR_LINES.EXT_START_TIME,"+ // 04 + "ELR_LINES.EXT_LENGTH,"+ // 05 + "ELR_LINES.EXT_DATA,"+ // 06 + "ELR_LINES.EXT_EVENT_ID,"+ // 07 + "ELR_LINES.TITLE,"+ // 08 + "CART.FORCED_LENGTH,"+ // 09 + "ELR_LINES.STATION_NAME,"+ // 10 + "ELR_LINES.PLAY_SOURCE,"+ // 11 + "ELR_LINES.CUT_NUMBER,"+ // 12 + "ELR_LINES.START_SOURCE,"+ // 13 + "ELR_LINES.ONAIR_FLAG "+ // 14 "from ELR_LINES left join CART "+ "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ diff --git a/lib/export_textlog.cpp b/lib/export_textlog.cpp index 22bfd27b..fa95ef14 100644 --- a/lib/export_textlog.cpp +++ b/lib/export_textlog.cpp @@ -54,19 +54,19 @@ bool RDReport::ExportTextLog(const QString &filename,const QDate &startdate, cart_fmt="%6u"; } sql=QString("select ")+ - "ELR_LINES.LENGTH,"+ - "ELR_LINES.CART_NUMBER,"+ - "ELR_LINES.EVENT_DATETIME,"+ - "ELR_LINES.EVENT_TYPE,"+ - "ELR_LINES.EXT_START_TIME,"+ - "ELR_LINES.EXT_LENGTH,"+ - "ELR_LINES.EXT_DATA,"+ - "ELR_LINES.EXT_EVENT_ID,"+ - "ELR_LINES.TITLE,"+ - "CART.FORCED_LENGTH,"+ - "ELR_LINES.STATION_NAME,"+ - "ELR_LINES.PLAY_SOURCE,"+ - "ELR_LINES.CUT_NUMBER "+ + "ELR_LINES.LENGTH,"+ // 00 + "ELR_LINES.CART_NUMBER,"+ // 01 + "ELR_LINES.EVENT_DATETIME,"+ // 02 + "ELR_LINES.EVENT_TYPE,"+ // 03 + "ELR_LINES.EXT_START_TIME,"+ // 04 + "ELR_LINES.EXT_LENGTH,"+ // 05 + "ELR_LINES.EXT_DATA,"+ // 06 + "ELR_LINES.EXT_EVENT_ID,"+ // 07 + "ELR_LINES.TITLE,"+ // 08 + "CART.FORCED_LENGTH,"+ // 09 + "ELR_LINES.STATION_NAME,"+ // 10 + "ELR_LINES.PLAY_SOURCE,"+ // 11 + "ELR_LINES.CUT_NUMBER "+ // 12 "from ELR_LINES left join CART "+ "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ diff --git a/lib/librd_cs.ts b/lib/librd_cs.ts index f6996652..4fa65593 100644 --- a/lib/librd_cs.ts +++ b/lib/librd_cs.ts @@ -551,6 +551,50 @@ Database version mismatch, should be + + Rule broken: Must have code + + + + Rule broken: Must have second code + + + + Rule broken: Title Separation + + + + Rule broken: Artist Separation + + + + Rule broken: Max. in a Row/Min. Wait for + + + + Rule broken: Do not schedule + + + + after + + + + Rule broken: Do not schedule + + + + is overscheduled by + + + + is underscheduled by + + + + is not playable + + RDAddCart @@ -1427,6 +1471,14 @@ PÅ™epsat? File Error Chyba souboru + + already exists! + + + + Overwrite? + + RDExportSettingsDialog diff --git a/lib/librd_de.ts b/lib/librd_de.ts index 628a57f8..4daee998 100644 --- a/lib/librd_de.ts +++ b/lib/librd_de.ts @@ -547,6 +547,50 @@ Database version mismatch, should be + + Rule broken: Must have code + + + + Rule broken: Must have second code + + + + Rule broken: Title Separation + + + + Rule broken: Artist Separation + + + + Rule broken: Max. in a Row/Min. Wait for + + + + Rule broken: Do not schedule + + + + after + + + + Rule broken: Do not schedule + + + + is overscheduled by + + + + is underscheduled by + + + + is not playable + + RDAddCart @@ -1414,6 +1458,14 @@ Overwrite? File Error Dateifehler + + already exists! + + + + Overwrite? + + RDExportSettingsDialog diff --git a/lib/librd_es.ts b/lib/librd_es.ts index 7be7f3e2..91e60ef4 100644 --- a/lib/librd_es.ts +++ b/lib/librd_es.ts @@ -547,6 +547,50 @@ Database version mismatch, should be + + Rule broken: Must have code + + + + Rule broken: Must have second code + + + + Rule broken: Title Separation + + + + Rule broken: Artist Separation + + + + Rule broken: Max. in a Row/Min. Wait for + + + + Rule broken: Do not schedule + + + + after + + + + Rule broken: Do not schedule + + + + is overscheduled by + + + + is underscheduled by + + + + is not playable + + RDAddCart @@ -1420,6 +1464,14 @@ Overwrite? File Error Error de archivo + + already exists! + + + + Overwrite? + + RDExportSettingsDialog diff --git a/lib/librd_fr.ts b/lib/librd_fr.ts index dfe89318..f1dd06dc 100644 --- a/lib/librd_fr.ts +++ b/lib/librd_fr.ts @@ -525,6 +525,50 @@ Database version mismatch, should be + + Rule broken: Must have code + + + + Rule broken: Must have second code + + + + Rule broken: Title Separation + + + + Rule broken: Artist Separation + + + + Rule broken: Max. in a Row/Min. Wait for + + + + Rule broken: Do not schedule + + + + after + + + + Rule broken: Do not schedule + + + + is overscheduled by + + + + is underscheduled by + + + + is not playable + + RDAddCart @@ -1334,6 +1378,14 @@ Overwrite? File Error + + already exists! + + + + Overwrite? + + RDExportSettingsDialog diff --git a/lib/librd_nb.ts b/lib/librd_nb.ts index a4def81c..21e9bea3 100644 --- a/lib/librd_nb.ts +++ b/lib/librd_nb.ts @@ -547,6 +547,50 @@ Database version mismatch, should be + + Rule broken: Must have code + + + + Rule broken: Must have second code + + + + Rule broken: Title Separation + + + + Rule broken: Artist Separation + + + + Rule broken: Max. in a Row/Min. Wait for + + + + Rule broken: Do not schedule + + + + after + + + + Rule broken: Do not schedule + + + + is overscheduled by + + + + is underscheduled by + + + + is not playable + + RDAddCart @@ -1416,6 +1460,14 @@ Skriv over? File Error Filfeil + + already exists! + + + + Overwrite? + + RDExportSettingsDialog diff --git a/lib/librd_nn.ts b/lib/librd_nn.ts index a4def81c..21e9bea3 100644 --- a/lib/librd_nn.ts +++ b/lib/librd_nn.ts @@ -547,6 +547,50 @@ Database version mismatch, should be + + Rule broken: Must have code + + + + Rule broken: Must have second code + + + + Rule broken: Title Separation + + + + Rule broken: Artist Separation + + + + Rule broken: Max. in a Row/Min. Wait for + + + + Rule broken: Do not schedule + + + + after + + + + Rule broken: Do not schedule + + + + is overscheduled by + + + + is underscheduled by + + + + is not playable + + RDAddCart @@ -1416,6 +1460,14 @@ Skriv over? File Error Filfeil + + already exists! + + + + Overwrite? + + RDExportSettingsDialog diff --git a/lib/librd_pt_BR.ts b/lib/librd_pt_BR.ts index 5ec70ead..fb6a2c9b 100644 --- a/lib/librd_pt_BR.ts +++ b/lib/librd_pt_BR.ts @@ -547,6 +547,50 @@ Database version mismatch, should be + + Rule broken: Must have code + + + + Rule broken: Must have second code + + + + Rule broken: Title Separation + + + + Rule broken: Artist Separation + + + + Rule broken: Max. in a Row/Min. Wait for + + + + Rule broken: Do not schedule + + + + after + + + + Rule broken: Do not schedule + + + + is overscheduled by + + + + is underscheduled by + + + + is not playable + + RDAddCart @@ -1418,6 +1462,14 @@ Sobreescrever? File Error Erro no Arquivo + + already exists! + + + + Overwrite? + + RDExportSettingsDialog diff --git a/lib/rdadd_cart.cpp b/lib/rdadd_cart.cpp index 28b66e31..d87261d4 100644 --- a/lib/rdadd_cart.cpp +++ b/lib/rdadd_cart.cpp @@ -79,9 +79,8 @@ RDAddCart::RDAddCart(QString *group,RDCart::Type *type,QString *title, cart_group_label->setGeometry(10,11,130,19); cart_group_label->setAlignment(AlignRight|AlignVCenter|ShowPrefix); cart_group_label->setFont(label_font); - sql=QString().sprintf("select GROUP_NAME from USER_PERMS \ - where USER_NAME=\"%s\" order by GROUP_NAME", - (const char *)username); + sql=QString("select GROUP_NAME from USER_PERMS where ")+ + "USER_NAME=\""+RDEscapeString(username)+"\" order by GROUP_NAME"; q=new RDSqlQuery(sql); while(q->next()) { cart_group_box->insertItem(q->value(0).toString()); @@ -127,10 +126,8 @@ RDAddCart::RDAddCart(QString *group,RDCart::Type *type,QString *title, cart_type_box->insertItem(tr("Macro")); } if(*cart_type==RDCart::All) { - sql= - QString().sprintf("select DEFAULT_CART_TYPE from GROUPS\ - where NAME=\"%s\"", - (const char *)*cart_group); + sql=QString("select DEFAULT_CART_TYPE from GROUPS where ")+ + "NAME=\""+RDEscapeString(*cart_group)+"\""; q=new RDSqlQuery(sql); if(q->first()) { cart_type_box->setCurrentItem(q->value(0).toUInt()-1); @@ -227,8 +224,8 @@ void RDAddCart::okData() } RDSystem *system=new RDSystem(); if(!system->allowDuplicateCartTitles()) { - sql=QString().sprintf("select NUMBER from CART where TITLE=\"%s\"", - (const char *)RDEscapeString(cart_title_edit->text())); + sql=QString("select NUMBER from CART where ")+ + "TITLE=\""+RDEscapeString(cart_title_edit->text())+"\""; q=new RDSqlQuery(sql); if(q->first()) { QMessageBox::warning(this,tr("Duplicate Title"), diff --git a/lib/rdairplay_conf.cpp b/lib/rdairplay_conf.cpp index 44e0a598..53d0b508 100644 --- a/lib/rdairplay_conf.cpp +++ b/lib/rdairplay_conf.cpp @@ -33,23 +33,17 @@ RDAirPlayConf::RDAirPlayConf(const QString &station,const QString &tablename) air_station=station; air_tablename=tablename; - sql=QString(). - sprintf("select ID from %s where STATION=\"%s\"", - (const char *)air_tablename, - (const char *)RDEscapeString(air_station)); + sql=QString("select ID from `")+air_tablename+"` where "+ + "STATION=\""+RDEscapeString(air_station)+"\""; q=new RDSqlQuery(sql); if(!q->first()) { delete q; - sql=QString(). - sprintf("insert into %s set STATION=\"%s\"", - (const char *)air_tablename, - (const char *)RDEscapeString(air_station)); + sql=QString("insert into `")+air_tablename+"` set "+ + "STATION=\""+RDEscapeString(air_station)+"\""; q=new RDSqlQuery(sql); delete q; - sql=QString(). - sprintf("select ID from %s where STATION=\"%s\"", - (const char *)air_tablename, - (const char *)RDEscapeString(air_station)); + sql=QString("select ID from `")+air_tablename+"` where "+ + "STATION=\""+RDEscapeString(air_station)+"\""; q=new RDSqlQuery(sql); q->first(); } @@ -777,11 +771,9 @@ bool RDAirPlayConf::exitPasswordValid(const QString &passwd) const QString sql; RDSqlQuery *q; - sql=QString().sprintf("select EXIT_PASSWORD from %s where \ - STATION=\"%s\" && EXIT_PASSWORD=PASSWORD(\"%s\")", - (const char *)air_tablename, - (const char *)air_station, - (const char *)passwd); + sql=QString("select EXIT_PASSWORD from `")+air_tablename+"` where "+ + "STATION=\""+RDEscapeString(air_station)+"\" && "+ + "EXIT_PASSWORD=PASSWORD(\""+RDEscapeString(passwd)+"\")"; q=new RDSqlQuery(sql); if(q->size()>0) { delete q; @@ -797,10 +789,9 @@ void RDAirPlayConf::setExitPassword(const QString &passwd) const QString sql; RDSqlQuery *q; - sql=QString().sprintf ("update %s set EXIT_PASSWORD=PASSWORD(\"%s\") \ - where STATION=\"%s\"",(const char *)air_tablename, - (const char *)passwd, - (const char *)air_station); + sql=QString("update `")+air_tablename+"` set "+ + "EXIT_PASSWORD=PASSWORD(\""+RDEscapeString(passwd)+"\") where "+ + "STATION=\""+RDEscapeString(air_station)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -1249,12 +1240,9 @@ void RDAirPlayConf::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString(). - sprintf("UPDATE %s SET %s=%d WHERE STATION=\"%s\"", - (const char *)air_tablename, - (const char *)param, - value, - (const char *)RDEscapeString(air_station)); + sql=QString("update `")+air_tablename+"` set "+ + param+QString().sprintf("=%d where ",value)+ + "STATION=\""+RDEscapeString(air_station)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -1265,12 +1253,9 @@ void RDAirPlayConf::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString(). - sprintf("UPDATE %s SET %s=%u WHERE STATION=\"%s\"", - (const char *)air_tablename, - (const char *)param, - value, - (const char *)RDEscapeString(air_station)); + sql=QString("update `")+air_tablename+"` set "+ + param+QString().sprintf("=%u where ",value)+ + "STATION=\""+RDEscapeString(air_station)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -1281,12 +1266,9 @@ void RDAirPlayConf::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString(). - sprintf("UPDATE %s SET %s=\"%s\" WHERE STATION=\"%s\"", - (const char *)air_tablename, - (const char *)RDEscapeString(param), - (const char *)RDEscapeString(value), - (const char *)RDEscapeString(air_station)); + sql=QString("UPDATE `")+air_tablename+"` set "+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "STATION=\""+RDEscapeString(air_station)+"\""; q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdaudioexport.cpp b/lib/rdaudioexport.cpp index 8eb8c446..8120860f 100644 --- a/lib/rdaudioexport.cpp +++ b/lib/rdaudioexport.cpp @@ -140,22 +140,22 @@ RDAudioExport::ErrorCode RDAudioExport::runExport(const QString &username, // // Generate POST Data // - QString post=QString().sprintf("COMMAND=%d&LOGIN_NAME=%s&PASSWORD=%s&CART_NUMBER=%u&CUT_NUMBER=%u&FORMAT=%d&CHANNELS=%d&SAMPLE_RATE=%d&BIT_RATE=%d&QUALITY=%d&START_POINT=%d&END_POINT=%d&NORMALIZATION_LEVEL=%d&ENABLE_METADATA=%d", - RDXPORT_COMMAND_EXPORT, - (const char *)RDFormPost::urlEncode(username), - (const char *)RDFormPost::urlEncode(password), - conv_cart_number, - conv_cut_number, - conv_settings->format(), - conv_settings->channels(), - conv_settings->sampleRate(), - conv_settings->bitRate(), - conv_settings->quality(), - conv_start_point, - conv_end_point, - conv_settings->normalizationLevel(), - conv_enable_metadata); + QString post=QString().sprintf("COMMAND=%d&",RDXPORT_COMMAND_EXPORT)+ + "LOGIN_NAME=RDFormPost::urlEncode(username)&"+ + "PASSWORD=RDFormPost::urlEncode(password)&"+ + QString().sprintf("CART_NUMBER=%u&",conv_cart_number)+ + QString().sprintf("CUT_NUMBER=%u&",conv_cut_number)+ + QString().sprintf("FORMAT=%d&",conv_settings->format())+ + QString().sprintf("CHANNELS=%d&",conv_settings->channels())+ + QString().sprintf("SAMPLE_RATE=%d&",conv_settings->sampleRate())+ + QString().sprintf("BIT_RATE=%d&",conv_settings->bitRate())+ + QString().sprintf("QUALITY=%d&",conv_settings->quality())+ + QString().sprintf("START_POINT=%d&",conv_start_point)+ + QString().sprintf("END_POINT=%d&",conv_end_point)+ + QString().sprintf("NORMALIZATION_LEVEL=%d&", + conv_settings->normalizationLevel())+ + QString().sprintf("ENABLE_METADATA=%d",conv_enable_metadata); if((curl=curl_easy_init())==NULL) { return RDAudioExport::ErrorInternal; } diff --git a/lib/rdaudioinfo.cpp b/lib/rdaudioinfo.cpp index 1a28206e..6d9a3755 100644 --- a/lib/rdaudioinfo.cpp +++ b/lib/rdaudioinfo.cpp @@ -119,12 +119,11 @@ RDAudioInfo::ErrorCode RDAudioInfo::runInfo(const QString &username, // // Generate POST Data // - QString post=QString().sprintf("COMMAND=%d&LOGIN_NAME=%s&PASSWORD=%s&CART_NUMBER=%u&CUT_NUMBER=%u", - RDXPORT_COMMAND_AUDIOINFO, - (const char *)RDFormPost::urlEncode(username), - (const char *)RDFormPost::urlEncode(password), - conv_cart_number, - conv_cut_number); + QString post=QString().sprintf("COMMAND=%d&",RDXPORT_COMMAND_AUDIOINFO)+ + "LOGIN_NAME="+RDFormPost::urlEncode(username)+"&"+ + "PASSWORD="+RDFormPost::urlEncode(password)+"&"+ + QString().sprintf("CART_NUMBER=%u&",conv_cart_number)+ + QString().sprintf("CUT_NUMBER=%u",conv_cut_number); if((curl=curl_easy_init())==NULL) { return RDAudioInfo::ErrorInternal; } diff --git a/lib/rdaudiostore.cpp b/lib/rdaudiostore.cpp index 85ce0bc6..8a5ec676 100644 --- a/lib/rdaudiostore.cpp +++ b/lib/rdaudiostore.cpp @@ -78,10 +78,9 @@ RDAudioStore::ErrorCode RDAudioStore::runStore(const QString &username, // // Generate POST Data // - QString post=QString().sprintf("COMMAND=%d&LOGIN_NAME=%s&PASSWORD=%s", - RDXPORT_COMMAND_AUDIOSTORE, - (const char *)RDFormPost::urlEncode(username), - (const char *)RDFormPost::urlEncode(password)); + QString post=QString().sprintf("COMMAND=%d&",RDXPORT_COMMAND_AUDIOSTORE)+ + "LOGIN_NAME="+RDFormPost::urlEncode(username)+"&"+ + "PASSWORD="+RDFormPost::urlEncode(password); if((curl=curl_easy_init())==NULL) { return RDAudioStore::ErrorInternal; } diff --git a/lib/rdbutton_dialog.cpp b/lib/rdbutton_dialog.cpp index 6ee7ff6e..2ec9de87 100644 --- a/lib/rdbutton_dialog.cpp +++ b/lib/rdbutton_dialog.cpp @@ -241,20 +241,10 @@ void RDButtonDialog::DisplayCart(int cartnum) if(cart->exists()) { edit_cart_edit-> setText(QString().sprintf("%06u - ",cart->number())+cart->title()); - /* - edit_cart_edit->setText(QString().sprintf("%06u - %s", - cart->number(), - (const char *)cart->title())); - */ } else { edit_cart_edit->setText(QString().sprintf("%06u - [",cart->number())+"] "+ tr("NOT FOUND")); - /* - edit_cart_edit-> - setText(QString().sprintf("%06u - [%s]",cart->number(), - (const char *)str)); - */ } delete cart; } diff --git a/lib/rdcart.cpp b/lib/rdcart.cpp index 000aef66..326241ce 100644 --- a/lib/rdcart.cpp +++ b/lib/rdcart.cpp @@ -907,51 +907,40 @@ void RDCart::setMetadata(const RDWaveData *data) { QString sql="update CART set "; if(!data->title().isEmpty()) { - sql+=QString().sprintf("TITLE=\"%s\",",(const char *) - RDEscapeString(VerifyTitle(data->title())).utf8()); + sql+=QString("TITLE=\"")+RDEscapeString(VerifyTitle(data->title()))+"\","; } if(!data->artist().isEmpty()) { - sql+=QString().sprintf("ARTIST=\"%s\",",(const char *) - RDEscapeString(data->artist()).utf8()); + sql+=QString("ARTIST=\"")+RDEscapeString(data->artist())+"\","; } if(!data->album().isEmpty()) { - sql+=QString().sprintf("ALBUM=\"%s\",",(const char *) - RDEscapeString(data->album()).utf8()); + sql+=QString("ALBUM=\"")+RDEscapeString(data->album())+"\","; } if(data->releaseYear()>0) { sql+=QString().sprintf("YEAR=\"%04d-01-01\",",data->releaseYear()); } if(!data->label().isEmpty()) { - sql+=QString().sprintf("LABEL=\"%s\",",(const char *) - RDEscapeString(data->label()).utf8()); + sql+=QString("LABEL=\"")+RDEscapeString(data->label())+"\","; } if(!data->conductor().isEmpty()) { - sql+=QString().sprintf("CONDUCTOR=\"%s\",",(const char *) - RDEscapeString(data->conductor()).utf8()); + sql+=QString("CONDUCTOR=\"")+RDEscapeString(data->conductor())+"\","; } if(!data->client().isEmpty()) { - sql+=QString().sprintf("CLIENT=\"%s\",",(const char *) - RDEscapeString(data->client()).utf8()); + sql+=QString("CLIENT=\"")+RDEscapeString(data->client())+"\","; } if(!data->agency().isEmpty()) { - sql+=QString().sprintf("AGENCY=\"%s\",",(const char *) - RDEscapeString(data->agency()).utf8()); + sql+=QString("AGENCY=\"")+RDEscapeString(data->agency())+"\","; } if(!data->publisher().isEmpty()) { - sql+=QString().sprintf("PUBLISHER=\"%s\",",(const char *) - RDEscapeString(data->publisher()).utf8()); + sql+=QString("PUBLISHER=\"")+RDEscapeString(data->publisher())+"\","; } if(!data->composer().isEmpty()) { - sql+=QString().sprintf("COMPOSER=\"%s\",",(const char *) - RDEscapeString(data->composer()).utf8()); + sql+=QString("COMPOSER=\"")+RDEscapeString(data->composer())+"\","; } if(!data->userDefined().isEmpty()) { - sql+=QString().sprintf("USER_DEFINED=\"%s\",",(const char *) - RDEscapeString(data->userDefined()).utf8()); + sql+=QString("USER_DEFINED=\"")+RDEscapeString(data->userDefined())+"\","; } if(!data->tmciSongId().isEmpty()) { - sql+=QString().sprintf("SONG_ID=\"%s\",",(const char *) - RDEscapeString(data->tmciSongId()).utf8()); + sql+=QString("SONG_ID=\"")+RDEscapeString(data->tmciSongId())+"\","; } if(data->beatsPerMinute()>0) { sql+=QString().sprintf("BPM=%u,",data->beatsPerMinute()); @@ -1085,16 +1074,28 @@ void RDCart::updateLength(bool enforce_length,unsigned length) QDateTime valid_until; bool dates_valid=true; - sql=QString().sprintf("select CUT_NAME,START_DAYPART,END_DAYPART,LENGTH,\ - SUN,MON,TUE,WED,THU,FRI,SAT,EVERGREEN,\ - START_DATETIME,END_DATETIME from CUTS\ - where CART_NUMBER=%u", - cart_number); + sql=QString("select ")+ + "CUT_NAME,"+ // 00 + "START_DAYPART,"+ // 01 + "END_DAYPART,"+ // 02 + "LENGTH,"+ // 03 + "SUN,"+ // 04 + "MON,"+ // 05 + "TUE,"+ // 06 + "WED,"+ // 07 + "THU,"+ // 08 + "FRI,"+ // 09 + "SAT,"+ // 10 + "EVERGREEN,"+ // 11 + "START_DATETIME,"+ // 12 + "END_DATETIME "+ // 13 + "from CUTS where "+ + QString().sprintf("CART_NUMBER=%u",cart_number); q=new RDSqlQuery(sql); while(q->next()) { cut_validity=ValidateCut(q,enforce_length,length,&time_ok); - sql=QString().sprintf("update CUTS set VALIDITY=%u where CUT_NAME=\"%s\"", - cut_validity,(const char *)q->value(0).toString()); + sql=QString().sprintf("update CUTS set VALIDITY=%u where ",cut_validity)+ + "CUT_NAME=\""+RDEscapeString(q->value(0).toString())+"\""; q1=new RDSqlQuery(sql); delete q1; evergreen&=RDBool(q->value(11).toString()); @@ -1139,15 +1140,15 @@ void RDCart::updateLength(bool enforce_length,unsigned length) sql+="START_DATETIME=NULL,"; } else { - sql+=QString().sprintf("START_DATETIME=%s,", - (const char *)RDCheckDateTime(start_datetime,"yyyy-MM-dd hh:mm:ss")); + sql+=QString("START_DATETIME=")+ + RDCheckDateTime(start_datetime,"yyyy-MM-dd hh:mm:ss"); } if(end_datetime.isNull()||(!dates_valid)) { sql+="END_DATETIME=NULL,"; } else { - sql+=QString().sprintf("END_DATETIME=%s,", - (const char *)RDCheckDateTime(end_datetime,"yyyy-MM-dd hh:mm:ss")); + sql+=QString("END_DATETIME=")+ + RDCheckDateTime(end_datetime,"yyyy-MM-dd hh:mm:ss"); } sql+=QString().sprintf("VALIDITY=%u where NUMBER=%u", cart_validity,cart_number); @@ -1250,12 +1251,12 @@ bool RDCart::removeCut(RDStation *station,RDUser *user,const QString &cutname, if(!RDCart::removeCutAudio(station,user,cart_number,cutname,config)) { return false; } - sql=QString().sprintf("delete from REPL_CUT_STATE where CUT_NAME=\"%s\"", - (const char *)cutname); + sql=QString("delete from REPL_CUT_STATE where ")+ + "CUT_NAME=\""+RDEscapeString(cutname)+"\""; q=new RDSqlQuery(sql); delete q; - sql=QString().sprintf("delete from CUTS where CUT_NAME=\"%s\"", - (const char *)cutname); + sql=QString("delete from CUTS where ")+ + "CUT_NAME=\""+RDEscapeString(cutname)+"\""; q=new RDSqlQuery(sql); delete q; setCutQuantity(cutQuantity()-1); @@ -1660,13 +1661,11 @@ bool RDCart::removeCutAudio(RDStation *station,RDUser *user,unsigned cart_num, // // Generate POST Data // - QString post=QString(). - sprintf("COMMAND=%d&LOGIN_NAME=%s&PASSWORD=%s&CART_NUMBER=%u&CUT_NUMBER=%u", - RDXPORT_COMMAND_DELETEAUDIO, - (const char *)RDFormPost::urlEncode(user->name()), - (const char *)RDFormPost::urlEncode(user->password()), - cart_num, - cutname.right(3).toUInt()); + QString post=QString().sprintf("COMMAND=%d&",RDXPORT_COMMAND_DELETEAUDIO)+ + "LOGIN_NAME="+RDFormPost::urlEncode(user->name())+"&"+ + "PASSWORD="+RDFormPost::urlEncode(user->password())+"&"+ + QString().sprintf("CART_NUMBER=%u&",cart_num)+ + QString().sprintf("CUT_NUMBER=%u",RDCut::cutNumber(cutname)); if((curl=curl_easy_init())==NULL) { return false; } @@ -2233,9 +2232,9 @@ QString RDCart::VerifyTitle(const QString &title) const if(!system->allowDuplicateCartTitles()) { int n=1; while(1==1) { - sql=QString().sprintf("select NUMBER from CART \ - where (TITLE=\"%s\")&&(NUMBER!=%u)", - (const char *)RDEscapeString(ret),cart_number); + sql=QString("select NUMBER from CART where ")+ + "(TITLE=\""+RDEscapeString(ret)+"\")&&"+ + QString().sprintf("(NUMBER!=%u)",cart_number); q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -2255,10 +2254,9 @@ void RDCart::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CART SET %s=\"%s\" WHERE NUMBER=%u", - (const char *)param, - (const char *)RDEscapeString(value.utf8()), - cart_number); + sql=QString("update CART set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + QString().sprintf("NUMBER=%u",cart_number); q=new RDSqlQuery(sql); delete q; } @@ -2269,10 +2267,8 @@ void RDCart::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CART SET %s=%d WHERE NUMBER=%u", - (const char *)param, - value, - cart_number); + sql=QString("update CART set ")+ + param+QString().sprintf("=%d where NUMBER=%u",value,cart_number); q=new RDSqlQuery(sql); delete q; } @@ -2283,10 +2279,9 @@ void RDCart::SetRow(const QString ¶m,const QDateTime &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CART SET %s=%s WHERE NUMBER=%u", - (const char *)param, - (const char *)RDCheckDateTime(value,"yyyy-MM-dd hh:mm:ss"), - cart_number); + sql=QString("update CART set ")+ + param+"="+RDCheckDateTime(value,"yyyy-MM-dd hh:mm:ss")+" where "+ + QString().sprintf("NUMBER=%u",cart_number); q=new RDSqlQuery(sql); delete q; } @@ -2297,10 +2292,9 @@ void RDCart::SetRow(const QString ¶m,const QDate &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CART SET %s=%s WHERE NUMBER=%u", - (const char *)param, - (const char *)RDCheckDateTime(value,"yyyy-MM-dd"), - cart_number); + sql=QString("update CART set ")+ + param+"="+RDCheckDateTime(value,"yyyy-MM-dd")+" where "+ + QString().sprintf("NUMBER=%u",cart_number); q=new RDSqlQuery(sql); delete q; } @@ -2311,9 +2305,9 @@ void RDCart::SetRow(const QString ¶m) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CART SET %s=NULL WHERE NUMBER=%u", - (const char *)param, - cart_number); + sql=QString("update CART set ")+ + param+"=NULL where "+ + QString().sprintf("NUMBER=%u",cart_number); q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdcart_dialog.cpp b/lib/rdcart_dialog.cpp index db55d3e4..0686e5ce 100644 --- a/lib/rdcart_dialog.cpp +++ b/lib/rdcart_dialog.cpp @@ -37,6 +37,7 @@ #include #include #include +#include #include #include #include @@ -717,28 +718,45 @@ void RDCartDialog::RefreshCarts() schedcode=""; } if(cart_type==RDCart::All) { - sql=QString().sprintf("select CART.NUMBER,CART.TITLE,CART.ARTIST,\ - CART.CLIENT,CART.AGENCY,CART.USER_DEFINED,\ - CART.COMPOSER,CART.CONDUCTOR,\ - CART.START_DATETIME,CART.END_DATETIME,CART.TYPE,\ - CART.FORCED_LENGTH,CART.GROUP_NAME,GROUPS.COLOR \ - from CART left join GROUPS \ - on CART.GROUP_NAME=GROUPS.NAME where %s", - (const char *)GetSearchFilter(cart_filter_edit->text(), - group,schedcode)); + sql=QString("select ")+ + "CART.NUMBER,"+ // 00 + "CART.TITLE,"+ // 01 + "CART.ARTIST,"+ // 02 + "CART.CLIENT,"+ // 03 + "CART.AGENCY,"+ // 04 + "CART.USER_DEFINED,"+ // 05 + "CART.COMPOSER,"+ // 06 + "CART.CONDUCTOR,"+ // 07 + "CART.START_DATETIME,"+ // 08 + "CART.END_DATETIME,"+ // 09 + "CART.TYPE,"+ // 10 + "CART.FORCED_LENGTH,"+ // 11 + "CART.GROUP_NAME,"+ // 12 + "GROUPS.COLOR "+ // 13 + "from CART left join GROUPS "+ + "on CART.GROUP_NAME=GROUPS.NAME where "+ + GetSearchFilter(cart_filter_edit->text(),group,schedcode); } else { - sql=QString().sprintf("select CART.NUMBER,CART.TITLE,CART.ARTIST,\ - CART.CLIENT,CART.AGENCY,CART.USER_DEFINED,\ - CART.COMPOSER,CART.CONDUCTOR,\ - CART.START_DATETIME,CART.END_DATETIME,CART.TYPE,\ - CART.FORCED_LENGTH,CART.GROUP_NAME,GROUPS.COLOR \ - from CART left join GROUPS \ - on CART.GROUP_NAME=GROUPS.NAME \ - where (%s)&&(TYPE=%d)", - (const char *)GetSearchFilter(cart_filter_edit->text(), - group,schedcode), - cart_type); + sql=QString("select ")+ + "CART.NUMBER,"+ // 00 + "CART.TITLE,"+ // 01 + "CART.ARTIST,"+ // 02 + "CART.CLIENT,"+ // 03 + "CART.AGENCY,"+ // 04 + "CART.USER_DEFINED,"+ // 05 + "CART.COMPOSER,"+ // 06 + "CART.CONDUCTOR,"+ // 07 + "CART.START_DATETIME,"+ // 08 + "CART.END_DATETIME,"+ // 09 + "CART.TYPE,"+ // 10 + "CART.FORCED_LENGTH,"+ // 11 + "CART.GROUP_NAME,"+ // 12 + "GROUPS.COLOR "+ // 13 + "from CART left join GROUPS "+ + "on CART.GROUP_NAME=GROUPS.NAME where "+ + "("+GetSearchFilter(cart_filter_edit->text(),group,schedcode)+")&&"+ + QString().sprintf("(TYPE=%d)",cart_type); } if(cart_limit_box->isChecked()) { sql+=QString().sprintf(" limit %d",RD_LIMITED_CART_SEARCH_QUANTITY); @@ -810,8 +828,8 @@ void RDCartDialog::BuildGroupList() sql+=" where "; for(int i=0;icount();i++) { - sql+=QString().sprintf("(NAME!=\"%s\")&&", - (const char *)cart_group_box->text(i)); + sql+=QString("(NAME!=\"")+RDEscapeString(cart_group_box->text(i))+"\")&&"; } sql=sql.left(sql.length()-2); q=new RDSqlQuery(sql); while(q->next()) { - search+=QString().sprintf("&&(GROUP_NAME!=\"%s\")", - (const char *)q->value(0).toString()); + search+=QString("&&(GROUP_NAME!=\"")+ + RDEscapeString(q->value(0).toString())+"\")"; } delete q; return search; @@ -896,8 +913,9 @@ QString RDCartDialog::StateFile() { bool home_found = false; QString home = RDGetHomeDir(&home_found); if (home_found) { - return QString().sprintf("%s/.rdcartdialog",(const char *)home); - } else { + return home+"/.rdcartdialog"; + } + else { return NULL; } } diff --git a/lib/rdcart_search_text.cpp b/lib/rdcart_search_text.cpp index 66ceae13..89aaff8e 100644 --- a/lib/rdcart_search_text.cpp +++ b/lib/rdcart_search_text.cpp @@ -24,105 +24,83 @@ QString RDBaseSearchText(QString filter,bool incl_cuts) { -QString edit_filter=filter; -QString return_string=""; -QString search_string=""; -int pos=0; -char find; + QString edit_filter=filter; + QString ret=""; + QString str=""; + int pos=0; + char find; -edit_filter=edit_filter.stripWhiteSpace(); -if(edit_filter.isEmpty()) { - return_string=QString().sprintf(" ((CART.TITLE like \"%%%s%%\")||\ - (CART.ARTIST like \"%%%s%%\")||(CART.CLIENT like \"%%%s%%\")||\ - (CART.AGENCY like \"%%%s%%\")||(CART.ALBUM like \"%%%s%%\")||\ - (CART.LABEL like \"%%%s%%\")||(CART.NUMBER like \"%%%s%%\")||\ - (CART.PUBLISHER like \"%%%s%%\")||(CART.COMPOSER like \"%%%s%%\")||\ - (CART.CONDUCTOR like \"%%%s%%\")||(CART.SONG_ID like \"%%%s%%\")||\ - (CART.USER_DEFINED like \"%%%s%%\")", - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8()); + edit_filter=edit_filter.stripWhiteSpace(); + if(edit_filter.isEmpty()) { + ret=QString(" ((CART.TITLE like \"%%\")||")+ + "(CART.ARTIST like \"%%\")||"+ + "(CART.CLIENT like \"%%\")||"+ + "(CART.AGENCY like \"%%\")||"+ + "(CART.ALBUM like \"%%\")||"+ + "(CART.LABEL like \"%%\")||"+ + "(CART.NUMBER like \"%%\")||"+ + "(CART.PUBLISHER like \"%%\")||"+ + "(CART.COMPOSER like \"%%\")||"+ + "(CART.CONDUCTOR like \"%%\")||"+ + "(CART.SONG_ID like \"%%\")||"+ + "(CART.USER_DEFINED like \"%%\")"; if(incl_cuts) { - return_string+=QString().sprintf("||(CUTS.ISCI like \"%%%s%%\")\ - ||(CUTS.ISRC like \"%%%s%%\")\ - ||(CUTS.DESCRIPTION like \"%%%s%%\")\ - ||(CUTS.OUTCUE like \"%%%s%%\")", - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8(), - (const char *)search_string.utf8()); + ret+=QString("||(CUTS.ISCI like \"%%\")")+ + "||(CUTS.ISRC like \"%%\")"+ + "||(CUTS.DESCRIPTION like \"%%\")"+ + "||(CUTS.OUTCUE like \"%%\")"; } - return_string+=")"; + ret+=")"; } -else { - while(!edit_filter.isEmpty()) { - if(edit_filter.startsWith("\"") && edit_filter.length()>1) { - edit_filter=edit_filter.remove(0,1); - find='\"'; - } - else { - find=' '; - } - pos=edit_filter.find(find); - if(pos>=0) { - search_string=edit_filter.left(pos); - edit_filter=edit_filter.remove(0,pos); - if(find=='\"') { + else { + while(!edit_filter.isEmpty()) { + if(edit_filter.startsWith("\"") && edit_filter.length()>1) { edit_filter=edit_filter.remove(0,1); + find='\"'; } - edit_filter=edit_filter.stripWhiteSpace(); + else { + find=' '; + } + pos=edit_filter.find(find); + if(pos>=0) { + str=edit_filter.left(pos); + edit_filter=edit_filter.remove(0,pos); + if(find=='\"') { + edit_filter=edit_filter.remove(0,1); + } + edit_filter=edit_filter.stripWhiteSpace(); + } + else { + str=edit_filter; + edit_filter=edit_filter.remove(0,edit_filter.length()); + } + if(!ret.isEmpty()) { + ret=ret+" AND "; + } + QString search=RDEscapeString(str); + ret=ret+QString(" ((CART.TITLE like \"%")+search+"%\")||"+ + "(CART.ARTIST like \"%"+search+"%\")||"+ + "(CART.CLIENT like \"%"+search+"%\")||"+ + "(CART.AGENCY like \"%"+search+"%\")||"+ + "(CART.ALBUM like \"%"+search+"%\")||"+ + "(CART.LABEL like \"%"+search+"%\")||"+ + "(CART.NUMBER like \"%"+search+"%\")||"+ + "(CART.PUBLISHER like \"%"+search+"%\")||"+ + "(CART.COMPOSER like \"%"+search+"%\")||"+ + "(CART.CONDUCTOR like \"%"+search+"%\")||"+ + "(CART.SONG_ID like \"%"+search+"%\")||"+ + "(CART.USER_DEFINED like \"%"+search+"%\")"; + if(incl_cuts) { + ret+=QString("||(CUTS.ISCI like \"%")+search+"%\")"+ + "||(CUTS.ISRC like \"%"+search+"%\")"+ + "||(CUTS.DESCRIPTION like \"%"+search+"%\")"+ + "||(CUTS.OUTCUE like \"%"+search+"%\")"; + } + ret+=") "; } - else { - search_string=edit_filter; - edit_filter=edit_filter.remove(0,edit_filter.length()); - } - if(!return_string.isEmpty()) { - return_string=return_string+" AND "; - } - QString search=RDEscapeString(search_string); - return_string=return_string+QString().sprintf(" ((CART.TITLE like \"%%%s%%\")||\ - (CART.ARTIST like \"%%%s%%\")||(CART.CLIENT like \"%%%s%%\")|| \ - (CART.AGENCY like \"%%%s%%\")||(CART.ALBUM like \"%%%s%%\")|| \ - (CART.LABEL like \"%%%s%%\")||(CART.NUMBER like \"%%%s%%\")|| \ - (CART.PUBLISHER like \"%%%s%%\")||(CART.COMPOSER like \"%%%s%%\")|| \ - (CART.CONDUCTOR like \"%%%s%%\")||(CART.SONG_ID like \"%%%s%%\")|| \ - (CART.USER_DEFINED like \"%%%s%%\")", - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8()); - if(incl_cuts) { - return_string+=QString().sprintf("||(CUTS.ISCI like \"%%%s%%\")\ - ||(CUTS.ISRC like \"%%%s%%\")\ - ||(CUTS.DESCRIPTION like \"%%%s%%\")\ - ||(CUTS.OUTCUE like \"%%%s%%\")", - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8(), - (const char *)search.utf8()); - } - return_string+=")"; + } - - } - return return_string; + return ret; } @@ -137,10 +115,9 @@ QString RDCartSearchText(QString filter,const QString &group, if(!schedcode.isEmpty()) { QString code=schedcode+" "; code=code.left(11); - ret+=QString().sprintf("&&(SCHED_CODES like \"%%%s%%\")", - (const char *)code); + ret+=QString("&&(SCHED_CODES like \"%")+RDEscapeString(code)+"%\")"; } - return ret.utf8(); + return ret; } @@ -151,13 +128,12 @@ QString RDAllCartSearchText(const QString &filter,const QString &schedcode, RDSqlQuery *q; QString search="("; - sql=QString().sprintf("select GROUP_NAME from USER_PERMS\ - where USER_NAME=\"%s\"", - (const char *)user); + sql=QString("select GROUP_NAME from USER_PERMS where ")+ + "USER_NAME=\""+RDEscapeString(user)+"\""; q=new RDSqlQuery(sql); while(q->next()) { - search+=QString().sprintf("(CART.GROUP_NAME=\"%s\")||", - (const char *)q->value(0).toString()); + search+=QString("(CART.GROUP_NAME=\"")+ + RDEscapeString(q->value(0).toString())+"\")||"; } delete q; search=search.left(search.length()-2)+QString(")"); @@ -166,8 +142,7 @@ QString RDAllCartSearchText(const QString &filter,const QString &schedcode, if(!schedcode.isEmpty()) { QString code=schedcode+" "; code=code.left(11); - search+=QString().sprintf("&&(SCHED_CODES like \"%%%s%%\")", - (const char *)code); + search+=QString("&&(SCHED_CODES like \"%%")+RDEscapeString(code)+"%%\")"; } return search; diff --git a/lib/rdcastsearch.cpp b/lib/rdcastsearch.cpp index 931ae814..0410ba03 100644 --- a/lib/rdcastsearch.cpp +++ b/lib/rdcastsearch.cpp @@ -29,22 +29,15 @@ QString RDCastSearchString(const QString &filter,bool unexp_only, { QString ret; if(!filter.isEmpty()) { - ret+=QString().sprintf("&&((PODCASTS.ITEM_TITLE like \"%%%s%%\")||\ - (PODCASTS.ITEM_DESCRIPTION like \"%%%s%%\")||\ - (PODCASTS.ITEM_CATEGORY like \"%%%s%%\")||\ - (PODCASTS.ITEM_LINK like \"%%%s%%\")||\ - (PODCASTS.ITEM_COMMENTS like \"%%%s%%\")||\ - (PODCASTS.ITEM_AUTHOR like \"%%%s%%\")||\ - (PODCASTS.ITEM_SOURCE_TEXT like \"%%%s%%\")||\ - (PODCASTS.ITEM_SOURCE_URL like \"%%%s%%\"))", - (const char *)filter, - (const char *)filter, - (const char *)filter, - (const char *)filter, - (const char *)filter, - (const char *)filter, - (const char *)filter, - (const char *)filter); + QString fil=RDEscapeString(filter); + ret+=QString("&&((PODCASTS.ITEM_TITLE like \"%")+fil+"%\")||"+ + "(PODCASTS.ITEM_DESCRIPTION like \"%"+fil+"%\")||"+ + "(PODCASTS.ITEM_CATEGORY like \"%"+fil+"%\")||"+ + "(PODCASTS.ITEM_LINK like \"%"+fil+"%\")||"+ + "(PODCASTS.ITEM_COMMENTS like \"%"+fil+"%\")||"+ + "(PODCASTS.ITEM_AUTHOR like \"%"+fil+"%\")||"+ + "(PODCASTS.ITEM_SOURCE_TEXT like \"%"+fil+"%\")||"+ + "(PODCASTS.ITEM_SOURCE_URL like \"%"+fil+"%\"))"; } if(unexp_only) { ret+=QString().sprintf("&&(STATUS!=%d)",RDPodcast::StatusExpired); @@ -68,8 +61,8 @@ QString RDCastSearch(int feed_id,const QString &filter,bool unexp_only, QString RDCastSearch(const QString &keyname,const QString &filter, bool unexp_only,bool active_only) { - QString ret=QString().sprintf("where (KEY_NAME=\"%s\")", - (const char *)RDEscapeString(keyname)); + QString ret=QString("where (KEY_NAME=\"")+ + RDEscapeString(keyname)+"\")"; ret+=RDCastSearchString(filter,unexp_only,active_only); return ret; diff --git a/lib/rdcatch_conf.cpp b/lib/rdcatch_conf.cpp index d87ef1f5..57e48138 100644 --- a/lib/rdcatch_conf.cpp +++ b/lib/rdcatch_conf.cpp @@ -23,9 +23,6 @@ #include #include -// -// Global Classes -// RDCatchConf::RDCatchConf(const QString &station) { RDSqlQuery *q; @@ -33,15 +30,13 @@ RDCatchConf::RDCatchConf(const QString &station) air_station=station; - sql=QString(). - sprintf("select ID from RDCATCH where STATION=\"%s\"", - (const char *)air_station); + sql=QString("select ID from RDCATCH where ")+ + "STATION=\""+RDEscapeString(air_station)+"\""; q=new RDSqlQuery(sql); if(!q->first()) { delete q; - sql=QString(). - sprintf("insert into RDCATCH set STATION=\"%s\"", - (const char *)air_station); + sql=QString("insert into RDCATCH set ")+ + "STATION=\""+RDEscapeString(air_station)+"\""; q=new RDSqlQuery(sql); delete q; } else { @@ -73,11 +68,9 @@ void RDCatchConf::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString(). - sprintf("UPDATE RDCATCH SET %s=\"%s\" WHERE STATION=\"%s\"", - (const char *)param, - (const char *)RDEscapeString(value), - (const char *)RDEscapeString(air_station)); + sql=QString("update RDCATCH set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "STATION=\""+RDEscapeString(air_station)+"\""; q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdclock.cpp b/lib/rdclock.cpp index 552a0e8e..954001da 100644 --- a/lib/rdclock.cpp +++ b/lib/rdclock.cpp @@ -130,9 +130,13 @@ int RDClock::size() const bool RDClock::load() { - QString sql=QString().sprintf("select SHORT_NAME,COLOR,ARTISTSEP,REMARKS from\ - CLOCKS where NAME=\"%s\"", - (const char *)clock_name); + QString sql=QString("select ")+ + "SHORT_NAME,"+ // 00 + "COLOR,"+ // 01 + "ARTISTSEP,"+ // 02 + "REMARKS "+ // 03 + "from CLOCKS where "+ + "NAME=\""+RDEscapeString(clock_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -174,18 +178,17 @@ bool RDClock::save() if(clock_short_name.isEmpty()) { clock_short_name=clock_name.left(3); } - QString sql=QString().sprintf("select NAME from CLOCKS where NAME=\"%s\"", - (const char *)clock_name); + QString sql=QString("select NAME from CLOCKS where ")+ + "NAME=\""+RDEscapeString(clock_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { delete q; - sql=QString().sprintf("update CLOCKS set SHORT_NAME=\"%s\",COLOR=\"%s\",\ - ARTISTSEP=%d,REMARKS=\"%s\" where NAME=\"%s\"", - (const char *)clock_short_name, - (const char *)clock_color.name(), - artistsep, - (const char *)RDEscapeString(clock_remarks), - (const char *)clock_name); + sql=QString("update CLOCKS set ")+ + "SHORT_NAME=\""+RDEscapeString(clock_short_name)+"\","+ + "COLOR=\""+RDEscapeString(clock_color.name())+"\","+ + QString().sprintf("ARTISTSEP=%d,",artistsep)+ + "REMARKS=\""+RDEscapeString(clock_remarks)+"\" "+ + "where NAME=\""+RDEscapeString(clock_name)+"\""; q=new RDSqlQuery(sql); delete q; sql=QString("delete from CLOCK_LINES where ")+ @@ -195,15 +198,12 @@ bool RDClock::save() } else { delete q; - sql=QString().sprintf("insert into CLOCKS set NAME=\"%s\",\ - SHORT_NAME=\"%s\",COLOR=\"%s\",ARTISTSEP=%d,\ - REMARKS=\"%s\"", - (const char *)clock_name, - (const char *)clock_short_name, - (const char *)clock_color.name(), - artistsep, - (const char *)RDEscapeString(clock_remarks)); - + sql=QString("insert into CLOCKS set ")+ + "NAME=\""+RDEscapeString(clock_name)+"\","+ + "SHORT_NAME=\""+RDEscapeString(clock_short_name)+"\","+ + "COLOR=\""+RDEscapeString(clock_color.name())+"\","+ + QString().sprintf("ARTISTSEP=%d,",artistsep)+ + "REMARKS=\""+RDEscapeString(clock_remarks)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -226,8 +226,8 @@ bool RDClock::save() bool RDClock::insert(const QString &event_name,int line) { - QString sql=QString().sprintf("select NAME from EVENTS where NAME=\"%s\"", - (const char *)event_name); + QString sql=QString("select NAME from EVENTS where ")+ + "NAME=\""+RDEscapeString(event_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; diff --git a/lib/rdcopyaudio.cpp b/lib/rdcopyaudio.cpp index 186f933c..7afa9394 100644 --- a/lib/rdcopyaudio.cpp +++ b/lib/rdcopyaudio.cpp @@ -81,14 +81,14 @@ RDCopyAudio::ErrorCode RDCopyAudio::runCopy(const QString &username, // // Generate POST Data // - QString post=QString().sprintf("COMMAND=%d&LOGIN_NAME=%s&PASSWORD=%s&SOURCE_CART_NUMBER=%u&SOURCE_CUT_NUMBER=%u&DESTINATION_CART_NUMBER=%u&DESTINATION_CUT_NUMBER=%u", - RDXPORT_COMMAND_COPYAUDIO, - (const char *)RDFormPost::urlEncode(username), - (const char *)RDFormPost::urlEncode(password), - conv_source_cart_number, - conv_source_cut_number, - conv_destination_cart_number, - conv_destination_cut_number); + QString post=QString().sprintf("COMMAND=%d&",RDXPORT_COMMAND_COPYAUDIO)+ + "LOGIN_NAME="+RDFormPost::urlEncode(username)+"&"+ + "PASSWORD="+RDFormPost::urlEncode(password)+"&"+ + QString().sprintf("SOURCE_CART_NUMBER=%u&",conv_source_cart_number)+ + QString().sprintf("SOURCE_CUT_NUMBER=%u&",conv_source_cut_number)+ + QString().sprintf("DESTINATION_CART_NUMBER=%u&", + conv_destination_cart_number)+ + QString().sprintf("DESTINATION_CUT_NUMBER=%u",conv_destination_cut_number); if((curl=curl_easy_init())==NULL) { return RDCopyAudio::ErrorInternal; } diff --git a/lib/rdcut.cpp b/lib/rdcut.cpp index b424834b..f23a5f6e 100644 --- a/lib/rdcut.cpp +++ b/lib/rdcut.cpp @@ -111,10 +111,21 @@ bool RDCut::isValid(const QDateTime &datetime) const QString sql; RDSqlQuery *q; - sql=QString().sprintf("select MON,TUE,WED,THU,FRI,SAT,SUN,EVERGREEN,\ - START_DATETIME,END_DATETIME,START_DAYPART,END_DAYPART\ - from CUTS where CUT_NAME=\"%s\"", - (const char *)cut_name); + sql=QString("select ")+ + "MON,"+ // 00 + "TUE,"+ // 01 + "WED,"+ // 02 + "THU,"+ // 03 + "FRI,"+ // 04 + "SAT,"+ // 05 + "SUN,"+ // 06 + "EVERGREEN,"+ // 07 + "START_DATETIME,"+ // 08 + "END_DATETIME,"+ // 09 + "START_DAYPART,"+ // 10 + "END_DAYPART "+ // 11 + "from CUTS where "+ + "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -839,11 +850,11 @@ int RDCut::effectiveEnd() const void RDCut::logPlayout() const { QString sql= - QString().sprintf("update CUTS set LAST_PLAY_DATETIME=\"%s\",\ - PLAY_COUNTER=%d,LOCAL_COUNTER=%d where CUT_NAME=\"%s\"", - (const char *)QDateTime(QDate::currentDate(), - QTime::currentTime()).toString("yyyy-MM-dd hh:mm:ss"), - playCounter()+1,localCounter()+1,(const char *)cut_name); + QString("update CUTS set ")+ + "LAST_PLAY_DATETIME=now(),"+ + QString().sprintf("PLAY_COUNTER=%d,",playCounter()+1)+ + QString().sprintf("LOCAL_COUNTER=%d ",localCounter()+1)+ + "where CUT_NAME=\""+RDEscapeString(cut_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -863,58 +874,52 @@ bool RDCut::copyTo(RDStation *station,RDUser *user, // // Copy the Database Record // - sql= - QString().sprintf("select DESCRIPTION,OUTCUE,LENGTH,\ - CODING_FORMAT,SAMPLE_RATE,\ - BIT_RATE,CHANNELS,PLAY_GAIN,START_POINT,END_POINT,\ - FADEUP_POINT,FADEDOWN_POINT,SEGUE_START_POINT,\ - SEGUE_END_POINT,HOOK_START_POINT,HOOK_END_POINT,\ - TALK_START_POINT,TALK_END_POINT from CUTS\ - where CUT_NAME=\"%s\"",(const char *)cut_name); + sql=QString("select ")+ + "DESCRIPTION,"+ // 00 + "OUTCUE,"+ // 01 + "LENGTH,"+ // 02 + "CODING_FORMAT,"+ // 03 + "SAMPLE_RATE,"+ // 04 + "BIT_RATE,"+ // 05 + "CHANNELS,"+ // 06 + "PLAY_GAIN,"+ // 07 + "START_POINT,"+ // 08 + "END_POINT,"+ // 09 + "FADEUP_POINT,"+ // 10 + "FADEDOWN_POINT,"+ // 11 + "SEGUE_START_POINT,"+ // 12 + "SEGUE_END_POINT,"+ // 13 + "HOOK_START_POINT,"+ // 14 + "HOOK_END_POINT,"+ // 15 + "TALK_START_POINT,"+ // 16 + "TALK_END_POINT "+ // 17 + "from CUTS where "+ + "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { - sql=QString().sprintf("update CUTS set\ - PLAY_COUNTER=0,\ - DESCRIPTION=\"%s\",\ - OUTCUE=\"%s\",\ - LENGTH=%u,\ - ORIGIN_DATETIME=now(),\ - ORIGIN_NAME=\"%s\",\ - CODING_FORMAT=%u,\ - SAMPLE_RATE=%u,\ - BIT_RATE=%u,\ - CHANNELS=%u,\ - PLAY_GAIN=%d,\ - START_POINT=%d,\ - END_POINT=%d,\ - FADEUP_POINT=%d,\ - FADEDOWN_POINT=%d,\ - SEGUE_START_POINT=%d,\ - SEGUE_END_POINT=%d,\ - HOOK_START_POINT=%d,\ - HOOK_END_POINT=%d,\ - TALK_START_POINT=%d,\ - TALK_END_POINT=%d where CUT_NAME=\"%s\"", - (const char *)q->value(0).toString().utf8(), - (const char *)q->value(1).toString().utf8(), - q->value(2).toUInt(), - (const char *)RDEscapeString(station->name()), - q->value(3).toUInt(), - q->value(4).toUInt(), - q->value(5).toUInt(), - q->value(6).toUInt(), - q->value(7).toInt(), - q->value(8).toInt(), - q->value(9).toInt(), - q->value(10).toInt(), - q->value(11).toInt(), - q->value(12).toInt(), - q->value(13).toInt(), - q->value(14).toInt(), - q->value(15).toInt(), - q->value(16).toInt(), - q->value(17).toInt(), - (const char *)cutname); + sql=QString("update CUTS set ")+ + "PLAY_COUNTER=0,"+ + "DESCRIPTION=\""+RDEscapeString(q->value(0).toString())+"\","+ + "OUTCUE=\""+RDEscapeString(q->value(1).toString())+"\","+ + QString().sprintf("LENGTH=%u,",q->value(2).toUInt())+ + "ORIGIN_DATETIME=now(),"+ + "ORIGIN_NAME=\""+RDEscapeString(station->name())+"\","+ + QString().sprintf("CODING_FORMAT=%u,",q->value(3).toUInt())+ + QString().sprintf("SAMPLE_RATE=%u,",q->value(4).toUInt())+ + QString().sprintf("BIT_RATE=%u,",q->value(5).toUInt())+ + QString().sprintf("CHANNELS=%u,",q->value(6).toUInt())+ + QString().sprintf("PLAY_GAIN=%d,",q->value(7).toInt())+ + QString().sprintf("START_POINT=%d,",q->value(8).toInt())+ + QString().sprintf("END_POINT=%d,",q->value(9).toInt())+ + QString().sprintf("FADEUP_POINT=%d,",q->value(10).toInt())+ + QString().sprintf("FADEDOWN_POINT=%d,",q->value(11).toInt())+ + QString().sprintf("SEGUE_START_POINT=%d,",q->value(12).toInt())+ + QString().sprintf("SEGUE_END_POINT=%d,",q->value(13).toInt())+ + QString().sprintf("HOOK_START_POINT=%d,",q->value(14).toInt())+ + QString().sprintf("HOOK_END_POINT=%d,",q->value(15).toInt())+ + QString().sprintf("TALK_START_POINT=%d,",q->value(16).toInt())+ + QString().sprintf("TALK_END_POINT=%d ",q->value(17).toInt())+ + "where CUT_NAME=\""+RDEscapeString(cutname)+"\""; } delete q; q=new RDSqlQuery(sql); @@ -1015,13 +1020,10 @@ void RDCut::setMetadata(RDWaveData *data) const { QString sql="update CUTS set "; if(!data->description().isEmpty()) { - sql+=QString().sprintf("DESCRIPTION=\"%s\",", - (const char *)RDTextValidator::stripString(data->description()). - utf8()); + sql+=QString("DESCRIPTION=\"")+RDEscapeString(data->description())+"\","; } if(!data->outCue().isEmpty()) { - sql+=QString().sprintf("OUTCUE=\"%s\",", - (const char *)RDTextValidator::stripString(data->outCue()).utf8()); + sql+=QString("OUTCUE=\"")+RDEscapeString(data->outCue())+"\","; } else { switch(data->endType()) { @@ -1038,12 +1040,10 @@ void RDCut::setMetadata(RDWaveData *data) const } } if(!data->isrc().isEmpty()) { - sql+=QString().sprintf("ISRC=\"%s\",", - (const char *)RDTextValidator::stripString(data->isrc()).utf8()); + sql+=QString("ISRC=\"")+RDEscapeString(data->isrc())+"\","; } if(!data->isci().isEmpty()) { - sql+=QString().sprintf("ISCI=\"%s\",", - (const char *)RDTextValidator::stripString(data->isci()).utf8()); + sql+=QString("ISCI=\"")+RDEscapeString(data->isci())+"\","; } if(data->startPos()>=0) { sql+=QString().sprintf("START_POINT=%d,",data->startPos()); @@ -1128,41 +1128,31 @@ void RDCut::setMetadata(RDWaveData *data) const } if(data->startDate().isValid() && (data->startDate()>QDate(1900,1,1))&&(data->endDate().year()<8000)) { - - /* Reworked, - * if date not valid, do nothing - * if time valid use date + time - * else use date + 00:00:00 - */ QDateTime startDateTime(data->startDate()); - - if(data->startTime().isValid()) + if(data->startTime().isValid()) { startDateTime.setTime(data->startTime()); - else + } + else { startDateTime.setTime(QTime(0,0,0)); - - sql+=QString().sprintf("START_DATETIME=%s,", - (const char *)RDCheckDateTime(startDateTime,"yyyy-MM-dd hh:mm:ss")); - + } + sql+=QString("START_DATETIME=")+ + RDCheckDateTime(startDateTime,"yyyy-MM-dd hh:mm:ss")+","; if(data->endDate().isValid()&&(data->endDate().year()<8000)) { - - // Reworked as START_DATETIME - QDateTime endDateTime(data->endDate()); - - if(data->endTime().isValid()) + QDateTime endDateTime(data->endDate()); + if(data->endTime().isValid()) { endDateTime.setTime(data->endTime()); - else + } + else { endDateTime.setTime(QTime(23,59,59)); - - sql+=QString().sprintf("END_DATETIME=%s,", - (const char *)RDCheckDateTime(endDateTime,"yyyy-MM-dd hh:mm:ss")); + } + sql+=QString("END_DATETIME=")+ + RDCheckDateTime(endDateTime,"yyyy-MM-dd hh:mm:ss")+","; } } if(sql.right(1)==",") { sql=sql.left(sql.length()-1); } - sql+=QString(). - sprintf(" where CUT_NAME=\"%s\"",(const char *)cut_name.utf8()); + sql+=QString(" where CUT_NAME=\"")+RDEscapeString(cut_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); delete q; @@ -1403,44 +1393,54 @@ void RDCut::reset() const format=0; break; } - sql=QString().sprintf("update CUTS set LENGTH=%u,\ - ORIGIN_DATETIME=NOW(),\ - ORIGIN_NAME=\"\",\ - LAST_PLAY_DATETIME=NULL,PLAY_COUNTER=0,\ - CODING_FORMAT=%d,SAMPLE_RATE=%u,BIT_RATE=%u,\ - CHANNELS=%u,PLAY_GAIN=0,\ - START_POINT=0,END_POINT=%u,FADEUP_POINT=-1,\ - FADEDOWN_POINT=-1,\ - SEGUE_START_POINT=-1,SEGUE_END_POINT=-1,\ - SEGUE_GAIN=%d,\ - HOOK_START_POINT=-1,HOOK_END_POINT=-1,\ - TALK_START_POINT=-1,TALK_END_POINT=-1 \ - where CUT_NAME=\"%s\"", - wave->getExtTimeLength(), - format, - wave->getSamplesPerSec(), - wave->getHeadBitRate(), - wave->getChannels(), - wave->getExtTimeLength(), - RD_FADE_DEPTH, - (const char *)cut_name); + sql=QString("update CUTS set ")+ + QString().sprintf("LENGTH=%u,",wave->getExtTimeLength())+ + "ORIGIN_DATETIME=NOW(),"+ + "ORIGIN_NAME=\"\","+ + "LAST_PLAY_DATETIME=NULL,"+ + "PLAY_COUNTER=0,"+ + QString().sprintf("CODING_FORMAT=%d,",format)+ + QString().sprintf("SAMPLE_RATE=%u,",wave->getSamplesPerSec())+ + QString().sprintf("BIT_RATE=%u,",wave->getHeadBitRate())+ + QString().sprintf("CHANNELS=%u,",wave->getChannels())+ + "PLAY_GAIN=0,"+ + "START_POINT=0,"+ + QString().sprintf("END_POINT=%u,",wave->getExtTimeLength())+ + "FADEUP_POINT=-1,"+ + "FADEDOWN_POINT=-1,"+ + "SEGUE_START_POINT=-1,"+ + "SEGUE_END_POINT=-1,"+ + QString().sprintf("SEGUE_GAIN=%d,",RD_FADE_DEPTH)+ + "HOOK_START_POINT=-1,"+ + "HOOK_END_POINT=-1,"+ + "TALK_START_POINT=-1,"+ + "TALK_END_POINT=-1 "+ + "where CUT_NAME=\""+RDEscapeString(cut_name)+"\""; } else { - sql=QString().sprintf("update CUTS set LENGTH=0,\ - ORIGIN_DATETIME=NULL,\ - ORIGIN_NAME=\"\",\ - LAST_PLAY_DATETIME=NULL,PLAY_COUNTER=0,\ - CODING_FORMAT=0,SAMPLE_RATE=0,BIT_RATE=0,\ - CHANNELS=0,PLAY_GAIN=0,\ - START_POINT=-1,END_POINT=-1,FADEUP_POINT=-1,\ - FADEDOWN_POINT=-1,\ - SEGUE_START_POINT=-1,SEGUE_END_POINT=-1,\ - SEGUE_GAIN= %d,\ - HOOK_START_POINT=-1,HOOK_END_POINT=-1,\ - TALK_START_POINT=-1,TALK_END_POINT=-1 \ - where CUT_NAME=\"%s\"", - RD_FADE_DEPTH, - (const char *)cut_name); + sql=QString("update CUTS set ")+ + "LENGTH=0,"+ + "ORIGIN_DATETIME=NULL,"+ + "ORIGIN_NAME=\"\","+ + "LAST_PLAY_DATETIME=NULL,"+ + "PLAY_COUNTER=0,"+ + "CODING_FORMAT=0,"+ + "SAMPLE_RATE=0,"+ + "BIT_RATE=0,"+ + "CHANNELS=0,"+ + "PLAY_GAIN=0,"+ + "START_POINT=-1,"+ + "END_POINT=-1,"+ + "FADEUP_POINT=-1,"+ + "FADEDOWN_POINT=-1,"+ + "SEGUE_START_POINT=-1,"+ + "SEGUE_END_POINT=-1,"+ + QString().sprintf("SEGUE_GAIN= %d,",RD_FADE_DEPTH)+ + "HOOK_START_POINT=-1,"+ + "HOOK_END_POINT=-1,"+ + "TALK_START_POINT=-1,"+ + "TALK_END_POINT=-1 "+ + "where CUT_NAME=\""+RDEscapeString(cut_name)+"\""; } q=new RDSqlQuery(sql,cut_db); delete q; @@ -1672,9 +1672,9 @@ bool RDCut::exists(unsigned cartnum,unsigned cutnum) bool RDCut::exists(const QString &cutname) { - RDSqlQuery *q=new RDSqlQuery(QString().sprintf("select CUT_NAME from CUTS\ - where CUT_NAME=\"%s\"", - (const char *)cutname)); + QString sql=QString("select CUT_NAME from CUTS where ")+ + "CUT_NAME=\""+RDEscapeString(cutname)+"\""; + RDSqlQuery *q=new RDSqlQuery(sql); bool ret=q->first(); delete q; return ret; @@ -1773,10 +1773,9 @@ void RDCut::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CUTS SET %s=\"%s\" WHERE CUT_NAME=\"%s\"", - (const char *)param, - (const char *)RDEscapeString(value.utf8()), - (const char *)cut_name); + sql=QString("update CUTS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; q=new RDSqlQuery(sql,cut_db); delete q; } @@ -1787,10 +1786,9 @@ void RDCut::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CUTS SET %s=%u WHERE CUT_NAME=\"%s\"", - (const char *)param, - value, - (const char *)cut_name); + sql=QString("update CUTS set ")+ + param+QString().sprintf("=%u where ",value)+ + "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; q=new RDSqlQuery(sql,cut_db); delete q; } @@ -1801,10 +1799,9 @@ void RDCut::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CUTS SET %s=%d WHERE CUT_NAME=\"%s\"", - (const char *)param, - value, - (const char *)cut_name); + sql=QString("update CUTS set ")+ + param+QString().sprintf("=%d where ",value)+ + "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; q=new RDSqlQuery(sql,cut_db); delete q; } @@ -1815,10 +1812,9 @@ void RDCut::SetRow(const QString ¶m,const QDateTime &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CUTS SET %s=%s WHERE CUT_NAME=\"%s\"", - (const char *)param, - (const char *)RDCheckDateTime(value,"yyyy-MM-dd hh:mm:ss"), - (const char *)cut_name); + sql=QString("update CUTS set ")+ + param+"="+RDCheckDateTime(value,"yyyy-MM-dd hh:mm:ss")+" where "+ + "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; q=new RDSqlQuery(sql,cut_db); delete q; } @@ -1829,10 +1825,9 @@ void RDCut::SetRow(const QString ¶m,const QDate &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CUTS SET %s=%s WHERE CUT_NAME=\"%s\"", - (const char *)param, - (const char *)RDCheckDateTime(value,"yyyy-MM-dd"), - (const char *)cut_name); + sql=QString("update CUTS set ")+ + param+"="+RDCheckDateTime(value,"yyyy-MM-dd")+" where "+ + "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; q=new RDSqlQuery(sql,cut_db); delete q; } @@ -1842,10 +1837,9 @@ void RDCut::SetRow(const QString ¶m,const QTime &value) const { RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CUTS SET %s=%s WHERE CUT_NAME=\"%s\"", - (const char *)param, - (const char *)RDCheckDateTime(value,"hh:mm:ss"), - (const char *)cut_name); + sql=QString("update CUTS set ")+ + param+"="+RDCheckDateTime(value,"hh:mm:ss")+" where "+ + "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; q=new RDSqlQuery(sql,cut_db); delete q; } @@ -1855,9 +1849,9 @@ void RDCut::SetRow(const QString ¶m) const { RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE CUTS SET %s=NULL WHERE CUT_NAME=\"%s\"", - (const char *)param, - (const char *)cut_name); + sql=QString("update CUTS set ")+ + param+"=NULL where "+ + "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; q=new RDSqlQuery(sql,cut_db); delete q; } diff --git a/lib/rddeck.cpp b/lib/rddeck.cpp index f8205bc1..3af9aec6 100644 --- a/lib/rddeck.cpp +++ b/lib/rddeck.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Deck. // -// (C) Copyright 2002-2003,2016 Fred Gleason +// (C) Copyright 2002-2003,2016-2018 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -35,14 +35,16 @@ RDDeck::RDDeck(QString station,unsigned channel,bool create) deck_channel=channel; if(create) { - sql=QString().sprintf("select ID from DECKS where \ -(STATION_NAME=\"%s\")&&(CHANNEL=%d)",(const char *)deck_station,deck_channel); + sql=QString("select ID from DECKS where ")+ + "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ + QString().sprintf("(CHANNEL=%d)",deck_channel); q=new RDSqlQuery(sql); if(q->size()!=1) { delete q; sql=QString(). - sprintf("INSERT INTO DECKS SET STATION_NAME=\"%s\",CHANNEL=%d", - (const char *)deck_station,deck_channel); + sprintf("insert into DECKS set ")+ + "STATION_NAME=\""+RDEscapeString(deck_station)+"\","+ + QString().sprintf("CHANNEL=%d",deck_channel); q=new RDSqlQuery(sql); delete q; } @@ -59,10 +61,11 @@ bool RDDeck::isActive() const RDSqlQuery *q; bool ret=false; - sql=QString().sprintf("select ID from DECKS where (STATION_NAME=\"%s\")&&\ - (CHANNEL=%u)&&(CARD_NUMBER>=0)&&(PORT_NUMBER>=0)", - (const char *)RDEscapeString(deck_station), - deck_channel); + sql=QString("select ID from DECKS where ")+ + "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ + QString().sprintf("(CHANNEL=%u)&&",deck_channel)+ + "(CARD_NUMBER>=0)&&"+ + "(PORT_NUMBER>=0)"; q=new RDSqlQuery(sql); ret=q->first(); delete q; @@ -212,11 +215,12 @@ int RDDeck::switchMatrix() const QString RDDeck::switchMatrixName() const { QString matrix_name; + QString sql; - RDSqlQuery *q=new RDSqlQuery(QString().sprintf("select NAME from MATRICES \ - where (STATION_NAME=\"%s\")&&(MATRIX=%d)", - (const char *)switchStation(), - switchMatrix())); + sql=QString("select NAME from MATRICES where ")+ + "(STATION_NAME=\""+RDEscapeString(switchStation())+"\")&&"+ + QString().sprintf("(MATRIX=%d)",switchMatrix()); + RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { matrix_name=q->value(0).toString(); } @@ -240,13 +244,13 @@ int RDDeck::switchOutput() const QString RDDeck::switchOutputName() const { QString output_name; + QString sql; - RDSqlQuery *q=new RDSqlQuery(QString().sprintf("select NAME from OUTPUTS \ - where (STATION_NAME=\"%s\")&&(MATRIX=%d)&&\ - (NUMBER=%d)", - (const char *)switchStation(), - switchMatrix(), - switchOutput())); + sql=QString("select NAME from OUTPUTS where ")+ + "(STATION_NAME=\""+RDEscapeString(switchStation())+"\")&&"+ + QString().sprintf("(MATRIX=%d)&&",switchMatrix())+ + QString().sprintf("NUMBER=%d)",switchOutput()); + RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { output_name=q->value(0).toString(); } @@ -279,9 +283,9 @@ int RDDeck::GetIntValue(const QString &field) const RDSqlQuery *q; int accum; - sql=QString().sprintf("select %s from DECKS where \ -(STATION_NAME=\"%s\")&&(CHANNEL=%d)",(const char *)field, - (const char *)deck_station,deck_channel); + sql=QString("select ")+field+" from DECKS where "+ + "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ + QString().sprintf("(CHANNEL=%d)",deck_channel); q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toInt(); @@ -299,9 +303,9 @@ QString RDDeck::GetStringValue(const QString &field) const RDSqlQuery *q; QString accum; - sql=QString().sprintf("select %s from DECKS where \ -(STATION_NAME=\"%s\")&&(CHANNEL=%d)",(const char *)field, - (const char *)deck_station,deck_channel); + sql=QString("select ")+field+" from DECKS where "+ + "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ + QString().sprintf("(CHANNEL=%d)",deck_channel); q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toString(); @@ -318,12 +322,10 @@ void RDDeck::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE DECKS SET %s=%d \ -WHERE (STATION_NAME=\"%s\")&&(CHANNEL=%d)", - (const char *)param, - value, - (const char *)deck_station, - deck_channel); + sql=QString("update DECKS set ")+ + param+QString().sprintf("=%d where ",value)+ + "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ + QString().sprintf("(CHANNEL=%d)",deck_channel); q=new RDSqlQuery(sql); delete q; } @@ -334,12 +336,10 @@ void RDDeck::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE DECKS SET %s=\"%s\" \ -WHERE (STATION_NAME=\"%s\")&&(CHANNEL=%d)", - (const char *)param, - (const char *)RDEscapeString(value), - (const char *)deck_station, - deck_channel); + sql=QString("update DECKS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ + QString().sprintf("(CHANNEL=%d)",deck_channel); q=new RDSqlQuery(sql); delete q; } @@ -350,12 +350,10 @@ void RDDeck::SetRow(const QString ¶m,bool value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE DECKS SET %s=\"%s\" \ -WHERE (STATION_NAME=\"%s\")&&(CHANNEL=%d)", - (const char *)param, - (const char *)RDYesNo(value), - (const char *)deck_station, - deck_channel); + sql=QString("update DECKS set ")+ + param+"=\""+RDYesNo(value)+"\" where "+ + "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ + QString().sprintf("(CHANNEL=%d)",deck_channel); q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rddelete.cpp b/lib/rddelete.cpp index 1d90a17e..a7da4ab9 100644 --- a/lib/rddelete.cpp +++ b/lib/rddelete.cpp @@ -100,9 +100,7 @@ RDDelete::ErrorCode RDDelete::runDelete(const QString &username, strncpy(urlstr,(const char *)(conv_target_url.protocol()+"://"+ conv_target_url.host()+"/"),1024); curl_easy_setopt(curl,CURLOPT_URL,urlstr); - strncpy(userpwd,(const char *)QString(). - sprintf("%s:%s",(const char *)username, - (const char *)password),256); + strncpy(userpwd,QString(username)+":"+password,256); curl_easy_setopt(curl,CURLOPT_USERPWD,userpwd); curl_easy_setopt(curl,CURLOPT_HTTPAUTH,CURLAUTH_ANY); curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,DeleteWriteCallback); diff --git a/lib/rddropbox.cpp b/lib/rddropbox.cpp index ccc6840b..4fdf11fa 100644 --- a/lib/rddropbox.cpp +++ b/lib/rddropbox.cpp @@ -34,8 +34,8 @@ RDDropbox::RDDropbox(int id,const QString &stationname) box_id=id; if(id<0) { - sql=QString().sprintf("insert into DROPBOXES set STATION_NAME=\"%s\"", - (const char *)stationname); + sql=QString("insert into DROPBOXES set ")+ + "STATION_NAME=\""+RDEscapeString(stationname)+"\""; q=new RDSqlQuery(sql); delete q; sql="select ID from DROPBOXES order by ID desc"; @@ -338,8 +338,9 @@ void RDDropbox::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update DROPBOXES set %s=%d where ID=%d", - (const char *)param,value,box_id); + sql=QString("update DROPBOXES set ")+ + param+QString().sprintf("=%d where ",value)+ + QString().sprintf("ID=%d",box_id); q=new RDSqlQuery(sql); delete q; } @@ -350,8 +351,9 @@ void RDDropbox::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update DROPBOXES set %s=%u where ID=%d", - (const char *)param,value,box_id); + sql=QString("update DROPBOXES set ")+ + param+QString().sprintf("=%u where ",value)+ + QString().sprintf("ID=%d",box_id); q=new RDSqlQuery(sql); delete q; } @@ -362,10 +364,9 @@ void RDDropbox::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update DROPBOXES set %s=\"%s\" where ID=%d", - (const char *)param, - (const char *)RDEscapeString(value), - box_id); + sql=QString("update DROPBOXES set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + QString().sprintf("ID=%d",box_id); q=new RDSqlQuery(sql); delete q; } @@ -376,9 +377,9 @@ void RDDropbox::SetRow(const QString ¶m,bool value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update DROPBOXES set %s=\"%s\" where ID=%d", - (const char *)param,(const char *)RDYesNo(value), - box_id); + sql=QString("update DROPBOXES set ")+ + param+"=\""+RDYesNo(value)+"\" where "+ + QString().sprintf("ID=%d",box_id); q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdedit_audio.cpp b/lib/rdedit_audio.cpp index 64480f49..b6809a93 100644 --- a/lib/rdedit_audio.cpp +++ b/lib/rdedit_audio.cpp @@ -1570,15 +1570,13 @@ void RDEditAudio::gainDownPressedData() void RDEditAudio::gainChangedData() { int gain; - QString str; if(sscanf((const char *)edit_gain_edit->text(),"%d",&gain)==1) { edit_gain_control->setValue(gain*100); } - str=QString(tr("dB")); - edit_gain_edit->setText(QString().sprintf("%4.1f %s", - (double)edit_gain_control->value()/100.0, - (const char *)str)); + edit_gain_edit-> + setText(QString().sprintf("%4.1f ", + (double)edit_gain_control->value()/100.0)+tr("dB")); DrawMaps(); repaint(false); } @@ -1594,8 +1592,6 @@ void RDEditAudio::gainReleasedData() void RDEditAudio::gainTimerData() { - QString str; - switch(edit_gain_mode) { case RDEditAudio::GainUp: edit_gain_control->addLine(); @@ -1614,10 +1610,9 @@ void RDEditAudio::gainTimerData() default: break; } - str=QString(tr("dB")); - edit_gain_edit->setText(QString().sprintf("%4.1f %s", - (double)edit_gain_control->value()/100.0, - (const char *)str)); + edit_gain_edit-> + setText(QString().sprintf("%4.1f ", + (double)edit_gain_control->value()/100.0)+tr("dB")); DrawMaps(); repaint(false); } diff --git a/lib/rdencoderlist.cpp b/lib/rdencoderlist.cpp index ea4ca4de..584b8db3 100644 --- a/lib/rdencoderlist.cpp +++ b/lib/rdencoderlist.cpp @@ -28,9 +28,12 @@ RDEncoderList::RDEncoderList(const QString &stationname) RDSqlQuery *q; RDSqlQuery *q1; - sql=QString().sprintf("select ID,NAME,DEFAULT_EXTENSION,COMMAND_LINE \ - from ENCODERS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(stationname)); + sql=QString("select ")+ + "ID,"+ + "NAME,"+ + "DEFAULT_EXTENSION,"+ + "COMMAND_LINE "+ + "from ENCODERS where STATION_NAME=\""+RDEscapeString(stationname)+"\""; q=new RDSqlQuery(sql); while(q->next()) { list_encoders.push_back(new RDEncoder()); diff --git a/lib/rdevent.cpp b/lib/rdevent.cpp index ff0165ee..912d7e8f 100644 --- a/lib/rdevent.cpp +++ b/lib/rdevent.cpp @@ -33,14 +33,14 @@ RDEvent::RDEvent(const QString &name,bool create) event_name=name; if(create) { - sql=QString().sprintf("select NAME from EVENTS where \ -(NAME=\"%s\")",(const char *)event_name); + sql=QString("select NAME from EVENTS where ")+ + "(NAME=\""+RDEscapeString(event_name)+"\")"; q=new RDSqlQuery(sql); if(q->size()!=1) { delete q; - sql=QString(). - sprintf("INSERT INTO EVENTS SET NAME=\"%s\",TITLE_SEP=100", - (const char *)event_name); + sql=QString("insert into EVENTS set ")+ + "NAME=\""+RDEscapeString(event_name)+"\","+ + "TITLE_SEP=100"; q=new RDSqlQuery(sql); delete q; } @@ -291,9 +291,8 @@ int RDEvent::GetIntValue(const QString &field) const RDSqlQuery *q; int accum; - sql=QString().sprintf("select %s from EVENTS where NAME=\"%s\"", - (const char *)field, - (const char *)event_name); + sql=QString("select ")+field+" from EVENTS where "+ + "NAME=\""+RDEscapeString(event_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toInt(); @@ -311,9 +310,8 @@ QString RDEvent::GetStringValue(const QString &field,bool *ok) const RDSqlQuery *q; QString accum; - sql=QString().sprintf("select %s from EVENTS where NAME=\"%s\"", - (const char *)field, - (const char *)event_name); + sql=QString("select ")+field+" from EVENTS where "+ + "NAME=\""+RDEscapeString(event_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { if(q->value(0).isNull()) { @@ -336,10 +334,9 @@ void RDEvent::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE EVENTS SET %s=%d WHERE NAME=\"%s\"", - (const char *)param, - value, - (const char *)event_name); + sql=QString("update EVENTS set ")+ + param+QString().sprintf("=%d where ",value)+ + "NAME=\""+RDEscapeString(event_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -351,15 +348,14 @@ void RDEvent::SetRow(const QString ¶m,const QString &value,bool ok) const QString sql; if(ok) { - sql=QString().sprintf("UPDATE EVENTS SET %s=\"%s\" WHERE NAME=\"%s\"", - (const char *)param, - (const char *)RDEscapeString(value), - (const char *)event_name); + sql=QString("update EVENTS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "NAME=\""+RDEscapeString(event_name)+"\""; } else { - sql=QString().sprintf("UPDATE EVENTS SET %s=NULL WHERE NAME=\"%s\"", - (const char *)param, - (const char *)event_name); + sql=QString("update EVENTS set ")+ + param+"=NULL where "+ + "NAME=\""+RDEscapeString(event_name)+"\""; } q=new RDSqlQuery(sql); delete q; diff --git a/lib/rdevent_line.cpp b/lib/rdevent_line.cpp index f1219b40..3e244e78 100644 --- a/lib/rdevent_line.cpp +++ b/lib/rdevent_line.cpp @@ -385,8 +385,8 @@ bool RDEventLine::load() bool RDEventLine::save(RDConfig *config) { - QString sql=QString().sprintf("select NAME from EVENTS where NAME=\"%s\"", - (const char *)event_name); + QString sql=QString("select NAME from EVENTS where ")+ + "NAME=\""+RDEscapeString(event_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { sql=QString("update EVENTS set ")+ @@ -648,7 +648,8 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, } } if(schedCL->getNumberOfItems()==0) { - *errors+=QString().sprintf("%s Rule broken: Must have code %s\n",(const char *)time.toString("hh:mm:ss"),(const char*)event_have_code); + *errors+=time.toString("hh:mm:ss")+ + " "+QObject::tr("Rule broken: Must have code")+" "+event_have_code+"\n"; } schedCL->restore(); } @@ -663,7 +664,9 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, } } if(schedCL->getNumberOfItems()==0) { - *errors+=QString().sprintf("%s Rule broken: Must have second code %s\n",(const char *)time.toString("hh:mm:ss"),(const char*)event_have_code2); + *errors+=time.toString("hh:mm:ss")+" "+ + QObject::tr("Rule broken: Must have second code")+" "+ + event_have_code2+"\n"; } schedCL->restore(); } @@ -684,7 +687,8 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, } delete q; if(schedCL->getNumberOfItems()==0) - *errors+=QString().sprintf("%s Rule broken: Title Separation\n",(const char *)time.toString("hh:mm:ss")); + *errors+=time.toString("hh:mm:ss")+" "+ + QObject::tr("Rule broken: Title Separation")+"\n"; schedCL->restore(); // Artist separation @@ -703,7 +707,8 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, } delete q; if(schedCL->getNumberOfItems()==0) { - *errors+=QString().sprintf("%s Rule broken: Artist Separation\n",(const char *)time.toString("hh:mm:ss")); + *errors+=time.toString("hh:mm:ss")+" "+ + QObject::tr("Rule broken: Artist Separation")+"\n"; } schedCL->restore(); @@ -740,7 +745,9 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, } delete q1; if(schedCL->getNumberOfItems()==0) { - *errors+=QString().sprintf("%s Rule broken: Max. in a Row/Min. Wait for %s\n",(const char *)time.toString("hh:mm:ss"),(const char *)q->value(0).toString()); + *errors+=time.toString("hh:mm:ss")+" "+ + QObject::tr("Rule broken: Max. in a Row/Min. Wait for ")+ + q->value(0).toString()+"\n"; } schedCL->restore(); // do not play after @@ -763,7 +770,10 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, } delete q1; if(schedCL->getNumberOfItems()==0) { - *errors+=QString().sprintf("%s Rule broken: Do not schedule %s after %s\n",(const char *)time.toString("hh:mm:ss"),(const char *)q->value(0).toString(),(const char *)q->value(3).toString()); + *errors+=time.toString("hh:mm:ss")+" "+ + QObject::tr("Rule broken: Do not schedule ")+ + q->value(0).toString()+" "+QObject::tr("after")+" "+ + q->value(3).toString()+"\n"; } schedCL->restore(); } @@ -786,7 +796,10 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, } delete q1; if(schedCL->getNumberOfItems()==0) { - *errors+=QString().sprintf("%s Rule broken: Do not schedule %s after %s\n",(const char *)time.toString("hh:mm:ss"),(const char *)q->value(0).toString(),(const char *)q->value(4).toString()); + *errors+=time.toString("hh:mm:ss")+" "+ + QObject::tr("Rule broken: Do not schedule")+" "+ + q->value(0).toString()+" "+QObject::tr("after")+" "+ + q->value(4).toString()+"\n"; } schedCL->restore(); } @@ -809,7 +822,10 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, } delete q1; if(schedCL->getNumberOfItems()==0) { - *errors+=QString().sprintf("%s Rule broken: Do not schedule %s after %s\n",(const char *)time.toString("hh:mm:ss"),(const char *)q->value(0).toString(),(const char *)q->value(5).toString()); + *errors+=time.toString("hh:mm:ss")+" "+ + QObject::tr("Rule broken: Do not schedule")+" "+ + q->value(0).toString()+" "+QObject::tr("after")+" "+ + q->value(5).toString()+"\n"; } schedCL->restore(); } @@ -1198,20 +1214,14 @@ bool RDEventLine::linkLog(RDLogEvent *e,const QString &svcname, int slop=QTime().msecsTo(end_time)-QTime().msecsTo(time); if(abs(slop)>=event_autofill_slop) { if(slop>0) { - *errors+=QString(). - sprintf(" %s -- \"%s\" is underscheduled by %s.\n", - (const char *)time.toString("hh:mm:ss"), - (const char *)event_name, - (const char *)QTime().addMSecs(slop). - toString("hh:mm:ss")); + *errors+=QString(" ")+time.toString("hh:mm:ss")+ + " -- \""+event_name+"\" "+QObject::tr("is underscheduled by")+" "+ + QTime().addMSecs(slop).toString("hh:mm:ss")+".\n"; } else { - *errors+=QString(). - sprintf(" %s -- \"%s\" is overscheduled by %s.\n", - (const char *)time.toString("hh:mm:ss"), - (const char *)event_name, - (const char *)QTime().addMSecs(-slop). - toString("hh:mm:ss")); + *errors+=QString(" ")+time.toString("hh:mm:ss")+ + " -- \""+event_name+"\" "+QObject::tr("is overscheduled by")+" "+ + QTime().addMSecs(-slop).toString("hh:mm:ss")+".\n"; } } } diff --git a/lib/rdexception_dialog.cpp b/lib/rdexception_dialog.cpp index 2745593e..d38f9ff9 100644 --- a/lib/rdexception_dialog.cpp +++ b/lib/rdexception_dialog.cpp @@ -101,10 +101,8 @@ void RDExceptionDialog::saveData() str1=QString(tr("The file")); str2=QString(tr("already exists!\nOverwrite?")); if(QMessageBox::question(this,tr("File Exists"), - QString().sprintf("%s \'%s\' %s", - (const char *)str1, - (const char *)filename, - (const char *)str2), + tr("The file")+" \""+filename+"\" "+ + tr("already exists!")+"\n"+tr("Overwrite?"), QMessageBox::Yes,QMessageBox::No)== QMessageBox::No) { return; @@ -115,9 +113,8 @@ void RDExceptionDialog::saveData() str1=QString(tr("Unable to open file")); str2=QString(tr("for writing!")); QMessageBox:: - warning(this,tr("File Error"),QString(). - sprintf("%s \'%s\' %s!",(const char *)str1, - (const char *)filename,(const char *)str2)); + warning(this,tr("File Error"),tr("Unable to open file")+ + " \""+filename+"\" "+tr("for writing!")); return; } fprintf(fh,(const char *)report_view->text()); diff --git a/lib/rdfeed.cpp b/lib/rdfeed.cpp index 62ac627c..af2461cb 100644 --- a/lib/rdfeed.cpp +++ b/lib/rdfeed.cpp @@ -47,8 +47,8 @@ RDFeed::RDFeed(const QString &keyname,RDConfig *config,QObject *parent) feed_keyname=keyname; feed_config=config; - sql=QString().sprintf("select ID from FEEDS where KEY_NAME=\"%s\"", - (const char *)RDEscapeString(keyname)); + sql=QString("select ID from FEEDS where ")+ + "KEY_NAME=\""+RDEscapeString(keyname)+"\""; q=new RDSqlQuery(sql); if(q->first()) { feed_id=q->value(0).toUInt(); @@ -511,19 +511,14 @@ QString RDFeed::audioUrl(RDFeed::MediaLinkMode mode, case RDFeed::LinkDirect: cast=new RDPodcast(feed_config,cast_id); - ret=QString().sprintf("%s/%s", - (const char *)baseUrl(), - (const char *)cast->audioFilename()); + ret=baseUrl()+"/"+cast->audioFilename(); delete cast; break; case RDFeed::LinkCounted: - ret=QString().sprintf("http://%s%s/rd-bin/rdfeed.%s?%s&cast_id=%d", - (const char *)basePreamble(), - (const char *)cgi_hostname, - (const char *)uploadExtension(), - (const char *)keyName(), - cast_id); + ret=QString("http://")+basePreamble()+cgi_hostname+ + "/rd-bin/rdfeed."+uploadExtension()+"?"+keyName()+ + QString().sprintf("&cast_id=%d",cast_id); break; } return ret; @@ -745,7 +740,7 @@ unsigned RDFeed::postFile(RDStation *station,const QString &srcfile,Error *err, } delete upload; delete cast; - unlink(QString().sprintf("%s.wav",(const char *)tmpfile)); + unlink(QString(tmpfile)+".wav"); unlink(tmpfile); emit postProgressChanged(totalPostSteps()); @@ -813,21 +808,15 @@ unsigned RDFeed::CreateCast(QString *filename,int bytes,int msecs) const // // Create Entry // - sql=QString().sprintf("insert into PODCASTS set \ - FEED_ID=%u,\ - ITEM_TITLE=\"%s\",\ - ITEM_DESCRIPTION=\"%s\",\ - ITEM_CATEGORY=\"%s\",\ - ITEM_LINK=\"%s\",\ - SHELF_LIFE=%d,\ - EFFECTIVE_DATETIME=UTC_TIMESTAMP(),\ - ORIGIN_DATETIME=UTC_TIMESTAMP()", - feed_id, - (const char *)RDEscapeString(q->value(0).toString()), - (const char *)RDEscapeString(q->value(1).toString()), - (const char *)RDEscapeString(q->value(2).toString()), - (const char *)RDEscapeString(q->value(3).toString()), - q->value(4).toInt()); + sql=QString("insert into PODCASTS set ")+ + QString().sprintf("FEED_ID=%u,",feed_id)+ + "ITEM_TITLE=\""+RDEscapeString(q->value(0).toString())+"\","+ + "ITEM_DESCRIPTION=\""+RDEscapeString(q->value(1).toString())+"\","+ + "ITEM_CATEGORY=\""+RDEscapeString(q->value(2).toString())+"\","+ + "ITEM_LINK=\""+RDEscapeString(q->value(3).toString())+"\","+ + QString().sprintf("SHELF_LIFE=%d,",q->value(4).toInt())+ + "EFFECTIVE_DATETIME=UTC_TIMESTAMP(),"+ + "ORIGIN_DATETIME=UTC_TIMESTAMP()"; q1=new RDSqlQuery(sql); delete q1; @@ -844,15 +833,13 @@ unsigned RDFeed::CreateCast(QString *filename,int bytes,int msecs) const // // Generate the Filename // - *filename=QString(). - sprintf("%s.%s", - (const char *)QString().sprintf("%06u_%06u",feed_id,cast_id), - (const char *)q->value(6).toString()); - sql=QString().sprintf("update PODCASTS set AUDIO_FILENAME=\"%s\",\ - AUDIO_LENGTH=%d,\ - AUDIO_TIME=%d where ID=%u", - (const char *)(*filename), - bytes,msecs,cast_id); + *filename= + QString().sprintf("%06u_%06u",feed_id,cast_id)+"."+q->value(6).toString(); + sql=QString("update PODCASTS set ")+ + "AUDIO_FILENAME=\""+RDEscapeString(*filename)+"\","+ + QString().sprintf("AUDIO_LENGTH=%d,",bytes)+ + QString().sprintf("AUDIO_TIME=%d where ",msecs)+ + QString().sprintf("ID=%u",cast_id); q1=new RDSqlQuery(sql); delete q1; delete q; @@ -878,10 +865,9 @@ void RDFeed::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE FEEDS SET %s=%d WHERE KEY_NAME=\"%s\"", - (const char *)param, - value, - (const char *)feed_keyname); + sql=QString("update FEEDS set ")+ + param+QString().sprintf("=%d where ",value)+ + "KEY_NAME=\""+RDEscapeString(feed_keyname)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -892,10 +878,9 @@ void RDFeed::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE FEEDS SET %s=\"%s\" WHERE KEY_NAME=\"%s\"", - (const char *)param, - (const char *)RDEscapeString(value), - (const char *)feed_keyname); + sql=QString("update FEEDS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "KEY_NAME=\""+RDEscapeString(feed_keyname)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -906,10 +891,9 @@ void RDFeed::SetRow(const QString ¶m,const QDateTime &value, RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE FEEDS SET %s=%s WHERE KEY_NAME=\"%s\"", - (const char *)param, - (const char *)RDCheckDateTime(value, format), - (const char *)feed_keyname); + sql=QString().sprintf("update FEEDS set ")+ + param+"="+RDCheckDateTime(value,format)+" where "+ + "KEY_NAME=\""+RDEscapeString(feed_keyname)+"\""; q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdgroup.cpp b/lib/rdgroup.cpp index fa309055..b2712795 100644 --- a/lib/rdgroup.cpp +++ b/lib/rdgroup.cpp @@ -43,8 +43,8 @@ RDGroup::RDGroup(QString name,bool create,QSqlDatabase *db) group_name=name; if(create) { - sql=QString().sprintf("INSERT INTO GROUPS SET NAME=\"%s\"", - (const char *)RDEscapeString(group_name)); + sql=QString("insert into GROUPS set ")+ + "NAME=\""+RDEscapeString(group_name)+"\""; q=new RDSqlQuery(sql,group_db); delete q; } @@ -243,9 +243,11 @@ int RDGroup::freeCartQuantity() const QString sql; RDSqlQuery *q; - sql=QString().sprintf("select DEFAULT_LOW_CART,DEFAULT_HIGH_CART\ - from GROUPS where NAME=\"%s\"", - (const char *)group_name); + sql=QString("select ")+ + "DEFAULT_LOW_CART,"+ // 00 + "DEFAULT_HIGH_CART "+ // 01 + "from GROUPS where "+ + "NAME=\""+RDEscapeString(group_name)+"\""; q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -257,9 +259,9 @@ int RDGroup::freeCartQuantity() const } int low=q->value(0).toInt(); int high=q->value(1).toInt(); - sql=QString().sprintf("select NUMBER from CART\ - where (NUMBER>=%d)&&(NUMBER<=%d)", - q->value(0).toInt(),q->value(1).toInt()); + sql=QString("select NUMBER from CART where ")+ + QString().sprintf("NUMBER>=%d)&&(NUMBER<=%d)", + q->value(0).toInt(),q->value(1).toInt()); delete q; q=new RDSqlQuery(sql); int free=high-low-q->size(); @@ -311,9 +313,12 @@ bool RDGroup::cartNumberValid(unsigned cartnum) const return false; } bool ret=false; - QString sql=QString().sprintf("select DEFAULT_LOW_CART,DEFAULT_HIGH_CART,\ - ENFORCE_CART_RANGE from GROUPS \ - where NAME=\"%s\"",(const char *)group_name); + QString sql=QString("select ")+ + "DEFAULT_LOW_CART,"+ // 00 + "DEFAULT_HIGH_CART,"+ // 01 + "ENFORCE_CART_RANGE "+ // 02 + "from GROUPS where "+ + "NAME=\""+RDEscapeString(group_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { if(!RDBool(q->value(2).toString())) { @@ -336,12 +341,20 @@ QString RDGroup::xml() const RDSqlQuery *q; QString ret=""; - sql=QString().sprintf("select DESCRIPTION,DEFAULT_CART_TYPE,DEFAULT_LOW_CART,\ - DEFAULT_HIGH_CART,CUT_SHELFLIFE,DEFAULT_TITLE,\ - ENFORCE_CART_RANGE,REPORT_TFC,REPORT_MUS,\ - ENABLE_NOW_NEXT,COLOR \ - from GROUPS where NAME=\"%s\"", - (const char *)RDEscapeString(group_name)); + sql=QString("select ")+ + "DESCRIPTION,"+ // 00 + "DEFAULT_CART_TYPE,"+ // 01 + "DEFAULT_LOW_CART,"+ // 02 + "DEFAULT_HIGH_CART,"+ // 03 + "CUT_SHELFLIFE,"+ // 04 + "DEFAULT_TITLE,"+ // 05 + "ENFORCE_CART_RANGE,"+ // 06 + "REPORT_TFC,"+ // 07 + "REPORT_MUS,"+ // 08 + "ENABLE_NOW_NEXT,"+ // 09 + "COLOR "+ // 10 + "from GROUPS where "+ + "NAME=\""+RDEscapeString(group_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { ret+="\n"; @@ -382,9 +395,11 @@ unsigned RDGroup::GetNextFreeCart(unsigned startcart) const unsigned cart_low_limit; unsigned cart_high_limit; - sql=QString().sprintf("select DEFAULT_LOW_CART,DEFAULT_HIGH_CART\ - from GROUPS where NAME=\"%s\"", - (const char *)group_name); + sql=QString("select ")+ + "DEFAULT_LOW_CART,"+ // 00 + "DEFAULT_HIGH_CART "+ // 01 + "from GROUPS where "+ + "NAME=\""+RDEscapeString(group_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { if(startcart>q->value(0).toUInt()) { @@ -459,10 +474,9 @@ void RDGroup::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE GROUPS SET %s=%d WHERE NAME=\"%s\"", - (const char *)param, - value, - (const char *)group_name); + sql=QString().sprintf("update GROUPS set ")+ + param+QString().sprintf("=%d where ",value)+ + "NAME=\""+RDEscapeString(group_name)+"\""; q=new RDSqlQuery(sql,group_db); delete q; } @@ -473,10 +487,9 @@ void RDGroup::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE GROUPS SET %s=%u WHERE NAME=\"%s\"", - (const char *)param, - value, - (const char *)group_name); + sql=QString("update GROUPS set ")+ + param+QString().sprintf("=%u where ",value)+ + "NAME=\""+RDEscapeString(group_name)+"\""; q=new RDSqlQuery(sql,group_db); delete q; } @@ -487,10 +500,9 @@ void RDGroup::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE GROUPS SET %s=\"%s\" WHERE NAME=\"%s\"", - (const char *)param, - (const char *)RDEscapeString(value), - (const char *)group_name); + sql=QString("update GROUPS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "NAME=\""+RDEscapeString(group_name)+"\""; q=new RDSqlQuery(sql,group_db); delete q; } diff --git a/lib/rdhotkeylist.cpp b/lib/rdhotkeylist.cpp index 0e3e627b..9135c84f 100644 --- a/lib/rdhotkeylist.cpp +++ b/lib/rdhotkeylist.cpp @@ -67,7 +67,7 @@ void RDHotKeyList::BuildKeyList( ) } if (p != NULL) { while ( ( fgets(line,256,hkeyfile) != NULL) && (!(strstr(line,"}")) ) ) { - QString buf = cleanStrings(QString().sprintf("%s",line)); + QString buf = cleanStrings(line); int acomment = buf.find("//"); int eqsign = buf.find("="); if ((eqsign != -1) && (acomment != 0) ) { diff --git a/lib/rdhotkeys.cpp b/lib/rdhotkeys.cpp index b3202ae9..e44d3e3a 100644 --- a/lib/rdhotkeys.cpp +++ b/lib/rdhotkeys.cpp @@ -23,9 +23,6 @@ #include #include -// -// Global Classes -// RDHotkeys::RDHotkeys(const QString &station,const QString &module) { QString sql; @@ -34,256 +31,14 @@ RDHotkeys::RDHotkeys(const QString &station,const QString &module) station_hotkeys=station; module_name=module; - sql=QString().sprintf( - "select STATION_NAME from RDHOTKEYS \ - where STATION_NAME=\"%s\" AND \ - MODULE_NAME=\"%s\"", - (const char *)RDEscapeString(station_hotkeys), - (const char *)RDEscapeString(module_name)); - + sql=QString("select STATION_NAME from RDHOTKEYS where ")+ + "STATION_NAME=\""+RDEscapeString(station_hotkeys)+"\" && "+ + "MODULE_NAME=\""+RDEscapeString(module_name)+"\""; q=new RDSqlQuery(sql); - - if(!q->first()) - { - // Do any RDHOTKEY Module initializations for new objects here! - - if (strcmp((const char *)module_name,"airplay") ==0 ) - { - delete q; - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=1,\ - KEY_LABEL=\"Start Line 1\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=2,\ - KEY_LABEL=\"Stop Line 1\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=3,\ - KEY_LABEL=\"Pause Line 1\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=4,\ - KEY_LABEL=\"Start Line 2\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=5,\ - KEY_LABEL=\"Stop Line 2\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=6,\ - KEY_LABEL=\"Pause Line 2\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=7,\ - KEY_LABEL=\"Start Line 3\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=8,\ - KEY_LABEL=\"Stop Line 3\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=9,\ - KEY_LABEL=\"Pause Line 3\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=10,\ - KEY_LABEL=\"Start Line 4\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=11,\ - KEY_LABEL=\"Stop Line 4\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=12,\ - KEY_LABEL=\"Pause Line 4\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=13,\ - KEY_LABEL=\"Start Line 5\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=14,\ - KEY_LABEL=\"Stop Line 5\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=15,\ - KEY_LABEL=\"Pause Line 5\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=16,\ - KEY_LABEL=\"Start Line 6\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=17,\ - KEY_LABEL=\"Stop Line 6\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=18,\ - KEY_LABEL=\"Pause Line 6\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=19,\ - KEY_LABEL=\"Start Line 7\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=20,\ - KEY_LABEL=\"Stop Line 7\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=21,\ - KEY_LABEL=\"Pause Line 7\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=22,\ - KEY_LABEL=\"Add\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=23,\ - KEY_LABEL=\"Delete\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=24,\ - KEY_LABEL=\"Copy\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=25,\ - KEY_LABEL=\"Move\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=26,\ - KEY_LABEL=\"Sound Panel\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=27,\ - KEY_LABEL=\"Main Log\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=28,\ - KEY_LABEL=\"Aux Log 1\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("insert into RDHOTKEYS set STATION_NAME=\"%s\",\ - MODULE_NAME=\"airplay\",\ - KEY_ID=29,\ - KEY_LABEL=\"Aux Log 2\" ", - (const char *)RDEscapeString(station_hotkeys)); - q=new RDSqlQuery(sql); - } - } - delete q; + if(!q->first()) { + InsertHotkeys(); + } + delete q; } @@ -299,21 +54,63 @@ QString RDHotkeys::GetRowLabel(const QString &station,const QString &module,cons QString sql; QString hotkey_label; - sql=QString().sprintf("SELECT KEY_LABEL FROM RDHOTKEYS WHERE STATION_NAME=\"%s\" \ - AND MODULE_NAME=\"%s\" and KEY_VALUE = \"%s\"", - (const char *)station, - (const char *)module, - (const char *)value); + sql=QString().sprintf("select KEY_LABEL from RDHOTKEYS where ")+ + "STATION_NAME=\""+RDEscapeString(station)+"\" && "+ + "MODULE_NAME=\""+RDEscapeString(module)+"\" && "+ + "KEY_VALUE=\""+RDEscapeString(value)+"\""; q=new RDSqlQuery(sql); - if(!q->first()) { - hotkey_label = QString(""); + hotkey_label=QString(""); } else { - hotkey_label = QString().sprintf("%s",(const char *)q->value(0).toString()); + hotkey_label=q->value(0).toString(); } - delete q; return hotkey_label; } + +void RDHotkeys::InsertHotkeys() const +{ + QString sql; + QStringList labels; + + labels.push_back(QObject::tr("Start Line 1")); + labels.push_back(QObject::tr("Stop Line 1")); + labels.push_back(QObject::tr("Pause Line 1")); + labels.push_back(QObject::tr("Start Line 2")); + labels.push_back(QObject::tr("Stop Line 2")); + labels.push_back(QObject::tr("Pause Line 2")); + labels.push_back(QObject::tr("Start Line 3")); + labels.push_back(QObject::tr("Stop Line 3")); + labels.push_back(QObject::tr("Pause Line 3")); + labels.push_back(QObject::tr("Start Line 4")); + labels.push_back(QObject::tr("Stop Line 4")); + labels.push_back(QObject::tr("Pause Line 4")); + labels.push_back(QObject::tr("Start Line 5")); + labels.push_back(QObject::tr("Stop Line 5")); + labels.push_back(QObject::tr("Pause Line 5")); + labels.push_back(QObject::tr("Start Line 6")); + labels.push_back(QObject::tr("Stop Line 6")); + labels.push_back(QObject::tr("Pause Line 6")); + labels.push_back(QObject::tr("Start Line 7")); + labels.push_back(QObject::tr("Stop Line 7")); + labels.push_back(QObject::tr("Pause Line 7")); + labels.push_back(QObject::tr("Add")); + labels.push_back(QObject::tr("Delete")); + labels.push_back(QObject::tr("Copy")); + labels.push_back(QObject::tr("Move")); + labels.push_back(QObject::tr("Sound Panel")); + labels.push_back(QObject::tr("Main Log")); + labels.push_back(QObject::tr("Aux Log 1")); + labels.push_back(QObject::tr("Aux Log 2")); + + for(unsigned i=0;i +// (C) Copyright 2002-2006,2016-2018 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -23,9 +23,9 @@ #include #include +#include #include - RDListGroups::RDListGroups(QString *groupname,const QString &username, QWidget *parent) : QDialog(parent,"",true) @@ -147,11 +147,12 @@ void RDListGroups::BuildGroupList(const QString &username) QListViewItem *cur_item=NULL; group_group_list->clear(); - sql=QString().sprintf("select USER_PERMS.GROUP_NAME,GROUPS.DESCRIPTION\ - from USER_PERMS left join GROUPS\ - on USER_PERMS.GROUP_NAME=GROUPS.NAME\ - where USER_NAME=\"%s\"", - (const char *)username); + sql=QString("select ")+ + "USER_PERMS.GROUP_NAME,"+ // 00 + "GROUPS.DESCRIPTION "+ // 01 + "from USER_PERMS left join GROUPS "+ + "on USER_PERMS.GROUP_NAME=GROUPS.NAME where "+ + "USER_NAME=\""+RDEscapeString(username)+"\""; q=new RDSqlQuery(sql); while(q->next()) { item=new QListViewItem(group_group_list); diff --git a/lib/rdlog.cpp b/lib/rdlog.cpp index 6f6f7d6a..78aba030 100644 --- a/lib/rdlog.cpp +++ b/lib/rdlog.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Log. // -// (C) Copyright 2002-2003,2016 Fred Gleason +// (C) Copyright 2002-2003,2016-2018 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -43,8 +43,8 @@ QString RDLog::name() const bool RDLog::exists() const { - QString sql=QString().sprintf("select NAME from LOGS where NAME=\"%s\"", - (const char *)RDEscapeString(log_name)); + QString sql=QString("select NAME from LOGS where ")+ + "NAME=\""+RDEscapeString(log_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { delete q; @@ -333,10 +333,15 @@ bool RDLog::isReady() const RDSqlQuery *q; bool ret=false; - sql=QString().sprintf("select MUSIC_LINKS,MUSIC_LINKED,TRAFFIC_LINKS,\ - TRAFFIC_LINKED,SCHEDULED_TRACKS,COMPLETED_TRACKS \ - from LOGS where NAME=\"%s\"", - (const char *)RDEscapeString(log_name)); + sql=QString("select ")+ + "MUSIC_LINKS,"+ // 00 + "MUSIC_LINKED,"+ // 01 + "TRAFFIC_LINKS,"+ // 02 + "TRAFFIC_LINKED,"+ // 03 + "SCHEDULED_TRACKS,"+ // 04 + "COMPLETED_TRACKS "+ // 05 + "from LOGS where "+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { ret=((q->value(0).toInt()==0)||(q->value(1).toString()=="Y"))&& @@ -361,8 +366,9 @@ bool RDLog::remove(RDStation *station,RDUser *user,RDConfig *config) const "LOG_NAME=\""+RDEscapeString(log_name)+"\""; RDSqlQuery::apply(sql); - sql=QString().sprintf("delete from LOGS where (NAME=\"%s\" && TYPE=0)", - (const char *)RDEscapeString(log_name)); + sql=QString("delete from LOGS where ")+ + "NAME=\""+RDEscapeString(log_name)+"\" && "+ + "TYPE=0"; q=new RDSqlQuery(sql); delete q; return true; @@ -392,10 +398,10 @@ void RDLog::updateTracks() scheduled=q->size()+completed; delete q; - sql=QString().sprintf("update LOGS set SCHEDULED_TRACKS=%d,\ - COMPLETED_TRACKS=%u where NAME=\"%s\"", - scheduled,completed, - (const char *)RDEscapeString(log_name)); + sql=QString("update LOGS set ")+ + QString().sprintf("SCHEDULED_TRACKS=%d,",scheduled)+ + QString().sprintf("COMPLETED_TRACKS=%u where ",completed)+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -410,8 +416,8 @@ int RDLog::removeTracks(RDStation *station,RDUser *user,RDConfig *config) const QString owner=log_name; owner.replace(" ","_"); - sql=QString().sprintf("select NUMBER from CART where OWNER=\"%s\"", - (const char *)owner); + sql=QString("select NUMBER from CART where ")+ + "OWNER=\""+RDEscapeString(owner)+"\""; q=new RDSqlQuery(sql); while(q->next()) { cart=new RDCart(q->value(0).toUInt()); @@ -588,9 +594,8 @@ int RDLog::GetIntValue(const QString &field) const RDSqlQuery *q; int accum; - sql=QString().sprintf("select %s from LOGS where NAME=\"%s\"", - (const char *)field, - (const char *)RDEscapeString(log_name)); + sql=QString("select ")+field+" from LOGS where "+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toInt(); @@ -608,9 +613,9 @@ unsigned RDLog::GetUnsignedValue(const QString &field) const RDSqlQuery *q; unsigned accum; - sql=QString().sprintf("select %s from LOGS where NAME=\"%s\"", - (const char *)field, - (const char *)RDEscapeString(log_name)); + sql=QString("select ")+ + field+" from LOGS where "+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toUInt(); @@ -628,9 +633,9 @@ QString RDLog::GetStringValue(const QString &field) const RDSqlQuery *q; QString accum; - sql=QString().sprintf("select %s from LOGS where NAME=\"%s\"", - (const char *)field, - (const char *)RDEscapeString(log_name)); + sql=QString("select ")+ + field+" from LOGS where "+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toString(); @@ -648,9 +653,9 @@ QDate RDLog::GetDateValue(const QString &field) const RDSqlQuery *q; QDate accum; - sql=QString().sprintf("select %s from LOGS where NAME=\"%s\"", - (const char *)field, - (const char *)RDEscapeString(log_name)); + sql=QString("select ")+ + field+" from LOGS where "+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toDate(); @@ -668,9 +673,9 @@ QDateTime RDLog::GetDatetimeValue(const QString &field) const RDSqlQuery *q; QDateTime accum; - sql=QString().sprintf("select %s from LOGS where NAME=\"%s\"", - (const char *)field, - (const char *)RDEscapeString(log_name)); + sql=QString("select ")+ + field+" from LOGS where "+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toDateTime(); @@ -687,10 +692,9 @@ void RDLog::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE LOGS SET %s=%d WHERE NAME=\"%s\"", - (const char *)param, - value, - (const char *)RDEscapeString(log_name)); + sql=QString("update LOGS set ")+ + param+QString().sprintf("=%d where ",value)+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -701,10 +705,9 @@ void RDLog::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE LOGS SET %s=%u WHERE NAME=\"%s\"", - (const char *)param, - value, - (const char *)RDEscapeString(log_name)); + sql=QString("update LOGS set ")+ + param+QString().sprintf("=%u where ",value)+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -715,10 +718,9 @@ void RDLog::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE LOGS SET %s=\"%s\" WHERE NAME=\"%s\"", - (const char *)param, - (const char *)RDEscapeString(value), - (const char *)RDEscapeString(log_name)); + sql=QString("update LOGS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -729,10 +731,9 @@ void RDLog::SetRow(const QString ¶m,const QDate &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE LOGS SET %s=%s WHERE NAME=\"%s\"", - (const char *)param, - (const char *)RDCheckDateTime(value,"yyyy/MM/dd"), - (const char *)RDEscapeString(log_name)); + sql=QString("update LOGS set ")+ + param+"="+RDCheckDateTime(value,"yyyy/MM/dd")+" where "+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -743,10 +744,9 @@ void RDLog::SetRow(const QString ¶m,const QDateTime &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE LOGS SET %s=%s WHERE NAME=\"%s\"", - (const char *)param, - (const char *)RDCheckDateTime(value,"yyyy-MM-dd hh:mm:ss"), - (const char *)RDEscapeString(log_name)); + sql=QString("update LOGS set ")+ + param+"="+RDCheckDateTime(value,"yyyy-MM-dd hh:mm:ss")+" where "+ + "NAME=\""+RDEscapeString(log_name)+"\""; q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdlog_event.cpp b/lib/rdlog_event.cpp index cc15ade0..1ba122ed 100644 --- a/lib/rdlog_event.cpp +++ b/lib/rdlog_event.cpp @@ -232,49 +232,41 @@ int RDLogEvent::validate(QString *report,const QDate &date) // Handle events with no logged start time (e.g. manual inserts) // //TODO do we need to verify date here? - sql=QString(). - sprintf("select CUT_NAME from CUTS where \ - (CART_NUMBER=%u)&& \ - ((START_DATETIME is null)|| \ - (START_DATETIME<=\"%s 23:59:59\"))&& \ - ((END_DATETIME is null)|| \ - (END_DATETIME>=\"%s 00:00:00\"))&& \ - (%s=\"Y\")&&(LENGTH>0)", - logLine(i)->cartNumber(), - (const char *)date.toString("yyyy-MM-dd"), - (const char *)date.toString("yyyy-MM-dd"), - (const char *)RDDowCode(date.dayOfWeek())); + sql=QString("select CUT_NAME from CUTS where ")+ + QString().sprintf("(CART_NUMBER=%u)&&",logLine(i)->cartNumber())+ + "((START_DATETIME is null)||"+ + "(START_DATETIME<=\""+date.toString("yyyy-MM-dd")+" 23:59:59\"))&&"+ + "((END_DATETIME is null)||"+ + "(END_DATETIME>=\""+date.toString("yyyy-MM-dd")+" 00:00:00\"))&&"+ + "("+RDDowCode(date.dayOfWeek())+"=\"Y\")&&(LENGTH>0)"; } else { //TODO Do we need to verify date and logLine(i)->startTime? - sql=QString(). - sprintf("select CUT_NAME from CUTS where \ - (CART_NUMBER=%u)&& \ - ((START_DATETIME is null)||(START_DATETIME<=\"%s %s\"))&& \ - ((END_DATETIME is null)||(END_DATETIME>=\"%s %s\"))&& \ - ((START_DAYPART is null)||(START_DAYPART<=\"%s\"))&& \ - ((END_DAYPART is null)||(END_DAYPART>=\"%s\"))&& \ - (%s=\"Y\")&&(LENGTH>0)", - logLine(i)->cartNumber(), - (const char *)date.toString("yyyy-MM-dd"), - (const char *)logLine(i)->startTime(RDLogLine::Logged). - toString("hh:mm:ss"), - (const char *)date.toString("yyyy-MM-dd"), - (const char *)logLine(i)->startTime(RDLogLine::Logged). - toString("hh:mm:ss"), - (const char *)logLine(i)->startTime(RDLogLine::Logged). - toString("hh:mm:ss"), - (const char *)logLine(i)->startTime(RDLogLine::Logged). - toString("hh:mm:ss"), - (const char *)RDDowCode(date.dayOfWeek())); + sql=QString("select CUT_NAME from CUTS where ")+ + QString().sprintf("(CART_NUMBER=%u)&&",logLine(i)->cartNumber())+ + "((START_DATETIME is null)||"+ + "(START_DATETIME<=\""+date.toString("yyyy-MM-dd")+" "+ + logLine(i)->startTime(RDLogLine::Logged).toString("hh:mm:ss")+ + "\"))&&"+ + "((END_DATETIME is null)||"+ + "(END_DATETIME>=\""+date.toString("yyyy-MM-dd")+" "+ + logLine(i)->startTime(RDLogLine::Logged).toString("hh:mm:ss")+ + "\"))&&"+ + "((START_DAYPART is null)||"+ + "(START_DAYPART<=\""+ + logLine(i)->startTime(RDLogLine::Logged). + toString("hh:mm:ss")+"\"))&&"+ + "((END_DAYPART is null)||"+ + "(END_DAYPART>=\""+logLine(i)->startTime(RDLogLine::Logged). + toString("hh:mm:ss")+"\"))&&"+ + "("+RDDowCode(date.dayOfWeek())+"=\"Y\")&&(LENGTH>0)"; } q1=new RDSqlQuery(sql); if(!q1->first()) { - *report+=QString(). - sprintf(" %s - cart %06d [%s] is not playable\n", - (const char *)logLine(i)->startTime(RDLogLine::Logged). - toString("hh:mm:ss"),logLine(i)->cartNumber(), - (const char *)q->value(1).toString()); + *report+=QString(" ")+ + logLine(i)->startTime(RDLogLine::Logged).toString("hh:mm:ss")+ + QString().sprintf(" - cart %06d [",logLine(i)->cartNumber())+ + q->value(1).toString()+"] "+QObject::tr("is not playable")+"\n"; errs++; } delete q1; @@ -799,382 +791,6 @@ QString RDLogEvent::xml() const return ret; } -/* -int RDLogEvent::LoadLines(const QString &log_table,int id_offset, - bool track_ptrs) -{ - RDLogLine line; - RDSqlQuery *q1; - QString sql; - RDSqlQuery *q; - bool prev_custom=false; - unsigned lines=0; - unsigned start_line=log_line.size(); - - // - // Load the group color table - // - std::map group_colors; - sql="select NAME,COLOR from GROUPS"; - q=new RDSqlQuery(sql); - while(q->next()) { - group_colors[q->value(0).toString()]=QColor(q->value(1).toString()); - } - delete q; - - // - // Field Offsets: - // 0 - LOG.ID 1 - LOG.CART_NUMBER - // 2 - LOG.START_TIME 3 - LOG.TIME_TYPE - // 4 - LOG.TRANS_TYPE 5 - LOG.START_POINT - // 6 - LOG.END_POINT 7 - LOG.SEGUE_START_POINT - // 8 - LOG.SEGUE_END_POINT 9 - CART.TYPE - // 10 - CART.GROUP_NAME 11 - CART.TITLE - // 12 - CART.ARTIST 13 - CART.ALBUM - // 14 - CART.YEAR - // 15 - CART.LABEL 16 - CART.CLIENT - // 17 - CART.AGENCY 18 - CART.USER_DEFINED - // 19 - CART.CONDUCTOR 20 - CART.SONG_ID - // 21 - CART.FORCED_LENGTH 22 - CART.CUT_QUANTITY - // 23 - CART.LAST_CUT_PLAYED 24 - CART.PLAY_ORDER - // 25 - CART.ENFORCE_LENGTH 26 - CART.PRESERVE_PITCH - // 27 - LOG.TYPE 28 - LOG.COMMENT - // 29 - LOG.LABEL 30 - LOG.GRACE_TIME - // 31 - LOG.POST_POINT 32 - LOG.SOURCE - // 33 - LOG.EXT_START_TIME 34 - LOG.EXT_LENGTH - // 35 - LOG.EXT_DATA 36 - LOG.EXT_EVENT_ID - // 37 - LOG.EXT_ANNC_TYPE 38 - LOG.EXT_CART_NAME - // 39 - CART.ASYNCRONOUS 40 - LOG.FADEUP_POINT - // 41 - LOG.FADEUP_GAIN 42 - LOG.FADEDOWN_POINT - // 43 - LOG.FADEDOWN_GAIN 44 - LOG.SEGUE_GAIN - // 45 - CART.PUBLISHER 46 - CART.COMPOSER - // 47 - CART.USAGE_CODE 48 - CART.AVERAGE_SEGUE_LENGTH - // 49 - LOG.LINK_EVENT_NAME 50 - LOG.LINK_START_TIME - // 51 - LOG.LINK_LENGTH 52 - LOG.LINK_ID - // 53 - LOG.LINK_EMBEDDED 54 - LOG.ORIGIN_USER - // 55 - LOG.ORIGIN_DATETIME 56 - CART.VALIDITY - // 57 - LOG.LINK_START_SLOP 58 - LOG.LINK_END_SLOP - // 59 - LOG.DUCK_UP_GAIN 60 - LOG.DUCK_DOWN_GAIN - // 61 - CART.START_DATETIME 62 - CART.END_DATETIME - // 63 - LOG.EVENT_LENGTH 64 - CART.USE_EVENT_LENGTH - // 65 - CART.NOTES - // - sql=QString().sprintf("select `%s`.ID,`%s`.CART_NUMBER,\ -`%s`.START_TIME,`%s`.TIME_TYPE,`%s`.TRANS_TYPE,`%s`.START_POINT,\ -`%s`.END_POINT,`%s`.SEGUE_START_POINT,`%s`.SEGUE_END_POINT,\ -CART.TYPE,CART.GROUP_NAME,CART.TITLE,CART.ARTIST,CART.ALBUM,CART.YEAR,\ -CART.LABEL,CART.CLIENT,CART.AGENCY,CART.USER_DEFINED,\ -CART.CONDUCTOR,CART.SONG_ID,\ -CART.FORCED_LENGTH,CART.CUT_QUANTITY,CART.LAST_CUT_PLAYED,CART.PLAY_ORDER,\ -CART.ENFORCE_LENGTH,CART.PRESERVE_PITCH ,`%s`.TYPE,`%s`.COMMENT,\ -`%s`.LABEL,`%s`.GRACE_TIME,`%s`.POST_POINT,`%s`.SOURCE,\ -`%s`.EXT_START_TIME,`%s`.EXT_LENGTH,`%s`.EXT_DATA,`%s`.EXT_EVENT_ID,\ -`%s`.EXT_ANNC_TYPE,`%s`.EXT_CART_NAME,CART.ASYNCRONOUS,`%s`.FADEUP_POINT,\ -`%s`.FADEUP_GAIN,`%s`.FADEDOWN_POINT,`%s`.FADEDOWN_GAIN,`%s`.SEGUE_GAIN,\ -CART.PUBLISHER,CART.COMPOSER,CART.USAGE_CODE,CART.AVERAGE_SEGUE_LENGTH,\ -`%s`.LINK_EVENT_NAME,`%s`.LINK_START_TIME,`%s`.LINK_LENGTH,`%s`.LINK_ID, \ -`%s`.LINK_EMBEDDED,`%s`.ORIGIN_USER,`%s`.ORIGIN_DATETIME,CART.VALIDITY, \ -`%s`.LINK_START_SLOP,`%s`.LINK_END_SLOP, \ -`%s`.DUCK_UP_GAIN,`%s`.DUCK_DOWN_GAIN,CART.START_DATETIME,CART.END_DATETIME,\ -`%s`.EVENT_LENGTH,CART.USE_EVENT_LENGTH,CART.NOTES \ -from `%s` left join CART on `%s`.CART_NUMBER=CART.NUMBER order by COUNT", - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table, - (const char *)log_table); - q=new RDSqlQuery(sql); - if(q->size()<=0) { - delete q; - return 0; - } - for(int i=0;isize();i++) { - lines++; - line.clear(); - q->next(); - line.setType((RDLogLine::Type)q->value(27).toInt()); // Type - line.setId(q->value(0).toInt()+id_offset); // Log Line ID - if((q->value(0).toInt()+id_offset)>log_max_id) { - log_max_id=q->value(0).toInt()+id_offset; - } - line.setStartTime(RDLogLine::Imported, - QTime().addMSecs(q->value(2).toInt())); // Start Time - line.setStartTime(RDLogLine::Logged, - QTime().addMSecs(q->value(2).toInt())); - line. - setTimeType((RDLogLine::TimeType)q->value(3).toInt()); // Time Type - if((line.timeType()==RDLogLine::Hard)&& - (q->value(31).toString()==QString("Y"))) { // Post Point - } - line. - setTransType((RDLogLine::TransType)q->value(4).toInt()); // Trans Type - line.setMarkerComment(q->value(28).toString()); // Comment - line.setMarkerLabel(q->value(29).toString()); // Label - line.setGraceTime(q->value(30).toInt()); // Grace Time - line.setUseEventLength(RDBool(q->value(64).toString())); // Use Event Length - line.setEventLength(q->value(63).toInt()); // Event Length - line.setSource((RDLogLine::Source)q->value(32).toUInt()); - line.setLinkEventName(q->value(49).toString()); // Link Event Name - line.setLinkStartTime(QTime().addMSecs(q->value(50).toInt())); // Link Start Time - line.setLinkLength(q->value(51).toInt()); // Link Length - line.setLinkStartSlop(q->value(57).toInt()); // Link Start Slop - line.setLinkEndSlop(q->value(58).toInt()); // Link End Slop - line.setLinkId(q->value(52).toInt()); // Link ID - line.setLinkEmbedded(RDBool(q->value(53).toString())); // Link Embedded - line.setOriginUser(q->value(54).toString()); // Origin User - line.setOriginDateTime(q->value(55).toDateTime()); // Origin DateTime - switch(line.type()) { - case RDLogLine::Cart: - line.setCartNumber(q->value(1).toUInt()); // Cart Number - line.setStartPoint(q->value(5).toInt(),RDLogLine::LogPointer); - line.setEndPoint(q->value(6).toInt(),RDLogLine::LogPointer); - line.setSegueStartPoint(q->value(7).toInt(),RDLogLine::LogPointer); - line.setSegueEndPoint(q->value(8).toInt(),RDLogLine::LogPointer); - line.setCartType((RDCart::Type)q->value(9).toInt()); // Cart Type - line.setGroupName(q->value(10).toString()); // Group Name - line.setGroupColor(group_colors[q->value(10).toString()]); - line.setTitle(q->value(11).toString()); // Title - line.setArtist(q->value(12).toString()); // Artist - line.setPublisher(q->value(45).toString()); // Publisher - line.setComposer(q->value(46).toString()); // Composer - line.setAlbum(q->value(13).toString()); // Album - line.setYear(q->value(14).toDate()); // Year - line.setLabel(q->value(15).toString()); // Label - line.setClient(q->value(16).toString()); // Client - line.setAgency(q->value(17).toString()); // Agency - line.setUserDefined(q->value(18).toString()); // User Defined - line.setCartNotes(q->value(65).toString()); // Cart Notes - line.setConductor(q->value(19).toString()); // Conductor - line.setSongId(q->value(20).toString()); // Song ID - line.setUsageCode((RDCart::UsageCode)q->value(47).toInt()); - line.setForcedLength(q->value(21).toUInt()); // Forced Length - if(q->value(7).toInt()<0) { - line.setAverageSegueLength(q->value(48).toInt()); - } - else { - line. - setAverageSegueLength(q->value(7).toInt()-q->value(5).toInt()); - } - line.setCutQuantity(q->value(22).toUInt()); // Cut Quantity - line.setLastCutPlayed(q->value(23).toUInt()); // Last Cut Played - line. - setPlayOrder((RDCart::PlayOrder)q->value(24).toUInt()); // Play Ord - line. - setEnforceLength(RDBool(q->value(25).toString())); // Enforce Length - line. - setPreservePitch(RDBool(q->value(26).toString())); // Preserve Pitch - if(!q->value(33).isNull()) { // Ext Start Time - line.setExtStartTime(q->value(33).toTime()); - } - if(!q->value(34).isNull()) { // Ext Length - line.setExtLength(q->value(34).toInt()); - } - if(!q->value(35).isNull()) { // Ext Data - line.setExtData(q->value(35).toString()); - } - if(!q->value(36).isNull()) { // Ext Event ID - line.setExtEventId(q->value(36).toString()); - } - if(!q->value(37).isNull()) { // Ext Annc. Type - line.setExtAnncType(q->value(37).toString()); - } - if(!q->value(38).isNull()) { // Ext Cart Name - line.setExtCartName(q->value(38).toString()); - } - if(!q->value(40).isNull()) { // FadeUp Point - line.setFadeupPoint(q->value(40).toInt(),RDLogLine::LogPointer); - } - if(!q->value(41).isNull()) { // FadeUp Gain - line.setFadeupGain(q->value(41).toInt()); - } - if(!q->value(42).isNull()) { // FadeDown Point - line.setFadedownPoint(q->value(42).toInt(),RDLogLine::LogPointer); - } - if(!q->value(43).isNull()) { // FadeDown Gain - line.setFadedownGain(q->value(43).toInt()); - } - if(!q->value(44).isNull()) { // Segue Gain - line.setSegueGain(q->value(44).toInt()); - } - if(!q->value(59).isNull()) { // Duck Up Gain - line.setDuckUpGain(q->value(59).toInt()); - } - if(!q->value(60).isNull()) { // Duck Down Gain - line.setDuckDownGain(q->value(60).toInt()); - } - if(!q->value(61).isNull()) { // Start Datetime - line.setStartDatetime(q->value(61).toDateTime()); - } - if(!q->value(62).isNull()) { // End Datetime - line.setEndDatetime(q->value(62).toDateTime()); - } - line.setValidity((RDCart::Validity)q->value(56).toInt()); // Validity - break; - - case RDLogLine::Macro: - line.setCartNumber(q->value(1).toUInt()); // Cart Number - line.setCartType((RDCart::Type)q->value(9).toInt()); // Cart Type - line.setGroupName(q->value(10).toString()); // Group Name - line.setGroupColor(group_colors[q->value(10).toString()]); - line.setTitle(q->value(11).toString()); // Title - line.setArtist(q->value(12).toString()); // Artist - line.setPublisher(q->value(45).toString()); // Publisher - line.setComposer(q->value(46).toString()); // Composer - line.setAlbum(q->value(13).toString()); // Album - line.setYear(q->value(14).toDate()); // Year - line.setLabel(q->value(15).toString()); // Label - line.setClient(q->value(16).toString()); // Client - line.setAgency(q->value(17).toString()); // Agency - line.setUserDefined(q->value(18).toString()); // User Defined - line.setCartNotes(q->value(65).toString()); // Cart Notes - line.setForcedLength(q->value(21).toUInt()); // Forced Length - line.setAverageSegueLength(q->value(21).toInt()); - if(!q->value(33).isNull()) { // Ext Start Time - line.setExtStartTime(q->value(33).toTime()); - } - if(!q->value(34).isNull()) { // Ext Length - line.setExtLength(q->value(34).toInt()); - } - if(!q->value(35).isNull()) { // Ext Data - line.setExtData(q->value(35).toString()); - } - if(!q->value(36).isNull()) { // Ext Event ID - line.setExtEventId(q->value(36).toString()); - } - if(!q->value(37).isNull()) { // Ext Annc. Type - line.setExtAnncType(q->value(37).toString()); - } - if(!q->value(38).isNull()) { // Ext Cart Name - line.setExtCartName(q->value(38).toString()); - } - if(!q->value(39).isNull()) { // Asyncronous - line.setAsyncronous(RDBool(q->value(39).toString())); - } - break; - - case RDLogLine::Marker: - break; - - case RDLogLine::Track: - break; - - case RDLogLine::Chain: - sql= - QString().sprintf("select DESCRIPTION from LOGS where NAME=\"%s\"", - (const char *)line.markerLabel()); - q1=new RDSqlQuery(sql); - if(q1->first()) { - line.setMarkerComment(q1->value(0).toString()); - } - delete q1; - break; - - default: - break; - } - - line.setHasCustomTransition(prev_custom||(q->value(5).toInt()>=0)||\ - (q->value(40).toInt()>=0)); - if(line.type()==RDLogLine::Cart) { - prev_custom=(q->value(6).toInt()>=0)||(q->value(7).toInt()>=0)|| - (q->value(8).toInt()>=0)||(q->value(42).toInt()>=0); - } - else { - prev_custom=false; - } - -// printf("LINE: %u START: %d END: %d S_START: %d S_END: %d FD_UP: %d FD_DN: %d\n", -// log_line.size(), -// q->value(5).toInt(), -// q->value(6).toInt(), -// q->value(7).toInt(), -// q->value(8).toInt(), -// q->value(38).toInt(), -// q->value(40).toInt()); - - line.clearModified(); - log_line.push_back(new RDLogLine(line)); - } - delete q; - - LoadNowNext(start_line); - - if(track_ptrs) { - // - // Load default cart pointers for "representative" cuts. This is - // really only useful when setting up a voice tracker. - // - for(int i=start_line;icartType()==RDCart::Audio) { - sql=QString("select START_POINT,END_POINT,")+ - "SEGUE_START_POINT,SEGUE_END_POINT,"+ - "TALK_START_POINT,TALK_END_POINT," - "HOOK_START_POINT,HOOK_END_POINT,"+ - "FADEUP_POINT,FADEDOWN_POINT,CUT_NAME,"+ - "ORIGIN_NAME,ORIGIN_DATETIME from CUTS "+ - QString().sprintf("where CART_NUMBER=%u ",ll->cartNumber())+ - "order by CUT_NAME"; - q=new RDSqlQuery(sql); - if(q->first()) { - ll->setStartPoint(q->value(0).toInt(),RDLogLine::CartPointer); - ll->setEndPoint(q->value(1).toInt(),RDLogLine::CartPointer); - ll->setSegueStartPoint(q->value(2).toInt(),RDLogLine::CartPointer); - ll->setSegueEndPoint(q->value(3).toInt(),RDLogLine::CartPointer); - ll->setTalkStartPoint(q->value(4).toInt()); - ll->setTalkEndPoint(q->value(5).toInt()); - ll->setHookStartPoint(q->value(6).toInt()); - ll->setHookEndPoint(q->value(7).toInt()); - ll->setFadeupPoint(q->value(8).toInt(),RDLogLine::CartPointer); - ll->setFadedownPoint(q->value(9).toInt(),RDLogLine::CartPointer); - ll->setCutNumber(RDCut::cutNumber(q->value(10).toString())); - ll->setOriginUser(q->value(11).toString()); - ll->setOriginDateTime(q->value(12).toDateTime()); - } - delete q; - } - } - } - - return lines; -} -*/ - int RDLogEvent::LoadLines(int id_offset,bool track_ptrs) { @@ -1447,9 +1063,8 @@ int RDLogEvent::LoadLines(int id_offset,bool track_ptrs) break; case RDLogLine::Chain: - sql= - QString().sprintf("select DESCRIPTION from LOGS where NAME=\"%s\"", - (const char *)line.markerLabel()); + sql=QString("select DESCRIPTION from LOGS where ")+ + "NAME=\""+RDEscapeString(line.markerLabel())+"\""; q1=new RDSqlQuery(sql); if(q1->first()) { line.setMarkerComment(q1->value(0).toString()); @@ -1622,57 +1237,6 @@ void RDLogEvent::InsertLineValues(QString *query, int line) QString().sprintf("%d,",ll->duckUpGain())+ QString().sprintf("%d,",ll->duckDownGain())+ QString().sprintf("%d)",ll->eventLength()); - /* - QString sql=QString().sprintf("(%d,%d,%u,%d,%d,%d,%d,%d,%d,%d,%d,\"%s\",\"%s\",%d,%d,%s,%d,\"%s\",\"%s\",\"%s\",\"%s\",%d,%d,%d,%d,%d,\"%s\",%d,%d,%d,\"%s\",\"%s\",%s,%d,%d,%d,%d,%d)", - log_line[line]->id(), - line, - log_line[line]->cartNumber(), - QTime().msecsTo(log_line[line]-> - startTime(RDLogLine::Logged)), - (int)log_line[line]->timeType(), - (int)log_line[line]->transType(), - log_line[line]->startPoint(RDLogLine::LogPointer), - log_line[line]->endPoint(RDLogLine::LogPointer), - log_line[line]->segueStartPoint(RDLogLine::LogPointer), - log_line[line]->segueEndPoint(RDLogLine::LogPointer), - log_line[line]->type(), - (const char *) - RDEscapeString(log_line[line]->markerComment()), - (const char *) - RDEscapeString(log_line[line]->markerLabel()), - log_line[line]->graceTime(), - log_line[line]->source(), - (const char *)RDCheckDateTime( - log_line[line]->extStartTime(),"hh:mm:ss"), - log_line[line]->extLength(), - (const char *)RDEscapeString(log_line[line]->extData()), - (const char *) - RDEscapeString(log_line[line]->extEventId()), - (const char *) - RDEscapeString(log_line[line]->extAnncType()), - (const char *) - RDEscapeString(log_line[line]->extCartName()), - log_line[line]->fadeupPoint(RDLogLine::LogPointer), - log_line[line]->fadeupGain(), - log_line[line]->fadedownPoint(RDLogLine::LogPointer), - log_line[line]->fadedownGain(), - log_line[line]->segueGain(), - (const char *) - RDEscapeString(log_line[line]->linkEventName()), - QTime().msecsTo(log_line[line]->linkStartTime()), - log_line[line]->linkLength(), - log_line[line]->linkId(), - (const char *)RDYesNo(log_line[line]->linkEmbedded()), - (const char *) - RDEscapeString(log_line[line]->originUser()), - (const char *)RDCheckDateTime( - log_line[line]->originDateTime(),"yyyy-MM-dd hh:mm:ss"), - log_line[line]->linkStartSlop(), - log_line[line]->linkEndSlop(), - log_line[line]->duckUpGain(), - log_line[line]->duckDownGain(), - log_line[line]->eventLength()); - */ *query += sql; } diff --git a/lib/rdlogedit_conf.cpp b/lib/rdlogedit_conf.cpp index 5984c329..24bd78ac 100644 --- a/lib/rdlogedit_conf.cpp +++ b/lib/rdlogedit_conf.cpp @@ -2,7 +2,7 @@ // // Abstract an RDLogedit Configuration. // -// (C) Copyright 2002-2005,2016 Fred Gleason +// (C) Copyright 2002-2005,2016-2018 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -32,13 +32,13 @@ RDLogeditConf::RDLogeditConf(const QString &station) lib_station=station; - sql=QString().sprintf("select ID from RDLOGEDIT where STATION=\"%s\"", - (const char *)RDEscapeString(lib_station)); + sql=QString("select ID from RDLOGEDIT where ")+ + "STATION=\""+RDEscapeString(lib_station)+"\""; q=new RDSqlQuery(sql); if(!q->first()) { delete q; - sql=QString().sprintf("insert into RDLOGEDIT set STATION=\"%s\"", - (const char *)RDEscapeString(lib_station)); + sql=QString("insert into RDLOGEDIT set ")+ + "STATION=\""+RDEscapeString(lib_station)+"\""; q=new RDSqlQuery(sql); } delete q; @@ -321,10 +321,9 @@ void RDLogeditConf::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE RDLOGEDIT SET %s=%d WHERE STATION=\"%s\"", - (const char *)param, - value, - (const char *)RDEscapeString(lib_station)); + sql=QString().sprintf("update RDLOGEDIT set ")+ + param+QString().sprintf("=%d where ",value)+ + "STATION=\""+RDEscapeString(lib_station)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -335,10 +334,9 @@ void RDLogeditConf::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE RDLOGEDIT SET %s=%d WHERE STATION=\"%s\"", - (const char *)param, - value, - (const char *)RDEscapeString(lib_station)); + sql=QString("update RDLOGEDIT set ")+ + param+QString().sprintf("=%d where ",value)+ + "STATION=\""+RDEscapeString(lib_station)+"\"", q=new RDSqlQuery(sql); delete q; } @@ -349,10 +347,9 @@ void RDLogeditConf::SetRow(const QString ¶m,bool value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update RDLOGEDIT set %s=\"%s\" where STATION=\"%s\"", - (const char *)param, - (const char *)RDYesNo(value), - (const char *)RDEscapeString(lib_station)); + sql=QString("update RDLOGEDIT set ")+ + param+"=\""+RDYesNo(value)+"\" where "+ + "STATION=\""+RDEscapeString(lib_station)+"\""; q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdmatrix.cpp b/lib/rdmatrix.cpp index 61943747..780274a5 100644 --- a/lib/rdmatrix.cpp +++ b/lib/rdmatrix.cpp @@ -482,12 +482,10 @@ QString RDMatrix::inputName(int input) const RDMatrix::Mode RDMatrix::inputMode(int input) const { - QString sql=QString().sprintf("select CHANNEL_MODE from INPUTS where \ - STATION_NAME=\"%s\" && \ - MATRIX=%d && NUMBER=%d", - (const char *)mx_station, - mx_number, - input); + QString sql=QString("select CHANNEL_MODE from INPUTS where ")+ + "STATION_NAME=\""+RDEscapeString(mx_station)+"\" && "+ + QString().sprintf("MATRIX=%d && ",mx_number)+ + QString().sprintf("NUMBER=%d",input); RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -793,13 +791,10 @@ int RDMatrix::defaultControlValue(RDMatrix::Type type, QString RDMatrix::GetEndpointName(int pointnum,const QString &table) const { - QString sql=QString().sprintf("select NAME from %s where \ - STATION_NAME=\"%s\" && \ - MATRIX=%d && NUMBER=%d", - (const char *)table, - (const char *)mx_station, - mx_number, - pointnum); + QString sql=QString("select NAME from ")+table+" where "+ + "STATION_NAME=\""+RDEscapeString(mx_station)+"\" && "+ + QString().sprintf("MATRIX=%d && ",mx_number)+ + QString().sprintf("NUMBER=%d",pointnum); RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -814,11 +809,9 @@ QString RDMatrix::GetEndpointName(int pointnum,const QString &table) const QVariant RDMatrix::GetRow(const QString ¶m) const { QVariant var; - QString sql=QString().sprintf("select %s from MATRICES where \ - STATION_NAME=\"%s\" && MATRIX=%d", - (const char *)RDEscapeString(param), - (const char *)mx_station, - mx_number); + QString sql=QString("select ")+param+" from MATRICES where "+ + "STATION_NAME=\""+RDEscapeString(mx_station)+"\" && "+ + QString().sprintf("MATRIX=%d",mx_number); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { var=q->value(0); @@ -833,12 +826,10 @@ void RDMatrix::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE MATRICES SET %s=\"%s\" \ - WHERE STATION_NAME=\"%s\" && MATRIX=%d", - (const char *)RDEscapeString(param), - (const char *)RDEscapeString(value), - (const char *)mx_station, - mx_number); + sql=QString("update MATRICES set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "STATION_NAME=\""+RDEscapeString(mx_station)+"\" && "+ + QString().sprintf("MATRIX=%d",mx_number); q=new RDSqlQuery(sql); delete q; } @@ -849,12 +840,10 @@ void RDMatrix::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE MATRICES SET %s=%d \ - WHERE STATION_NAME=\"%s\" && MATRIX=%d", - (const char *)RDEscapeString(param), - value, - (const char *)mx_station, - mx_number); + sql=QString("update MATRICES set ")+ + param+QString().sprintf("=%d where ",value)+ + "STATION_NAME=\""+RDEscapeString(mx_station)+"\" && "+ + QString().sprintf("MATRIX=%d",mx_number); q=new RDSqlQuery(sql); delete q; } @@ -865,12 +854,10 @@ void RDMatrix::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE MATRICES SET %s=%u \ - WHERE STATION_NAME=\"%s\" && MATRIX=%d", - (const char *)RDEscapeString(param), - value, - (const char *)mx_station, - mx_number); - q=new RDSqlQuery(sql); + sql=QString("update MATRICES set ")+ + param+QString().sprintf("=%u where ",value)+ + "STATION_NAME=\""+RDEscapeString(mx_station)+"\" && "+ + QString().sprintf("MATRIX=%d",mx_number); + q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdpeaksexport.cpp b/lib/rdpeaksexport.cpp index 241341de..4db815ea 100644 --- a/lib/rdpeaksexport.cpp +++ b/lib/rdpeaksexport.cpp @@ -96,14 +96,11 @@ RDPeaksExport::ErrorCode RDPeaksExport::runExport(const QString &username, // // Generate POST Data // - QString post=QString(). - sprintf("COMMAND=%d&LOGIN_NAME=%s&PASSWORD=%s&CART_NUMBER=%u&CUT_NUMBER=%u", - RDXPORT_COMMAND_EXPORT_PEAKS, - (const char *)RDFormPost::urlEncode(username), - (const char *)RDFormPost::urlEncode(password), - conv_cart_number, - conv_cut_number); - + QString post=QString().sprintf("COMMAND=%d&",RDXPORT_COMMAND_EXPORT_PEAKS)+ + "LOGIN_NAME="+RDFormPost::urlEncode(username)+"&"+ + "PASSWORD="+RDFormPost::urlEncode(password)+"&"+ + QString().sprintf("CART_NUMBER=%u&",conv_cart_number)+ + QString().sprintf("CUT_NUMBER=%u",conv_cut_number); if((curl=curl_easy_init())==NULL) { return RDPeaksExport::ErrorInternal; } diff --git a/lib/rdpodcast.cpp b/lib/rdpodcast.cpp index 086c9cff..6c4fc5f5 100644 --- a/lib/rdpodcast.cpp +++ b/lib/rdpodcast.cpp @@ -311,9 +311,7 @@ bool RDPodcast::removeAudio(RDFeed *feed,QString *err_text,bool log_debug) const url=new QUrl(feed->purgeUrl()); strncpy(urlstr,(const char *)(url->protocol()+"://"+url->host()+"/"),1024); curl_easy_setopt(curl,CURLOPT_URL,urlstr); - strncpy(userpwd,(const char *)QString(). - sprintf("%s:%s",(const char *)feed->purgeUsername(), - (const char *)feed->purgePassword()),256); + strncpy(userpwd,feed->purgeUsername()+":"+feed->purgePassword(),256); curl_easy_setopt(curl,CURLOPT_USERPWD,userpwd); curl_easy_setopt(curl,CURLOPT_HTTPAUTH,CURLAUTH_ANY); curl_easy_setopt(curl,CURLOPT_USERAGENT, @@ -362,17 +360,14 @@ bool RDPodcast::removeAudio(RDFeed *feed,QString *err_text,bool log_debug) const QString RDPodcast::guid(const QString &url,const QString &filename, unsigned feed_id,unsigned cast_id) { - return QString().sprintf("%s/%s_%06u_%06u", - (const char *)url,(const char *)filename, - feed_id,cast_id); + return url+"/"+filename+QString().sprintf("_%06u_%06u",feed_id,cast_id); } QString RDPodcast::guid(const QString &full_url,unsigned feed_id, unsigned cast_id) { - return QString().sprintf("%s_%06u_%06u", - (const char *)full_url,feed_id,cast_id); + return full_url+QString().sprintf("_%06u_%06u",feed_id,cast_id); } @@ -381,10 +376,9 @@ void RDPodcast::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE PODCASTS SET %s=%d WHERE ID=%u", - (const char *)param, - value, - podcast_id); + sql=QString("update PODCASTS set ")+ + param+QString().sprintf("=%d where ",value)+ + QString().sprintf("ID=%u",podcast_id); q=new RDSqlQuery(sql); delete q; } @@ -395,10 +389,9 @@ void RDPodcast::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE PODCASTS SET %s=\"%s\" WHERE ID=%u", - (const char *)param, - (const char *)RDEscapeString(value), - podcast_id); + sql=QString("update PODCASTS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + QString().sprintf("ID=%u",podcast_id); q=new RDSqlQuery(sql); delete q; } @@ -410,10 +403,9 @@ void RDPodcast::SetRow(const QString ¶m,const QDateTime &value, RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE PODCASTS SET %s=%s WHERE ID=%u", - (const char *)param, - (const char *)RDCheckDateTime(value, format), - podcast_id); + sql=QString("update PODCASTS set ")+ + param+"="+RDCheckDateTime(value, format)+" where "+ + QString().sprintf("ID=%u",podcast_id); q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdrecording.cpp b/lib/rdrecording.cpp index ac6388a9..8e0f7d34 100644 --- a/lib/rdrecording.cpp +++ b/lib/rdrecording.cpp @@ -642,8 +642,8 @@ void RDRecording::setFeedId(int id) const void RDRecording::setFeedId(const QString &keyname) const { - QString sql=QString().sprintf("select ID from FEEDS where KEY_NAME=\"%s\"", - (const char *)keyname); + QString sql=QString("select ID from FEEDS where ")+ + "KEY_NAME=\""+RDEscapeString(keyname)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { setFeedId(q->value(0).toInt()); @@ -781,8 +781,9 @@ int RDRecording::GetIntValue(QString field) const RDSqlQuery *q; int accum; - sql=QString().sprintf("select %s from RECORDINGS where ID=%d", - (const char *)field,rec_id); + sql=QString("select ")+ + field+" from RECORDINGS where "+ + QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toInt(); @@ -800,8 +801,9 @@ unsigned RDRecording::GetUIntValue(QString field) const RDSqlQuery *q; int accum; - sql=QString().sprintf("select %s from RECORDINGS where ID=%d", - (const char *)field,rec_id); + sql=QString("select ")+ + field+" from RECORDINGS where "+ + QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toUInt(); @@ -819,8 +821,9 @@ bool RDRecording::GetBoolValue(QString field) const RDSqlQuery *q; bool state; - sql=QString().sprintf("select %s from RECORDINGS where ID=%d", - (const char *)field,rec_id); + sql=QString("select ")+ + field+" from RECORDINGS where "+ + QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); if(q->first()) { state=RDBool(q->value(0).toString()); @@ -838,8 +841,9 @@ QString RDRecording::GetStringValue(QString field) const RDSqlQuery *q; QString accum; - sql=QString().sprintf("select %s from RECORDINGS where ID=%d", - (const char *)field,rec_id); + sql=QString("select ")+ + field+" from RECORDINGS where "+ + QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toString(); @@ -857,8 +861,9 @@ QTime RDRecording::GetTimeValue(QString field) const RDSqlQuery *q; QTime accum; - sql=QString().sprintf("select %s from RECORDINGS where ID=%d", - (const char *)field,rec_id); + sql=QString("select ")+ + field+" from RECORDINGS where "+ + QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toTime(); @@ -897,8 +902,9 @@ void RDRecording::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update RECORDINGS set %s=%d where ID=%d", - (const char *)param,value,rec_id); + sql=QString("update RECORDINGS set ")+ + param+QString().sprintf("=%d where ",value)+ + QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); delete q; } @@ -909,8 +915,9 @@ void RDRecording::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update RECORDINGS set %s=%u where ID=%d", - (const char *)param,value,rec_id); + sql=QString("update RECORDINGS set ")+ + param+QString().sprintf("=%u where ",value)+ + QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); delete q; } @@ -921,9 +928,9 @@ void RDRecording::SetRow(const QString ¶m,bool value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update RECORDINGS set %s=\'%s\' where ID=%d", - (const char *)param,(const char *)RDYesNo(value), - rec_id); + sql=QString("update RECORDINGS set ")+ + param+"=\""+RDYesNo(value)+"\" where "+ + QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); delete q; } @@ -934,10 +941,9 @@ void RDRecording::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update RECORDINGS set %s=\"%s\" where ID=%d", - (const char *)param, - (const char *)RDEscapeString(value), - rec_id); + sql=QString("update RECORDINGS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); delete q; } @@ -948,9 +954,9 @@ void RDRecording::SetRow(const QString ¶m,const QTime &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update RECORDINGS set %s=%s where ID=%d", - (const char *)param, - (const char *)RDCheckDateTime(value,"hh:mm:ss"),rec_id); + sql=QString("update RECORDINGS set ")+ + param+"="+RDCheckDateTime(value,"hh:mm:ss")+" where "+ + QString().sprintf("ID=%d",rec_id); q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdrehash.cpp b/lib/rdrehash.cpp index ccb2d7bc..a9d673d6 100644 --- a/lib/rdrehash.cpp +++ b/lib/rdrehash.cpp @@ -74,12 +74,11 @@ RDRehash::ErrorCode RDRehash::runRehash(const QString &username, // // Generate POST Data // - QString post=QString().sprintf("COMMAND=%d&LOGIN_NAME=%s&PASSWORD=%s&CART_NUMBER=%u&CUT_NUMBER=%u", - RDXPORT_COMMAND_REHASH, - (const char *)RDFormPost::urlEncode(username), - (const char *)RDFormPost::urlEncode(password), - conv_cart_number, - conv_cut_number); + QString post=QString().sprintf("COMMAND=%d&",RDXPORT_COMMAND_REHASH)+ + "LOGIN_NAME="+RDFormPost::urlEncode(username)+"&"+ + "PASSWORD="+RDFormPost::urlEncode(password)+"&"+ + QString().sprintf("CART_NUMBER=%u&",conv_cart_number)+ + QString().sprintf("CUT_NUMBER=%u",conv_cut_number); if((curl=curl_easy_init())==NULL) { return RDRehash::ErrorInternal; } diff --git a/lib/rdreplicator.cpp b/lib/rdreplicator.cpp index 04cc32e1..21e7da8f 100644 --- a/lib/rdreplicator.cpp +++ b/lib/rdreplicator.cpp @@ -216,9 +216,9 @@ QString RDReplicator::typeString(RDReplicator::Type type) QVariant RDReplicator::GetValue(const QString &field) const { QVariant ret; - QString sql=QString().sprintf("select %s from REPLICATORS where NAME=\"%s\"", - (const char *)field, - (const char *)RDEscapeString(replicator_name)); + QString sql=QString("select ")+ + field+" from REPLICATORS where "+ + "NAME=\""+RDEscapeString(replicator_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0); @@ -233,11 +233,10 @@ void RDReplicator::SetRow(const QString ¶m,QString value) const RDSqlQuery *q; QString sql; - value.replace("\\","\\\\"); // Needed to preserve Windows pathnames - sql=QString().sprintf("update REPLICATORS set %s=\"%s\" where NAME=\"%s\"", - (const char *)param, - (const char *)RDEscapeString(value), - (const char *)RDEscapeString(replicator_name)); + // value.replace("\\","\\\\"); // Needed to preserve Windows pathnames + sql=QString("update REPLICATORS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "NAME=\""+RDEscapeString(replicator_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -248,10 +247,9 @@ void RDReplicator::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update REPLICATORS set %s=%d where NAME=\"%s\"", - (const char *)param, - value, - (const char *)RDEscapeString(replicator_name)); + sql=QString("update REPLICATORS set ")+ + param+QString().sprintf("=%d where ",value)+ + "NAME=\""+RDEscapeString(replicator_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -262,10 +260,9 @@ void RDReplicator::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update REPLICATORS set %s=%u where NAME=\"%s\"", - (const char *)param, - value, - (const char *)RDEscapeString(replicator_name)); + sql=QString("update REPLICATORS set ")+ + param+QString().sprintf("=%u where ",value)+ + "NAME=\""+RDEscapeString(replicator_name)+"\""; q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdreport.cpp b/lib/rdreport.cpp index 3313a200..13a79e2b 100644 --- a/lib/rdreport.cpp +++ b/lib/rdreport.cpp @@ -48,10 +48,9 @@ QString RDReport::name() const bool RDReport::exists() const { - RDSqlQuery *q=new RDSqlQuery(QString().sprintf("select NAME from REPORTS\ - where NAME=\"%s\"", - (const char *) - RDEscapeString(report_name))); + QString sql=QString("select NAME from REPORTS where ")+ + "NAME=\""+RDEscapeString(report_name)+"\""; + RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; return false; @@ -374,13 +373,13 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, // // Generate the Station List // - sql=QString().sprintf("select STATION_NAME from REPORT_STATIONS \ - where REPORT_NAME=\"%s\"", - (const char *)name()); + sql=QString("select STATION_NAME from REPORT_STATIONS where ")+ + "REPORT_NAME=\""+RDEscapeString(name())+"\""; q=new RDSqlQuery(sql); while(q->next()) { - station_sql+=QString().sprintf("(STATION_NAME=\"%s\")||", - (const char *)q->value(0).toString()); + station_sql+= + QString("(STATION_NAME=\"")+ + RDEscapeString(q->value(0).toString())+"\")||"; } delete q; station_sql=station_sql.left(station_sql.length()-2); @@ -403,25 +402,23 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, } } if(filterGroups()) { - QString sql2=QString().sprintf("select GROUP_NAME from REPORT_GROUPS \ - where REPORT_NAME=\"%s\"", - (const char *)RDEscapeString(name())); + QString sql2=QString("select GROUP_NAME from REPORT_GROUPS where ")+ + "REPORT_NAME=\""+RDEscapeString(name())+"\""; q=new RDSqlQuery(sql2); while(q->next()) { if(!where) { sql+="where "; where=true; } - sql+=QString().sprintf("(NAME=\"%s\")||", - (const char *)RDEscapeString(q->value(0).toString())); + sql+=QString("(NAME=\"")+RDEscapeString(q->value(0).toString())+"\")||"; } delete q; } sql=sql.left(sql.length()-2); q=new RDSqlQuery(sql); while(q->next()) { - group_sql+=QString().sprintf("(CART.GROUP_NAME=\"%s\")||", - (const char *)q->value(0).toString()); + group_sql+=QString("(CART.GROUP_NAME=\"")+ + RDEscapeString(q->value(0).toString())+"\")||"; } delete q; group_sql=group_sql.left(group_sql.length()-2); @@ -680,7 +677,6 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, report_station,report_config,serviceName()); #endif system(post_cmd); - // printf("MIXDOWN TABLE: %s_SRT\n",(const char *)mixname); sql=QString("delete from ELR_LINES where ")+ "SERVICE_NAME=\""+RDEscapeString(mixname)+"\""; RDSqlQuery::apply(sql); @@ -869,10 +865,9 @@ void RDReport::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE REPORTS SET %s=\"%s\" WHERE NAME=\"%s\"", - (const char *)param, - (const char *)RDEscapeString(value), - (const char *)report_name); + sql=QString("update REPORTS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "NAME=\""+RDEscapeString(report_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -883,10 +878,9 @@ void RDReport::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE REPORTS SET %s=%d WHERE NAME=\"%s\"", - (const char *)param, - value, - (const char *)report_name); + sql=QString("update REPORTS set ")+ + param+QString().sprintf("=%d where ",value)+ + "NAME=\""+RDEscapeString(report_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -897,10 +891,9 @@ void RDReport::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE REPORTS SET %s=%u WHERE NAME=\"%s\"", - (const char *)param, - value, - (const char *)report_name); + sql=QString("update REPORTS set ")+ + param+QString().sprintf("=%u where ",value)+ + "NAME=\""+RDEscapeString(report_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -911,10 +904,9 @@ void RDReport::SetRow(const QString ¶m,bool value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE REPORTS SET %s=\"%s\" WHERE NAME=\"%s\"", - (const char *)param, - (const char *)RDYesNo(value), - (const char *)report_name); + sql=QString("update REPORTS set ")+ + param+"=\""+RDYesNo(value)+"\" where "+ + "NAME=\""+RDEscapeString(report_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -925,10 +917,9 @@ void RDReport::SetRow(const QString ¶m,const QTime &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE REPORTS SET %s=%s WHERE NAME=\"%s\"", - (const char *)param, - (const char *)RDCheckDateTime(value, "hh:mm:ss"), - (const char *)report_name); + sql=QString("update REPORTS set ")+ + param+"="+RDCheckDateTime(value, "hh:mm:ss")+" where "+ + "NAME=\""+RDEscapeString(report_name)+"\""; q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdripc.cpp b/lib/rdripc.cpp index 43e93a73..6dbec7da 100644 --- a/lib/rdripc.cpp +++ b/lib/rdripc.cpp @@ -24,9 +24,10 @@ #include #include -#include -#include -#include +#include "rddatedecode.h" +#include "rddb.h" +#include "rdescape_string.h" +#include "rdripc.h" //RDRipc::RDRipc(QString stationname,QObject *parent) RDRipc::RDRipc(RDStation *station,RDConfig *config,QObject *parent) @@ -164,9 +165,8 @@ void RDRipc::sendRml(RDMacro *macro) } macro->generateString(buffer,RD_RML_MAX_LENGTH-1); QString rmlline(buffer); - QString sql=QString().sprintf("select NAME,VARVALUE from HOSTVARS \ - where STATION_NAME=\"%s\"", - (const char *)ripc_station->name()); + QString sql=QString("select NAME,VARVALUE from HOSTVARS where ")+ + "STATION_NAME=\""+RDEscapeString(ripc_station->name())+"\""; RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { rmlline.replace(q->value(0).toString(),q->value(1).toString()); diff --git a/lib/rdsettings.cpp b/lib/rdsettings.cpp index febf7173..ab386920 100644 --- a/lib/rdsettings.cpp +++ b/lib/rdsettings.cpp @@ -343,9 +343,9 @@ QString RDSettings::defaultExtension(const QString &stationname, RDSqlQuery *q; QString ret; - sql=QString().sprintf("select DEFAULT_EXTENSION from ENCODERS \ - where (ID=%d)&&(STATION_NAME=\"%s\")", - fmt,(const char *)RDEscapeString(stationname)); + sql=QString("select DEFAULT_EXTENSION from ENCODERS where ")+ + QString().sprintf("ID=%d)&&",fmt)+ + "(STATION_NAME=\""+RDEscapeString(stationname)+"\")"; q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toString(); diff --git a/lib/rdsimpleplayer.cpp b/lib/rdsimpleplayer.cpp index ce76beee..46755e57 100644 --- a/lib/rdsimpleplayer.cpp +++ b/lib/rdsimpleplayer.cpp @@ -18,9 +18,10 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include +#include "rdcart.h" +#include "rddb.h" +#include "rdescape_string.h" +#include "rdsimpleplayer.h" RDSimplePlayer::RDSimplePlayer(RDCae *cae,RDRipc *ripc,int card,int port, unsigned start_cart,unsigned end_cart, @@ -124,8 +125,12 @@ void RDSimplePlayer::play(int start_pos) return; } - sql=QString().sprintf("select START_POINT,END_POINT,PLAY_GAIN \ - from CUTS where CUT_NAME='%s'", (const char *)cut); + sql=QString("select ")+ + "START_POINT,"+ // 00 + "END_POINT,"+ // 01 + "PLAY_GAIN "+ // 02 + "from CUTS where "+ + "CUT_NAME=\""+RDEscapeString(cut)+"\""; q=new RDSqlQuery(sql); if(q->first()) { play_cut_gain=q->value(2).toInt(); diff --git a/lib/rdstation.cpp b/lib/rdstation.cpp index d7920d50..78a74826 100644 --- a/lib/rdstation.cpp +++ b/lib/rdstation.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Workstation. // -// (C) Copyright 2002-2010,2016 Fred Gleason +// (C) Copyright 2002-2010,2016-2018 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -20,16 +20,13 @@ #include -#include -#include -#include -#include -#include -#include +#include "rdairplay_conf.h" +#include "rdconf.h" +#include "rdstation.h" +#include "rd.h" +#include "rddb.h" +#include "rdescape_string.h" -// -// Global Classes -// RDStation::RDStation(const QString &name,bool create) { QString sql; @@ -1901,99 +1898,96 @@ void RDStation::remove(const QString &name) RDSqlQuery *q; RDSqlQuery *q1; - sql=QString().sprintf("delete from DECKS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); + sql=QString("delete from DECKS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; q=new RDSqlQuery(sql); delete q; sql=QString("delete from DECK_EVENTS where ")+ "STATION_NAME=\""+RDEscapeString(name)+"\""; q=new RDSqlQuery(sql); delete q; - sql=QString().sprintf("delete from TTYS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); + sql=QString("delete from TTYS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; q=new RDSqlQuery(sql); delete q; - sql=QString().sprintf("delete from RECORDINGS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); + sql=QString("delete from RECORDINGS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from SERVICE_PERMS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from RDAIRPLAY where ")+ + "STATION=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from RDAIRPLAY_CHANNELS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from RDPANEL where ")+ + "STATION=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from RDPANEL_CHANNELS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from RDLOGEDIT where ")+ + "STATION=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from MATRICES where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from INPUTS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from OUTPUTS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from VGUEST_RESOURCES where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from RDLIBRARY where ")+ + "STATION=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from GPIS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from HOSTVARS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; + q=new RDSqlQuery(sql); + delete q; + sql=QString("delete from STATIONS where ")+ + "NAME=\""+RDEscapeString(name)+"\""; q=new RDSqlQuery(sql); delete q; sql= - QString().sprintf("delete from SERVICE_PERMS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); + QString("delete from REPORT_STATIONS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; q=new RDSqlQuery(sql); delete q; - sql=QString().sprintf("delete from RDAIRPLAY where STATION=\"%s\"", - (const char *)RDEscapeString(name)); + sql=QString("delete from PANELS where ")+ + QString().sprintf("(TYPE=%d && ",RDAirPlayConf::StationPanel)+ + "OWNER=\""+RDEscapeString(name)+"\")"; q=new RDSqlQuery(sql); delete q; - sql=QString().sprintf("delete from RDAIRPLAY_CHANNELS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); + sql=QString("delete from EXTENDED_PANELS where ")+ + QString().sprintf("(TYPE=%d && ",RDAirPlayConf::StationPanel)+ + "OWNER=\""+RDEscapeString(name)+"\")"; q=new RDSqlQuery(sql); delete q; - sql=QString().sprintf("delete from RDPANEL where STATION=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from RDPANEL_CHANNELS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from RDLOGEDIT where STATION=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from MATRICES where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from INPUTS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from OUTPUTS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from VGUEST_RESOURCES where\ - STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from RDLIBRARY where STATION=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from GPIS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from HOSTVARS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from STATIONS where NAME=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql= - QString().sprintf("delete from REPORT_STATIONS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from PANELS where (TYPE=%d && OWNER=\"%s\")", - RDAirPlayConf::StationPanel, - (const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - sql=QString(). - sprintf("delete from EXTENDED_PANELS where (TYPE=%d && OWNER=\"%s\")", - RDAirPlayConf::StationPanel,(const char *)RDEscapeString(name)); - q=new RDSqlQuery(sql); - delete q; - - sql=QString().sprintf("select ID from ENCODERS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); + sql=QString("select ID from ENCODERS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; q=new RDSqlQuery(sql); while(q->next()) { sql=QString().sprintf("delete from ENCODER_CHANNELS where ENCODER_ID=%d", @@ -2010,15 +2004,14 @@ void RDStation::remove(const QString &name) delete q1; } delete q; - sql=QString().sprintf("delete from ENCODERS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); + sql=QString("delete from ENCODERS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; q=new RDSqlQuery(sql); delete q; - sql=QString().sprintf("delete from RDHOTKEYS where STATION_NAME=\"%s\"", - (const char *)RDEscapeString(name)); + sql=QString().sprintf("delete from RDHOTKEYS where ")+ + "STATION_NAME=\""+RDEscapeString(name)+"\""; q=new RDSqlQuery(sql); delete q; - sql=QString("delete from LOG_MODES where ")+ "STATION_NAME=\""+RDEscapeString(name)+"\""; q=new RDSqlQuery(sql); @@ -2071,10 +2064,9 @@ void RDStation::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE STATIONS SET %s=\"%s\" WHERE NAME=\"%s\"", - (const char *)param, - (const char *)RDEscapeString(value), - (const char *)RDEscapeString(station_name)); + sql=QString("update STATIONS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "NAME=\""+RDEscapeString(station_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -2085,10 +2077,9 @@ void RDStation::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE STATIONS SET %s=%d WHERE NAME=\"%s\"", - (const char *)param, - value, - (const char *)RDEscapeString(station_name)); + sql=QString().sprintf("update STATIONS set ")+ + param+QString().sprintf("=%d where ",value)+ + "NAME=\""+RDEscapeString(station_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -2099,10 +2090,9 @@ void RDStation::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE STATIONS SET %s=%u WHERE NAME=\"%s\"", - (const char *)param, - value, - (const char *)RDEscapeString(station_name)); + sql=QString("update STATIONS set ")+ + param+QString().sprintf("=%u where ",value)+ + "NAME=\""+RDEscapeString(station_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -2113,10 +2103,9 @@ void RDStation::SetRow(const QString ¶m,bool value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE STATIONS SET %s=\"%s\" WHERE NAME=\"%s\"", - (const char *)param, - (const char *)RDYesNo(value), - (const char *)RDEscapeString(station_name)); + sql=QString("update STATIONS set ")+ + param+"=\""+RDYesNo(value)+"\" where "+ + "NAME=\""+RDEscapeString(station_name)+"\""; q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdsvc.cpp b/lib/rdsvc.cpp index edb3737a..21c8b87c 100644 --- a/lib/rdsvc.cpp +++ b/lib/rdsvc.cpp @@ -341,11 +341,9 @@ QString RDSvc::importFilename(ImportSource src,const QDate &date) const #ifdef WIN32 os_flag="_WIN"; #endif - QString sql=QString().sprintf("select %s%s_PATH from SERVICES \ - where NAME=\"%s\"", - (const char *)src_str, - (const char *)os_flag, - (const char *)svc_name); + QString sql=QString("select ")+ + src_str+os_flag+"_PATH from SERVICES where "+ + "NAME=\""+RDEscapeString(svc_name)+"\""; QString ret; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { @@ -404,18 +402,13 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, // // Load Parser Parameters // - sql=QString().sprintf("select %s%s_PATH,\ - %s_LABEL_CART,\ - %s_TRACK_CART,\ - %s%s_PREIMPORT_CMD \ - from SERVICES where NAME=\"%s\"", - (const char *)src_str, - (const char *)os_flag, - (const char *)src_str, - (const char *)src_str, - (const char *)src_str, - (const char *)os_flag, - (const char *)RDEscapeString(svc_name)); + sql=QString("select ")+ + src_str+os_flag+"_PATH,"+ // 00 + src_str+"_LABEL_CART,"+ // 01 + src_str+"_TRACK_CART,"+ // 02 + src_str+os_flag+"_PREIMPORT_CMD "+ // 03 + "from SERVICES where "+ + "NAME=\""+RDEscapeString(svc_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -942,12 +935,9 @@ bool RDSvc::linkLog(RDSvc::ImportSource src,const QDate &date, else { cartname=q->value(3).toString(); } - link_report+= - QString().sprintf(" %s - %06u - %s\n", - (const char *)RDSvc::timeString(q->value(0).toInt(), - q->value(1).toInt()), - q->value(2).toUInt(), - (const char *)cartname); + link_report+=QString(" ")+ + RDSvc::timeString(q->value(0).toInt(),q->value(1).toInt())+ + QString().sprintf(" - %06u - ",q->value(2).toUInt())+cartname+"\n"; } delete q; link_report+="\n"; @@ -1101,11 +1091,9 @@ bool RDSvc::create(const QString &name,QString *err_msg, sql="select NAME from GROUPS"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString().sprintf("insert into AUDIO_PERMS set\ - GROUP_NAME=\"%s\",SERVICE_NAME=\"%s\"", - (const char *) - RDEscapeString(q->value(0).toString()), - (const char *)RDEscapeString(name)); + sql=QString("insert into AUDIO_PERMS set ")+ + "GROUP_NAME=\""+RDEscapeString(q->value(0).toString())+"\"," + "SERVICE_NAME=\""+RDEscapeString(name)+"\""; q1=new RDSqlQuery(sql); delete q1; } @@ -1117,11 +1105,9 @@ bool RDSvc::create(const QString &name,QString *err_msg, sql="select NAME from STATIONS"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString().sprintf("insert into SERVICE_PERMS set\ - STATION_NAME=\"%s\",SERVICE_NAME=\"%s\"", - (const char *) - RDEscapeString(q->value(0).toString()), - (const char *)RDEscapeString(name)); + sql=QString("insert into SERVICE_PERMS set ")+ + "STATION_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ + "SERVICE_NAME=\""+RDEscapeString(name)+"\""; q1=new RDSqlQuery(sql); delete q1; } @@ -1293,16 +1279,13 @@ bool RDSvc::create(const QString &name,QString *err_msg, // // Clone Audio Perms // - sql=QString().sprintf("select GROUP_NAME from AUDIO_PERMS\ - where SERVICE_NAME=\"%s\"", - (const char *)RDEscapeString(exemplar)); + sql=QString("select GROUP_NAME from AUDIO_PERMS where ")+ + "SERVICE_NAME=\""+RDEscapeString(exemplar)+"\""; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString().sprintf("insert into AUDIO_PERMS set\ - GROUP_NAME=\"%s\",SERVICE_NAME=\"%s\"", - (const char *) - RDEscapeString(q->value(0).toString()), - (const char *)RDEscapeString(name)); + sql=QString("insert into AUDIO_PERMS set ")+ + "GROUP_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ + "SERVICE_NAME=\""+RDEscapeString(name)+"\""; q1=new RDSqlQuery(sql); delete q1; } @@ -1311,16 +1294,13 @@ bool RDSvc::create(const QString &name,QString *err_msg, // // Clone Service Perms // - sql=QString().sprintf("select STATION_NAME from SERVICE_PERMS\ - where SERVICE_NAME=\"%s\"", - (const char *)RDEscapeString(exemplar)); + sql=QString("select STATION_NAME from SERVICE_PERMS where ")+ + "SERVICE_NAME=\""+RDEscapeString(exemplar)+"\""; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString().sprintf("insert into SERVICE_PERMS set\ - STATION_NAME=\"%s\",SERVICE_NAME=\"%s\"", - (const char *) - RDEscapeString(q->value(0).toString()), - (const char *)RDEscapeString(name)); + sql=QString("insert into SERVICE_PERMS set ")+ + "STATION_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ + "SERVICE_NAME=\""+RDEscapeString(name)+"\""; q1=new RDSqlQuery(sql); delete q1; } @@ -1329,15 +1309,13 @@ bool RDSvc::create(const QString &name,QString *err_msg, // // Clone Autofill List // - sql=QString().sprintf("select CART_NUMBER from AUTOFILLS\ - where SERVICE=\"%s\"", - (const char *)RDEscapeString(exemplar)); + sql=QString("select CART_NUMBER from AUTOFILLS where ")+ + "SERVICE=\""+RDEscapeString(exemplar)+"\""; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString().sprintf("insert into AUTOFILLS set\ - CART_NUMBER=%u,SERVICE=\"%s\"", - q->value(0).toUInt(), - (const char *)RDEscapeString(name)); + sql=QString("insert into AUTOFILLS set ")+ + QString().sprintf("CART_NUMBER=%u,",q->value(0).toUInt())+ + "SERVICE=\""+RDEscapeString(name)+"\""; q1=new RDSqlQuery(sql); delete q1; } @@ -1346,16 +1324,13 @@ bool RDSvc::create(const QString &name,QString *err_msg, // // Clone Clock Perms // - sql=QString().sprintf("select CLOCK_NAME from CLOCK_PERMS\ - where SERVICE_NAME=\"%s\"", - (const char *)RDEscapeString(exemplar)); + sql=QString("select CLOCK_NAME from CLOCK_PERMS where ")+ + "SERVICE_NAME=\""+RDEscapeString(exemplar)+"\""; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString().sprintf("insert into CLOCK_PERMS set\ - CLOCK_NAME=\"%s\",SERVICE_NAME=\"%s\"", - (const char *) - RDEscapeString(q->value(0).toString()), - (const char *)RDEscapeString(name)); + sql=QString("insert into CLOCK_PERMS set ")+ + "CLOCK_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ + "SERVICE_NAME=\""+RDEscapeString(name)+"\""; q1=new RDSqlQuery(sql); delete q1; } @@ -1364,16 +1339,13 @@ bool RDSvc::create(const QString &name,QString *err_msg, // // Clone Event Perms // - sql=QString().sprintf("select EVENT_NAME from EVENT_PERMS\ - where SERVICE_NAME=\"%s\"", - (const char *)RDEscapeString(exemplar)); + sql=QString("select EVENT_NAME from EVENT_PERMS where ")+ + "SERVICE_NAME=\""+RDEscapeString(exemplar)+"\""; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString().sprintf("insert into EVENT_PERMS set\ - EVENT_NAME=\"%s\",SERVICE_NAME=\"%s\"", - (const char *) - RDEscapeString(q->value(0).toString()), - (const char *)RDEscapeString(name)); + sql=QString("insert into EVENT_PERMS set ")+ + "EVENT_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ + "SERVICE_NAME=\""+RDEscapeString(name)+"\""; q1=new RDSqlQuery(sql); delete q1; } @@ -1575,11 +1547,10 @@ void RDSvc::SetRow(const QString ¶m,QString value) const RDSqlQuery *q; QString sql; - value.replace("\\","\\\\"); // Needed to preserve Windows pathnames - sql=QString().sprintf("UPDATE SERVICES SET %s=\"%s\" WHERE NAME=\"%s\"", - (const char *)param, - (const char *)value, - (const char *)RDEscapeString(svc_name)); + // value.replace("\\","\\\\"); // Needed to preserve Windows pathnames + sql=QString("update SERVICES set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "NAME=\""+RDEscapeString(svc_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -1590,10 +1561,9 @@ void RDSvc::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE SERVICES SET %s=%d WHERE NAME=\"%s\"", - (const char *)param, - value, - (const char *)RDEscapeString(svc_name)); + sql=QString("update SERVICES set ")+ + param+QString().sprintf("=%d where ",value)+ + "NAME=\""+RDEscapeString(svc_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -1604,14 +1574,13 @@ void RDSvc::GetParserStrings(ImportSource src,QString *break_str, QString *track_cart) { QString src_str=SourceString(src); - QString sql=QString().sprintf("select %sBREAK_STRING,%sTRACK_STRING,\ - %sLABEL_CART,%sTRACK_CART \ - from SERVICES where NAME=\"%s\"", - (const char *)src_str, - (const char *)src_str, - (const char *)src_str, - (const char *)src_str, - (const char *)RDEscapeString(svc_name)); + QString sql=QString("select ")+ + src_str+"BREAK_STRING,"+ // 00 + src_str+"TRACK_STRING,"+ // 01 + src_str+"LABEL_CART,"+ // 02 + src_str+"TRACK_CART "+ // 03 + "from SERVICES where "+ + "NAME=\""+RDEscapeString(svc_name)+"\""; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { *break_str=q->value(0).toString(); diff --git a/lib/rdsystem.cpp b/lib/rdsystem.cpp index 9c17588a..8aa2d8cc 100644 --- a/lib/rdsystem.cpp +++ b/lib/rdsystem.cpp @@ -18,11 +18,12 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include -#include +#include "rd.h" +#include "rddb.h" +#include "rdconf.h" +#include "rdescape_string.h" +#include "rdsystem.h" +#include "rdweb.h" RDSystem::RDSystem() { @@ -62,8 +63,8 @@ void RDSystem::setAllowDuplicateCartTitles(bool state) const QString sql; RDSqlQuery *q; - sql=QString().sprintf("update SYSTEM set DUP_CART_TITLES=\"%s\"", - (const char *)RDYesNo(state)); + sql=QString("update SYSTEM set ")+ + "DUP_CART_TITLES=\""+RDYesNo(state)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -90,8 +91,8 @@ void RDSystem::setFixDuplicateCartTitles(bool state) const QString sql; RDSqlQuery *q; - sql=QString().sprintf("update SYSTEM set FIX_DUP_CART_TITLES=\"%s\"", - (const char *)RDYesNo(state)); + sql=QString("update SYSTEM set ")+ + "FIX_DUP_CART_TITLES=\""+RDYesNo(state)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -167,8 +168,8 @@ void RDSystem::setShowUserList(bool state) const QString sql; RDSqlQuery *q; - sql=QString().sprintf("update SYSTEM set SHOW_USER_LIST=\"%s\"", - (const char *)RDYesNo(state)); + sql=QString("update SYSTEM set ")+ + "SHOW_USER_LIST=\""+RDYesNo(state)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -204,8 +205,8 @@ QString RDSystem::xml() const QVariant RDSystem::GetValue(const QString &field) const { QVariant ret; - QString sql=QString().sprintf("select %s from SYSTEM", - (const char *)field); + QString sql=QString("select ")+ + field+" from SYSTEM"; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0); @@ -220,10 +221,9 @@ void RDSystem::SetRow(const QString ¶m,QString value) const RDSqlQuery *q; QString sql; - value.replace("\\","\\\\"); // Needed to preserve Windows pathnames - sql=QString().sprintf("update SYSTEM set %s=\"%s\"", - (const char *)param, - (const char *)value); + // value.replace("\\","\\\\"); // Needed to preserve Windows pathnames + sql=QString("update SYSTEM set ")+ + param+"=\""+RDEscapeString(value)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -234,9 +234,8 @@ void RDSystem::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update SYSTEM set %s=%d", - (const char *)param, - value); + sql=QString("update SYSTEM set ")+ + param+QString().sprintf("=%d",value); q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdtextfile.cpp b/lib/rdtextfile.cpp index bb1ca19b..2b2349b2 100644 --- a/lib/rdtextfile.cpp +++ b/lib/rdtextfile.cpp @@ -49,8 +49,8 @@ bool RDTextFile(const QString &data) editor=getenv("VISUAL"); } #ifdef WIN32 - QString tempfile=QString().sprintf("%s\\rd-%s",(const char *)RDTempDirectory::basePath(), - (const char *)QTime::currentTime().toString("hhmmsszzz")); + QString tempfile=RDTempDirectory::basePath()+"\\rd-"+ + QTime::currentTime().toString("hhmmsszzz")); FILE *f=fopen(tempfile,"w"); if(f==NULL) { QMessageBox::warning(NULL,"File Error","Unable to create temporary file"); @@ -75,7 +75,7 @@ bool RDTextFile(const QString &data) write(fd,data,data.length()); ::close(fd); if(fork()==0) { - system(QString().sprintf("%s %s",(const char *)editor,tmpfile)); + system(editor+" "+tmpfile); unlink(tmpfile); exit(0); } diff --git a/lib/rdtrimaudio.cpp b/lib/rdtrimaudio.cpp index c910ea3f..bc67a053 100644 --- a/lib/rdtrimaudio.cpp +++ b/lib/rdtrimaudio.cpp @@ -2,7 +2,7 @@ // // Get the trim points for an audio cut. // -// (C) Copyright 2010,2016 Fred Gleason +// (C) Copyright 2010,2016-2018 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -98,13 +98,12 @@ RDTrimAudio::ErrorCode RDTrimAudio::runTrim(const QString &username, // // Generate POST Data // - QString post=QString().sprintf("COMMAND=%d&LOGIN_NAME=%s&PASSWORD=%s&CART_NUMBER=%u&CUT_NUMBER=%u&TRIM_LEVEL=%d", - RDXPORT_COMMAND_TRIMAUDIO, - (const char *)RDFormPost::urlEncode(username), - (const char *)RDFormPost::urlEncode(password), - conv_cart_number, - conv_cut_number, - conv_trim_level); + QString post=QString().sprintf("COMMAND=%d&",RDXPORT_COMMAND_TRIMAUDIO)+ + "LOGIN_NAME="+RDFormPost::urlEncode(username)+"&"+ + "PASSWORD="+RDFormPost::urlEncode(password)+"&"+ + QString().sprintf("CART_NUMBER=%u&",conv_cart_number)+ + QString().sprintf("CUT_NUMBER=%u&",conv_cut_number)+ + QString().sprintf("TRIM_LEVEL=%d",conv_trim_level); if((curl=curl_easy_init())==NULL) { return RDTrimAudio::ErrorInternal; } diff --git a/lib/rdtty.cpp b/lib/rdtty.cpp index 564c4c3e..b8c3e2ba 100644 --- a/lib/rdtty.cpp +++ b/lib/rdtty.cpp @@ -18,13 +18,11 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include +#include "rdconf.h" +#include "rddb.h" +#include "rdescape_string.h" +#include "rdtty.h" -// -// Global Classes -// RDTty::RDTty(const QString &station,unsigned port_id,bool create) { RDSqlQuery *q; @@ -34,13 +32,15 @@ RDTty::RDTty(const QString &station,unsigned port_id,bool create) tty_id=port_id; if(create) { - sql=QString().sprintf("select ID from TTYS where \ -(STATION_NAME=\"%s\")&&(PORT_ID=%d)",(const char *)tty_station,tty_id); + sql=QString("select ID from TTYS where ")+ + "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ + QString().sprintf("(PORT_ID=%d)",tty_id); q=new RDSqlQuery(sql); if(q->size()!=1) { delete q; - sql=QString().sprintf("INSERT INTO TTYS SET STATION_NAME=\"%s\",PORT_ID=%d", - (const char *)tty_station,tty_id); + sql=QString("insert into TTYS set ")+ + "STATION_NAME=\""+RDEscapeString(tty_station)+"\","+ + QString().sprintf("PORT_ID=%d",tty_id); q=new RDSqlQuery(sql); delete q; } @@ -153,9 +153,10 @@ bool RDTty::GetBoolValue(const QString &field) RDSqlQuery *q; bool state; - sql=QString().sprintf("select %s from TTYS where \ -(STATION_NAME=\"%s\")&&(PORT_ID=%d)",(const char *)field, - (const char *)tty_station,tty_id); + sql=QString("select ")+ + field+" from TTYS where "+ + "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ + QString().sprintf("(PORT_ID=%d)",tty_id); q=new RDSqlQuery(sql); if(q->first()) { state=RDBool(q->value(0).toString()); @@ -173,9 +174,10 @@ QString RDTty::GetStringValue(const QString &field) RDSqlQuery *q; QString accum; - sql=QString().sprintf("select %s from TTYS where \ -(STATION_NAME=\"%s\")&&(PORT_ID=%d)",(const char *)field, - (const char *)tty_station,tty_id); + sql=QString("select ")+ + field+" from TTYS where "+ + "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ + QString().sprintf("(PORT_ID=%d)",tty_id); q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toString(); @@ -193,9 +195,10 @@ int RDTty::GetIntValue(const QString &field) RDSqlQuery *q; int accum; - sql=QString().sprintf("select %s from TTYS where \ -(STATION_NAME=\"%s\")&&(PORT_ID=%d)",(const char *)field, - (const char *)tty_station,tty_id); + sql=QString("select ")+ + field+" from TTYS where "+ + "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ + QString().sprintf("(PORT_ID=%d)",tty_id); q=new RDSqlQuery(sql); if(q->first()) { accum=q->value(0).toInt(); @@ -212,12 +215,10 @@ void RDTty::SetRow(const QString ¶m,bool value) RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE TTYS SET %s=\"%s\" \ -WHERE (STATION_NAME=\"%s\")&&(PORT_ID=%d)", - (const char *)param, - (const char *)RDYesNo(value), - (const char *)tty_station, - tty_id); + sql=QString("update TTYS set ")+ + param+"=\""+RDYesNo(value)+"\" where "+ \ + "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ + QString().sprintf("(PORT_ID=%d)",tty_id); q=new RDSqlQuery(sql); delete q; } @@ -228,12 +229,10 @@ void RDTty::SetRow(const QString ¶m,const QString &value) RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE TTYS SET %s=\"%s\" \ -WHERE (STATION_NAME=\"%s\")&&(PORT_ID=%d)", - (const char *)param, - (const char *)value, - (const char *)tty_station, - tty_id); + sql=QString("update TTYS SET ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ + QString().sprintf("(PORT_ID=%d)",tty_id); q=new RDSqlQuery(sql); delete q; } @@ -244,12 +243,10 @@ void RDTty::SetRow(const QString ¶m,int value) RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE TTYS SET %s=%d \ -WHERE (STATION_NAME=\"%s\")&&(PORT_ID=%d)", - (const char *)param, - value, - (const char *)tty_station, - tty_id); + sql=QString("update TTYS set ")+ + param+QString().sprintf("=%d where ",value)+ + "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ + QString().sprintf("(PORT_ID=%d)",tty_id); q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdurl.cpp b/lib/rdurl.cpp index 97fda4ca..2267a239 100644 --- a/lib/rdurl.cpp +++ b/lib/rdurl.cpp @@ -44,9 +44,7 @@ QString RDUrl::smbShare() const if((offset=path().right(path().length()-1).find("/"))<0) { offset=path().length(); } - return QString().sprintf("//%s%s", - (const char *)host(), - (const char *)path().left(offset+1)); + return QString("//")+host()+path().left(offset+1); } diff --git a/lib/rduser.cpp b/lib/rduser.cpp index e62e621d..70bff21d 100644 --- a/lib/rduser.cpp +++ b/lib/rduser.cpp @@ -65,11 +65,12 @@ bool RDUser::authenticated(bool webuser) const QString sql; if(localAuthentication()) { - sql=QString().sprintf("select LOGIN_NAME,ENABLE_WEB from USERS \ - where LOGIN_NAME=\"%s\" \ - && PASSWORD=\"%s\"", - (const char *)RDEscapeString(user_name), - (const char *)RDEscapeString(user_password)); + sql=QString("select ")+ + "LOGIN_NAME,"+ + "ENABLE_WEB "+ + "from USERS where "+ + "LOGIN_NAME=\""+RDEscapeString(user_name)+"\" && "+ + "PASSWORD=\""+RDEscapeString(user_password)+"\""; q=new RDSqlQuery(sql); if(q->first()) { bool ret=RDBool(q->value(1).toString())|| @@ -500,12 +501,11 @@ bool RDUser::cartAuthorized(unsigned cartnum) const RDSqlQuery *q; bool ret=false; - sql=QString(). - sprintf("select CART.NUMBER from CART \ - left join USER_PERMS \ - on CART.GROUP_NAME=USER_PERMS.GROUP_NAME \ - where (USER_PERMS.USER_NAME=\"%s\")&&(CART.NUMBER=%u)", - (const char *)RDEscapeString(user_name),cartnum); + sql=QString("select CART.NUMBER from CART ")+ + "left join USER_PERMS "+ + "on CART.GROUP_NAME=USER_PERMS.GROUP_NAME where "+ + "(USER_PERMS.USER_NAME=\""+RDEscapeString(user_name)+"\")&&"+ + QString().sprintf("(CART.NUMBER=%u)",cartnum); q=new RDSqlQuery(sql); ret=q->first(); delete q; @@ -543,11 +543,11 @@ QStringList RDUser::services() const sql=QString().sprintf("SELECT NAME FROM SERVICES" ); } else { - sql=QString().sprintf("select distinct AUDIO_PERMS.SERVICE_NAME \ - from USER_PERMS left join AUDIO_PERMS \ - on USER_PERMS.GROUP_NAME=AUDIO_PERMS.GROUP_NAME \ - where USER_PERMS.USER_NAME=\"%s\"", - (const char *)RDEscapeString(user_name)); + sql=QString("select distinct ")+ + "AUDIO_PERMS.SERVICE_NAME "+ + "from USER_PERMS left join AUDIO_PERMS "+ + "on USER_PERMS.GROUP_NAME=AUDIO_PERMS.GROUP_NAME where "+ + "USER_PERMS.USER_NAME=\""+RDEscapeString(user_name)+"\""; } q=new RDSqlQuery(sql); @@ -565,10 +565,9 @@ void RDUser::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE USERS SET %s=\"%s\" WHERE LOGIN_NAME=\"%s\"", - (const char *)param, - (const char *)RDEscapeString(value), - (const char *)user_name); + sql=QString("update USERS set ")+ + param+"=\""+RDEscapeString(value)+"\" where "+ + "LOGIN_NAME=\""+RDEscapeString(user_name)+"\""; q=new RDSqlQuery(sql); delete q; } @@ -579,10 +578,9 @@ void RDUser::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("UPDATE USERS SET %s=%d WHERE LOGIN_NAME=\"%s\"", - (const char *)param, - value, - (const char *)user_name); + sql=QString("update USERS set ")+ + param+QString().sprintf("=%d where ",value)+ + "LOGIN_NAME=\""+user_name+"\""; q=new RDSqlQuery(sql); delete q; }