From 0fd02861f9c25689f420ab3c8f1dd55691d7a7c1 Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Sat, 17 Apr 2021 19:47:05 -0400 Subject: [PATCH] 2021-04-17 Fred Gleason * Escaped all SQL identifiers in 'lib/'. * Replaced " with ' delimiters in all SQL literal strings in 'lib/'. Signed-off-by: Fred Gleason --- ChangeLog | 3 + lib/export_bmiemr.cpp | 20 +- lib/export_cutlog.cpp | 34 +- lib/export_deltaflex.cpp | 28 +- lib/export_musicclassical.cpp | 22 +- lib/export_musicplayout.cpp | 26 +- lib/export_musicsummary.cpp | 14 +- lib/export_nprsoundex.cpp | 18 +- lib/export_radiotraffic.cpp | 30 +- lib/export_resultsrecon.cpp | 26 +- lib/export_soundex.cpp | 18 +- lib/export_spincount.cpp | 15 +- lib/export_technical.cpp | 38 +- lib/export_textlog.cpp | 34 +- lib/rdadd_cart.cpp | 14 +- lib/rdadd_log.cpp | 14 +- lib/rdairplay_conf.cpp | 286 ++--- lib/rdaudio_port.cpp | 80 +- lib/rdcart.cpp | 584 ++++----- lib/rdcart_dialog.cpp | 34 +- lib/rdcart_search_text.cpp | 90 +- lib/rdcartfilter.cpp | 70 +- lib/rdcartslot.cpp | 89 +- lib/rdcastsearch.cpp | 48 +- lib/rdcatch_conf.cpp | 34 +- lib/rdclock.cpp | 185 +-- lib/rdconf.cpp | 72 +- lib/rdcoreapplication.cpp | 18 +- lib/rdcut.cpp | 621 +++++----- lib/rdcut_dialog.cpp | 17 +- lib/rdcutlistmodel.cpp | 54 +- lib/rddb.cpp | 2 +- lib/rddbheartbeat.cpp | 4 +- lib/rddeck.cpp | 83 +- lib/rddiscmodel.cpp | 10 +- lib/rddropbox.cpp | 30 +- lib/rddropboxlistmodel.cpp | 36 +- lib/rdendpointlistmodel.cpp | 40 +- lib/rdevent.cpp | 38 +- lib/rdevent_line.cpp | 440 +++---- lib/rdeventimportlist.cpp | 42 +- lib/rdexport_settings_dialog.cpp | 8 +- lib/rdfeed.cpp | 303 +++-- lib/rdfeedlistmodel.cpp | 49 +- lib/rdformpost.cpp | 4 +- lib/rdgpiolistmodel.cpp | 34 +- lib/rdgroup.cpp | 106 +- lib/rdgroup_list.cpp | 8 +- lib/rdgrouplistmodel.cpp | 44 +- lib/rdhostvarlistmodel.cpp | 18 +- lib/rdhotkeys.cpp | 34 +- lib/rdimagepickerbox.cpp | 7 +- lib/rdimagepickerbox.h | 4 +- lib/rdimagepickermodel.cpp | 34 +- lib/rdimagepickermodel.h | 5 +- lib/rdjackclientlistmodel.cpp | 16 +- lib/rdlibrary_conf.cpp | 54 +- lib/rdlibrarymodel.cpp | 88 +- lib/rdlog.cpp | 224 ++-- lib/rdlog_line.cpp | 246 ++-- lib/rdlogedit_conf.cpp | 59 +- lib/rdlogfilter.cpp | 29 +- lib/rdlogimportmodel.cpp | 30 +- lib/rdloglistmodel.cpp | 44 +- lib/rdloglock.cpp | 69 +- lib/rdlogmodel.cpp | 398 +++--- lib/rdlogplay.cpp | 81 +- lib/rdmacro_event.cpp | 21 +- lib/rdmacrocartmodel.cpp | 12 +- lib/rdmarkerplayer.cpp | 28 +- lib/rdmarkerview.cpp | 42 +- lib/rdmatrix.cpp | 82 +- lib/rdmatrixlistmodel.cpp | 26 +- lib/rdnodelistmodel.cpp | 20 +- lib/rdpodcast.cpp | 43 +- lib/rdpodcastlistmodel.cpp | 42 +- lib/rdrecording.cpp | 129 +- lib/rdreplcartlistmodel.cpp | 32 +- lib/rdreplicator.cpp | 48 +- lib/rdreplicatorlistmodel.cpp | 21 +- lib/rdreport.cpp | 261 ++-- lib/rdresourcelistmodel.cpp | 35 +- lib/rdripc.cpp | 16 +- lib/rdschedcode.cpp | 12 +- lib/rdschedcodelistmodel.cpp | 15 +- lib/rdschedcodes_dialog.cpp | 4 +- lib/rdschedruleslist.cpp | 50 +- lib/rdservicelistmodel.cpp | 27 +- lib/rdsettings.cpp | 62 +- lib/rdsimpleplayer.cpp | 12 +- lib/rdslotoptions.cpp | 58 +- lib/rdsound_panel.cpp | 267 ++-- lib/rdstation.cpp | 1938 +++++++++++++++--------------- lib/rdstationlistmodel.cpp | 42 +- lib/rdstatus.cpp | 7 +- lib/rdsvc.cpp | 834 +++++++------ lib/rdsystem.cpp | 56 +- lib/rdtty.cpp | 84 +- lib/rduser.cpp | 118 +- lib/rduserlistmodel.cpp | 53 +- lib/rdversion.cpp | 10 +- lib/rdweb.cpp | 55 +- rdadmin/edit_feed.cpp | 6 +- rdcastmanager/edit_cast.cpp | 2 +- 104 files changed, 4807 insertions(+), 5120 deletions(-) diff --git a/ChangeLog b/ChangeLog index 992ec1a7..dd248ac0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21454,3 +21454,6 @@ 'RDLogListModel', 'RDReplicatorListModel', 'RDSchedCodeListModel', 'RDServiceListModel', 'RDUserListModel'. * Removed the 'RDLogImportModel::updateRowLine()' method. +2021-04-17 Fred Gleason + * Escaped all SQL identifiers in 'lib/'. + * Replaced " with ' delimiters in all SQL literal strings in 'lib/'. diff --git a/lib/export_bmiemr.cpp b/lib/export_bmiemr.cpp index 394f2059..c8aa1566 100644 --- a/lib/export_bmiemr.cpp +++ b/lib/export_bmiemr.cpp @@ -68,16 +68,16 @@ bool RDReport::ExportBmiEmr(const QString &filename,const QDate &startdate, } sql=QString("select ")+ - "EVENT_DATETIME,"+ // 00 - "TITLE,"+ // 01 - "ARTIST,"+ // 02 - "COMPOSER,"+ // 03 - "LENGTH,"+ // 04 - "ISRC,"+ // 05 - "USAGE_CODE "+ // 06 - "from ELR_LINES where "+ - "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ - "order by EVENT_DATETIME"; + "`EVENT_DATETIME`,"+ // 00 + "`TITLE`,"+ // 01 + "`ARTIST`,"+ // 02 + "`COMPOSER`,"+ // 03 + "`LENGTH`,"+ // 04 + "`ISRC`,"+ // 05 + "`USAGE_CODE` "+ // 06 + "from `ELR_LINES` where "+ + "`SERVICE_NAME`='"+RDEscapeString(mixtable)+"' "+ + "order by `EVENT_DATETIME`"; q=new RDSqlQuery(sql); // diff --git a/lib/export_cutlog.cpp b/lib/export_cutlog.cpp index cc8b4c1c..92d69cb4 100644 --- a/lib/export_cutlog.cpp +++ b/lib/export_cutlog.cpp @@ -57,23 +57,23 @@ bool RDReport::ExportCutLog(const QString &filename,const QDate &startdate, cart_fmt="%6u"; } sql=QString("select ")+ - "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.DESCRIPTION "+ // 13 - "from ELR_LINES left join CART "+ - "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ - "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ + "`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`.`DESCRIPTION` "+ // 13 + "from `ELR_LINES` left join `CART` "+ + "on `ELR_LINES`.`CART_NUMBER`=`CART`.`NUMBER` where "+ + "SERVICE_NAME='"+RDEscapeString(mixtable)+"' "+ "order by EVENT_DATETIME"; q=new RDSqlQuery(sql); diff --git a/lib/export_deltaflex.cpp b/lib/export_deltaflex.cpp index d03d71d4..105ee955 100644 --- a/lib/export_deltaflex.cpp +++ b/lib/export_deltaflex.cpp @@ -56,20 +56,20 @@ bool RDReport::ExportDeltaflex(const QString &filename,const QDate &startdate, air_fmt="%u"; } sql=QString("select ")+ - "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)+"\" "+ + "`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 "+ + "`ELR_LINES`.`SERVICE_NAME`=`"+RDEscapeString(mixtable)+"` "+ "order by EVENT_DATETIME"; q=new RDSqlQuery(sql); diff --git a/lib/export_musicclassical.cpp b/lib/export_musicclassical.cpp index 9b245895..cf8f35dc 100644 --- a/lib/export_musicclassical.cpp +++ b/lib/export_musicclassical.cpp @@ -55,17 +55,17 @@ bool RDReport::ExportMusicClassical(const QString &filename, cart_fmt="%6u"; } sql=QString("select ")+ - "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)+"\" "+ - "order by EVENT_DATETIME"; + "`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 "+ + "`ELR_LINES`.`SERVICE_NAME`='"+RDEscapeString(mixtable)+"' "+ + "order by `EVENT_DATETIME`"; q=new RDSqlQuery(sql); // diff --git a/lib/export_musicplayout.cpp b/lib/export_musicplayout.cpp index f51d37c6..5270ee78 100644 --- a/lib/export_musicplayout.cpp +++ b/lib/export_musicplayout.cpp @@ -56,19 +56,19 @@ bool RDReport::ExportMusicPlayout(const QString &filename, cart_fmt="%6u"; } sql=QString("select ")+ - "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)+"\" "+ - "order by EVENT_DATETIME"; + "`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 "+ + "`ELR_LINES`.`SERVICE_NAME`='"+RDEscapeString(mixtable)+"' "+ + "order by `EVENT_DATETIME`"; q=new RDSqlQuery(sql); // diff --git a/lib/export_musicsummary.cpp b/lib/export_musicsummary.cpp index e1dde219..1f2c4ee3 100644 --- a/lib/export_musicsummary.cpp +++ b/lib/export_musicsummary.cpp @@ -48,13 +48,13 @@ bool RDReport::ExportMusicSummary(const QString &filename, QTextStream *strm=new QTextStream(file); strm->setCodec("UTF-8"); sql=QString("select ")+ - "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)+"\" "+ - "order by EVENT_DATETIME"; + "`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)+"' "+ + "order by `EVENT_DATETIME`"; q=new RDSqlQuery(sql); // diff --git a/lib/export_nprsoundex.cpp b/lib/export_nprsoundex.cpp index db8e21ca..4583abd1 100644 --- a/lib/export_nprsoundex.cpp +++ b/lib/export_nprsoundex.cpp @@ -67,15 +67,15 @@ bool RDReport::ExportNprSoundEx(const QString &filename,const QDate &startdate, // Roll Up Records // sql=QString("select ")+ - "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"; + "`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`"; q=new RDSqlQuery(sql); while(q->next()) { *strm << q->value(0).toDateTime().toString("MM/dd/yyyy hh:mm:ss")+"\t"; diff --git a/lib/export_radiotraffic.cpp b/lib/export_radiotraffic.cpp index b693d52e..f5d9b48f 100644 --- a/lib/export_radiotraffic.cpp +++ b/lib/export_radiotraffic.cpp @@ -63,21 +63,21 @@ bool RDReport::ExportRadioTraffic(const QString &filename, air_fmt=QString().sprintf("%%%-uu ",cartDigits()); } sql=QString("select ")+ - "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)+"\" "+ - "order by EVENT_DATETIME"; + "`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)+"' "+ + "order by `EVENT_DATETIME`"; q=new RDSqlQuery(sql); // diff --git a/lib/export_resultsrecon.cpp b/lib/export_resultsrecon.cpp index d985838b..06302ec1 100644 --- a/lib/export_resultsrecon.cpp +++ b/lib/export_resultsrecon.cpp @@ -2,7 +2,7 @@ // // Export a Rivendell Report in 'results' format // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -45,18 +45,18 @@ bool RDReport::ExportResultsReport(const QString &filename, QTextStream *strm=new QTextStream(file); strm->setCodec("UTF-8"); sql=QString("select ")+ - "ELR_LINES.EVENT_DATETIME,"+ // 00 - "ELR_LINES.EVENT_TYPE,"+ // 01 - "ELR_LINES.LENGTH,"+ // 02 - "ELR_LINES.CART_NUMBER,"+ // 03 - "ELR_LINES.CUT_NUMBER,"+ // 04 - "ELR_LINES.TITLE,"+ // 05 - "ELR_LINES.ARTIST,"+ // 06 - "ELR_LINES.EXT_START_TIME "+ // 07 - "from ELR_LINES left join CART "+ - "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ - "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ - "order by EVENT_DATETIME"; + "`ELR_LINES`.`EVENT_DATETIME`,"+ // 00 + "`ELR_LINES`.`EVENT_TYPE`,"+ // 01 + "`ELR_LINES`.`LENGTH`,"+ // 02 + "`ELR_LINES`.`CART_NUMBER`,"+ // 03 + "`ELR_LINES`.`CUT_NUMBER`,"+ // 04 + "`ELR_LINES`.`TITLE`,"+ // 05 + "`ELR_LINES`.`ARTIST`,"+ // 06 + "`ELR_LINES`.`EXT_START_TIME` "+ // 07 + "from `ELR_LINES` left join `CART` "+ + "on `ELR_LINES`.`CART_NUMBER`=`CART.NUMBER` where "+ + "`SERVICE_NAME`='"+RDEscapeString(mixtable)+"' "+ + "order by `EVENT_DATETIME`"; q=new RDSqlQuery(sql); // diff --git a/lib/export_soundex.cpp b/lib/export_soundex.cpp index f5f5c6e2..34f49ae9 100644 --- a/lib/export_soundex.cpp +++ b/lib/export_soundex.cpp @@ -74,15 +74,15 @@ bool RDReport::ExportSoundEx(const QString &filename,const QDate &startdate, // Roll Up Records // sql=QString("select ")+ - "CART_NUMBER,"+ // 00 - "ARTIST,"+ // 01 - "TITLE,"+ // 02 - "ISRC,"+ // 03 - "ALBUM,"+ // 04 - "LABEL "+ // 05 - "from ELR_LINES where "+ - "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ - "order by CART_NUMBER"; + "`CART_NUMBER`,"+ // 00 + "`ARTIST`,"+ // 01 + "`TITLE`,"+ // 02 + "`ISRC`,"+ // 03 + "`ALBUM`,"+ // 04 + "`LABEL` "+ // 05 + "from `ELR_LINES` where "+ + "`SERVICE_NAME`='"+RDEscapeString(mixtable)+"' "+ + "order by `CART_NUMBER`"; q=new RDSqlQuery(sql); while(q->next()) { if(q->value(0).toUInt()==cartnum) { diff --git a/lib/export_spincount.cpp b/lib/export_spincount.cpp index 4c38c1eb..a65020fb 100644 --- a/lib/export_spincount.cpp +++ b/lib/export_spincount.cpp @@ -66,13 +66,14 @@ bool RDReport::ExportSpinCount(const QString &filename,const QDate &startdate, // Generate Spin Counts // sql=QString("select ")+ - "CART_NUMBER,"+ // 00 - "TITLE,"+ // 01 - "ARTIST,"+ // 02 - "ALBUM,LABEL "+ // 03 - "from ELR_LINES where "+ - "SERVICE_NAME=\""+RDEscapeString(mixtable)+"\" "+ - "order by TITLE"; + "`CART_NUMBER`,"+ // 00 + "`TITLE`,"+ // 01 + "`ARTIST`,"+ // 02 + "`ALBUM`,"+ // 03 + "`LABEL` "+ // 04 + "from `ELR_LINES` where "+ + "`SERVICE_NAME`='"+RDEscapeString(mixtable)+"' "+ + "order by `TITLE`"; q=new RDSqlQuery(sql); while(q->next()) { carts[q->value(0).toInt()]++; diff --git a/lib/export_technical.cpp b/lib/export_technical.cpp index b4ce8aad..820a221d 100644 --- a/lib/export_technical.cpp +++ b/lib/export_technical.cpp @@ -59,25 +59,25 @@ bool RDReport::ExportTechnical(const QString &filename,const QDate &startdate, cart_fmt="%6u"; } sql=QString("select ")+ - "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)+"\" "+ - "order by EVENT_DATETIME"; + "`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)+"' "+ + "order by `EVENT_DATETIME`"; q=new RDSqlQuery(sql); // diff --git a/lib/export_textlog.cpp b/lib/export_textlog.cpp index 7d6940b5..05cf65ea 100644 --- a/lib/export_textlog.cpp +++ b/lib/export_textlog.cpp @@ -55,23 +55,23 @@ bool RDReport::ExportTextLog(const QString &filename,const QDate &startdate, cart_fmt="%6u"; } sql=QString("select ")+ - "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)+"\" "+ - "order by EVENT_DATETIME"; + "`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)+"' "+ + "order by `EVENT_DATETIME`"; q=new RDSqlQuery(sql); // diff --git a/lib/rdadd_cart.cpp b/lib/rdadd_cart.cpp index 91bf1abe..0b8bf9a1 100644 --- a/lib/rdadd_cart.cpp +++ b/lib/rdadd_cart.cpp @@ -56,8 +56,8 @@ RDAddCart::RDAddCart(QString *group,RDCart::Type *type,QString *title, cart_group_label->setGeometry(10,11,130,19); cart_group_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); cart_group_label->setFont(labelFont()); - sql=QString("select GROUP_NAME from USER_PERMS where ")+ - "USER_NAME=\""+RDEscapeString(username)+"\" order by GROUP_NAME"; + 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(cart_group_box->count(),q->value(0).toString()); @@ -99,8 +99,8 @@ RDAddCart::RDAddCart(QString *group,RDCart::Type *type,QString *title, cart_type_box->insertItem(cart_type_box->count(),tr("Macro")); } if(*cart_type==RDCart::All) { - sql=QString("select DEFAULT_CART_TYPE from GROUPS where ")+ - "NAME=\""+RDEscapeString(*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->setCurrentIndex(q->value(0).toUInt()-1); @@ -196,8 +196,8 @@ void RDAddCart::okData() } RDSystem *system=new RDSystem(); if(!system->allowDuplicateCartTitles()) { - sql=QString("select NUMBER from CART where ")+ - "TITLE=\""+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"), @@ -216,7 +216,7 @@ void RDAddCart::okData() return; } } - sql=QString().sprintf("select NUMBER from CART where NUMBER=%u",num); + sql=QString().sprintf("select `NUMBER` from `CART` where `NUMBER`=%u",num); q=new RDSqlQuery(sql); if(q->first()) { QMessageBox::information(this,tr("Cart Exists"), diff --git a/lib/rdadd_log.cpp b/lib/rdadd_log.cpp index 691b0e05..e585a620 100644 --- a/lib/rdadd_log.cpp +++ b/lib/rdadd_log.cpp @@ -104,19 +104,19 @@ RDAddLog::RDAddLog(QString *logname,QString *svcname, // switch(mode) { case RDLogFilter::NoFilter: - sql=QString("select NAME from SERVICES order by NAME"); + sql=QString("select `NAME` from `SERVICES` order by `NAME`"); break; case RDLogFilter::UserFilter: - sql=QString("select SERVICE_NAME from USER_SERVICE_PERMS where ")+ - "USER_NAME=\""+RDEscapeString(rda->user()->name())+"\" "+ - "order by SERVICE_NAME"; + sql=QString("select `SERVICE_NAME` from `USER_SERVICE_PERMS` where ")+ + "`USER_NAME`='"+RDEscapeString(rda->user()->name())+"' "+ + "order by `SERVICE_NAME`"; break; case RDLogFilter::StationFilter: - sql=QString("select SERVICE_NAME from SERVICE_PERMS where ")+ - "STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\" "+ - "order by SERVICE_NAME"; + sql=QString("select `SERVICE_NAME` from `SERVICE_PERMS` where ")+ + "`STATION_NAME`='"+RDEscapeString(rda->station()->name())+"' "+ + "order by `SERVICE_NAME`"; break; } q=new RDSqlQuery(sql); diff --git a/lib/rdairplay_conf.cpp b/lib/rdairplay_conf.cpp index b90b18a2..fb4e1c2b 100644 --- a/lib/rdairplay_conf.cpp +++ b/lib/rdairplay_conf.cpp @@ -2,7 +2,7 @@ // // Abstract an RDAirPlay Configuration. // -// (C) Copyright 2002-2003,2016 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,12 +18,12 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include +#include -#include -#include -#include -#include +#include "rddb.h" +#include "rdconf.h" +#include "rdairplay_conf.h" +#include "rdescape_string.h" RDAirPlayConf::RDAirPlayConf(const QString &station,const QString &tablename) { @@ -33,17 +33,17 @@ RDAirPlayConf::RDAirPlayConf(const QString &station,const QString &tablename) air_station=station; air_tablename=tablename; - sql=QString("select ID from `")+air_tablename+"` where "+ - "STATION=\""+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("insert into `")+air_tablename+"` set "+ - "STATION=\""+RDEscapeString(air_station)+"\""; + "`STATION`='"+RDEscapeString(air_station)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("select ID from `")+air_tablename+"` where "+ - "STATION=\""+RDEscapeString(air_station)+"\""; + sql=QString("select `ID` from `")+air_tablename+"` where "+ + "`STATION`='"+RDEscapeString(air_station)+"'"; q=new RDSqlQuery(sql); q->first(); } @@ -109,9 +109,9 @@ void RDAirPlayConf::setStopRml(RDAirPlayConf::Channel chan,QString str) const int RDAirPlayConf::virtualCard(int mach) const { int ret=-1; - QString sql=QString("select CARD from RDAIRPLAY_CHANNELS where ")+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" && "+ - QString().sprintf("INSTANCE=%d",mach); + QString sql=QString("select `CARD` from `RDAIRPLAY_CHANNELS` where ")+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' && "+ + QString().sprintf("`INSTANCE`=%d",mach); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toInt(); @@ -124,10 +124,10 @@ int RDAirPlayConf::virtualCard(int mach) const void RDAirPlayConf::setVirtualCard(int mach,int card) const { - QString sql=QString("update RDAIRPLAY_CHANNELS set ")+ - QString().sprintf("CARD=%d where ",card)+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" && "+ - QString().sprintf("INSTANCE=%d",mach); + QString sql=QString("update `RDAIRPLAY_CHANNELS` set ")+ + QString().sprintf("`CARD`=%d where ",card)+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' && "+ + QString().sprintf("`INSTANCE`=%d",mach); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -136,9 +136,9 @@ void RDAirPlayConf::setVirtualCard(int mach,int card) const int RDAirPlayConf::virtualPort(int mach) const { int ret=-1; - QString sql=QString("select PORT from RDAIRPLAY_CHANNELS where ")+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" && "+ - QString().sprintf("INSTANCE=%d",mach); + QString sql=QString("select `PORT` from `RDAIRPLAY_CHANNELS` where ")+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' && "+ + QString().sprintf("`INSTANCE`=%d",mach); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toInt(); @@ -151,10 +151,10 @@ int RDAirPlayConf::virtualPort(int mach) const void RDAirPlayConf::setVirtualPort(int mach,int port) const { - QString sql=QString("update RDAIRPLAY_CHANNELS set ")+ - QString().sprintf("PORT=%d where ",port)+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" && "+ - QString().sprintf("INSTANCE=%d",mach); + QString sql=QString("update `RDAIRPLAY_CHANNELS` set ")+ + QString().sprintf("`PORT`=%d where ",port)+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' && "+ + QString().sprintf("`INSTANCE`=%d",mach); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -163,9 +163,9 @@ void RDAirPlayConf::setVirtualPort(int mach,int port) const QString RDAirPlayConf::virtualStartRml(int mach) const { QString ret; - QString sql=QString("select START_RML from RDAIRPLAY_CHANNELS where ")+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" && "+ - QString().sprintf("INSTANCE=%d",mach); + QString sql=QString("select `START_RML` from `RDAIRPLAY_CHANNELS` where ")+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' && "+ + QString().sprintf("`INSTANCE`=%d",mach); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toString(); @@ -178,10 +178,10 @@ QString RDAirPlayConf::virtualStartRml(int mach) const void RDAirPlayConf::setVirtualStartRml(int mach,QString str) const { - QString sql=QString("update RDAIRPLAY_CHANNELS set ")+ - "START_RML=\""+RDEscapeString(str)+"\" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" && "+ - QString().sprintf("INSTANCE=%d",mach); + QString sql=QString("update `RDAIRPLAY_CHANNELS` set ")+ + "`START_RML`='"+RDEscapeString(str)+"' where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' && "+ + QString().sprintf("`INSTANCE`=%d",mach); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -190,9 +190,9 @@ void RDAirPlayConf::setVirtualStartRml(int mach,QString str) const QString RDAirPlayConf::virtualStopRml(int mach) const { QString ret; - QString sql=QString("select STOP_RML from RDAIRPLAY_CHANNELS where ")+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" && "+ - QString().sprintf("INSTANCE=%d",mach); + QString sql=QString("select `STOP_RML` from `RDAIRPLAY_CHANNELS` where ")+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' && "+ + QString().sprintf("`INSTANCE`=%d",mach); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toString(); @@ -205,10 +205,10 @@ QString RDAirPlayConf::virtualStopRml(int mach) const void RDAirPlayConf::setVirtualStopRml(int mach,QString str) const { - QString sql=QString("update RDAIRPLAY_CHANNELS set ")+ - "STOP_RML=\""+RDEscapeString(str)+"\" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" && "+ - QString().sprintf("INSTANCE=%d",mach); + QString sql=QString("update `RDAIRPLAY_CHANNELS` set ")+ + "`STOP_RML`='"+RDEscapeString(str)+"' where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' && "+ + QString().sprintf("`INSTANCE`=%d",mach); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -663,11 +663,11 @@ bool RDAirPlayConf::exitPasswordValid(const QString &passwd) const QString sql; RDSqlQuery *q; - sql=QString("select EXIT_PASSWORD from `")+air_tablename+"` where "+ - "STATION=\""+RDEscapeString(air_station)+"\" && "+ - "((EXIT_PASSWORD=PASSWORD(\""+RDEscapeString(passwd)+"\"))"; + sql=QString("select `EXIT_PASSWORD` from `")+air_tablename+"` where "+ + "STATION='"+RDEscapeString(air_station)+"' && "+ + "((`EXIT_PASSWORD`=PASSWORD('"+RDEscapeString(passwd)+"'))"; if(passwd.isEmpty()) { - sql+="||(EXIT_PASSWORD is null)"; + sql+="||(`EXIT_PASSWORD` is null)"; } sql+=")"; q=new RDSqlQuery(sql); @@ -686,8 +686,8 @@ void RDAirPlayConf::setExitPassword(const QString &passwd) const RDSqlQuery *q; sql=QString("update `")+air_tablename+"` set "+ - "EXIT_PASSWORD=PASSWORD(\""+RDEscapeString(passwd)+"\") where "+ - "STATION=\""+RDEscapeString(air_station)+"\""; + "`EXIT_PASSWORD`=PASSWORD('"+RDEscapeString(passwd)+"') where "+ + "`STATION`='"+RDEscapeString(air_station)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -733,10 +733,10 @@ void RDAirPlayConf::setAuditionPreroll(int msecs) const RDAirPlayConf::StartMode RDAirPlayConf::startMode(int lognum) const { RDAirPlayConf::StartMode ret=RDAirPlayConf::StartEmpty; - QString sql=QString("select START_MODE ")+ - "from LOG_MACHINES where STATION_NAME=\""+ - RDEscapeString(air_station)+"\" && "+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("select `START_MODE` ")+ + "from `LOG_MACHINES` where `STATION_NAME`='"+ + RDEscapeString(air_station)+"' && "+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=(RDAirPlayConf::StartMode)q->value(0).toInt(); @@ -748,10 +748,10 @@ RDAirPlayConf::StartMode RDAirPlayConf::startMode(int lognum) const void RDAirPlayConf::setStartMode(int lognum,RDAirPlayConf::StartMode mode) const { - QString sql=QString("update LOG_MACHINES set ")+ - QString().sprintf("START_MODE=%d ",mode)+" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" &&"+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("update `LOG_MACHINES` set ")+ + QString().sprintf("`START_MODE`=%d ",mode)+" where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' &&"+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -760,10 +760,10 @@ void RDAirPlayConf::setStartMode(int lognum,RDAirPlayConf::StartMode mode) const bool RDAirPlayConf::autoRestart(int lognum) const { bool ret=false; - QString sql=QString("select AUTO_RESTART ")+ - "from LOG_MACHINES where STATION_NAME=\""+ - RDEscapeString(air_station)+"\" && "+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("select `AUTO_RESTART` ")+ + "from `LOG_MACHINES` where `STATION_NAME`='"+ + RDEscapeString(air_station)+"' && "+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toString()=="Y"; @@ -775,10 +775,10 @@ bool RDAirPlayConf::autoRestart(int lognum) const void RDAirPlayConf::setAutoRestart(int lognum,bool state) const { - QString sql=QString("update LOG_MACHINES set ")+ - "AUTO_RESTART=\""+RDYesNo(state)+"\" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" &&"+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("update `LOG_MACHINES` set ")+ + "`AUTO_RESTART`='"+RDYesNo(state)+"' where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' &&"+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -787,10 +787,10 @@ void RDAirPlayConf::setAutoRestart(int lognum,bool state) const QString RDAirPlayConf::logName(int lognum) const { QString ret; - QString sql=QString("select LOG_NAME ")+ - "from LOG_MACHINES where STATION_NAME=\""+ - RDEscapeString(air_station)+"\" && "+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("select `LOG_NAME` ")+ + "from `LOG_MACHINES` where `STATION_NAME`='"+ + RDEscapeString(air_station)+"' && "+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toString(); @@ -802,10 +802,10 @@ QString RDAirPlayConf::logName(int lognum) const void RDAirPlayConf::setLogName(int lognum,const QString &name) const { - QString sql=QString("update LOG_MACHINES set ")+ - "LOG_NAME=\""+RDEscapeString(name)+"\" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" &&"+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("update `LOG_MACHINES` set ")+ + "`LOG_NAME`='"+RDEscapeString(name)+"' where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' &&"+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -814,10 +814,10 @@ void RDAirPlayConf::setLogName(int lognum,const QString &name) const QString RDAirPlayConf::currentLog(int lognum) const { QString ret; - QString sql=QString("select CURRENT_LOG ")+ - "from LOG_MACHINES where STATION_NAME=\""+ - RDEscapeString(air_station)+"\" && "+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("select `CURRENT_LOG` ")+ + "from `LOG_MACHINES` where `STATION_NAME`='"+ + RDEscapeString(air_station)+"' && "+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toString(); @@ -829,10 +829,10 @@ QString RDAirPlayConf::currentLog(int lognum) const void RDAirPlayConf::setCurrentLog(int lognum,const QString &name) const { - QString sql=QString("update LOG_MACHINES set ")+ - "CURRENT_LOG=\""+RDEscapeString(name)+"\" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" &&"+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("update `LOG_MACHINES` set ")+ + "`CURRENT_LOG`='"+RDEscapeString(name)+"' where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' &&"+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -841,10 +841,10 @@ void RDAirPlayConf::setCurrentLog(int lognum,const QString &name) const bool RDAirPlayConf::logRunning(int lognum) const { bool ret=false; - QString sql=QString("select RUNNING ")+ - "from LOG_MACHINES where STATION_NAME=\""+ - RDEscapeString(air_station)+"\" && "+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("select `RUNNING` ")+ + "from `LOG_MACHINES` where `STATION_NAME`='"+ + RDEscapeString(air_station)+"' && "+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toString()=="Y"; @@ -856,10 +856,10 @@ bool RDAirPlayConf::logRunning(int lognum) const void RDAirPlayConf::setLogRunning(int lognum,bool state) const { - QString sql=QString("update LOG_MACHINES set ")+ - "RUNNING=\""+RDYesNo(state)+"\" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" &&"+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("update `LOG_MACHINES` set ")+ + "`RUNNING`='"+RDYesNo(state)+"' where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' &&"+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -868,10 +868,10 @@ void RDAirPlayConf::setLogRunning(int lognum,bool state) const int RDAirPlayConf::logId(int lognum) const { int ret=-1; - QString sql=QString("select LOG_ID ")+ - "from LOG_MACHINES where STATION_NAME=\""+ - RDEscapeString(air_station)+"\" && "+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("select `LOG_ID` ")+ + "from `LOG_MACHINES` where `STATION_NAME`='"+ + RDEscapeString(air_station)+"' && "+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toInt(); @@ -883,10 +883,10 @@ int RDAirPlayConf::logId(int lognum) const void RDAirPlayConf::setLogId(int lognum,int id) const { - QString sql=QString("update LOG_MACHINES set ")+ - QString().sprintf("LOG_ID=%d ",id)+" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" &&"+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("update `LOG_MACHINES` set ")+ + QString().sprintf("`LOG_ID`=%d ",id)+" where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' &&"+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -895,10 +895,10 @@ void RDAirPlayConf::setLogId(int lognum,int id) const int RDAirPlayConf::logCurrentLine(int lognum) const { int ret=-1; - QString sql=QString("select LOG_LINE ")+ - "from LOG_MACHINES where STATION_NAME=\""+ - RDEscapeString(air_station)+"\" && "+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("select `LOG_LINE` ")+ + "from `LOG_MACHINES` where `STATION_NAME`='"+ + RDEscapeString(air_station)+"' && "+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toInt(); @@ -910,10 +910,10 @@ int RDAirPlayConf::logCurrentLine(int lognum) const void RDAirPlayConf::setLogCurrentLine(int lognum,int line) const { - QString sql=QString("update LOG_MACHINES set ")+ - QString().sprintf("LOG_LINE=%d ",line)+" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" &&"+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("update `LOG_MACHINES` set ")+ + QString().sprintf("`LOG_LINE`=%d ",line)+" where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' &&"+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -922,10 +922,10 @@ void RDAirPlayConf::setLogCurrentLine(int lognum,int line) const unsigned RDAirPlayConf::logNowCart(int lognum) const { unsigned ret=0; - QString sql=QString("select NOW_CART ")+ - "from LOG_MACHINES where STATION_NAME=\""+ - RDEscapeString(air_station)+"\" && "+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("select `NOW_CART` ")+ + "from `LOG_MACHINES` where `STATION_NAME`='"+ + RDEscapeString(air_station)+"' && "+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toUInt(); @@ -937,10 +937,10 @@ unsigned RDAirPlayConf::logNowCart(int lognum) const void RDAirPlayConf::setLogNowCart(int lognum,unsigned cartnum) const { - QString sql=QString("update LOG_MACHINES set ")+ - QString().sprintf("NOW_CART=%u ",cartnum)+" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" &&"+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("update `LOG_MACHINES` set ")+ + QString().sprintf("`NOW_CART`=%u ",cartnum)+" where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' &&"+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -949,10 +949,10 @@ void RDAirPlayConf::setLogNowCart(int lognum,unsigned cartnum) const unsigned RDAirPlayConf::logNextCart(int lognum) const { unsigned ret=0; - QString sql=QString("select NEXT_CART ")+ - "from LOG_MACHINES where STATION_NAME=\""+ - RDEscapeString(air_station)+"\" && "+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("select `NEXT_CART` ")+ + "from `LOG_MACHINES` where `STATION_NAME`='"+ + RDEscapeString(air_station)+"' && "+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toUInt(); @@ -964,10 +964,10 @@ unsigned RDAirPlayConf::logNextCart(int lognum) const void RDAirPlayConf::setLogNextCart(int lognum,unsigned cartnum) const { - QString sql=QString("update LOG_MACHINES set ")+ - QString().sprintf("NEXT_CART=%u ",cartnum)+" where "+ - "STATION_NAME=\""+RDEscapeString(air_station)+"\" &&"+ - QString().sprintf("MACHINE=%d",lognum); + QString sql=QString("update `LOG_MACHINES` set ")+ + QString().sprintf("`NEXT_CART`=%u ",cartnum)+" where "+ + "`STATION_NAME`='"+RDEscapeString(air_station)+"' &&"+ + QString().sprintf("`MACHINE`=%d",lognum); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -1058,9 +1058,9 @@ QVariant RDAirPlayConf::GetChannelValue(const QString ¶m,RDAirPlayConf::Chan QString sql; QVariant ret; - sql=QString("select ")+param+" from "+air_tablename+"_CHANNELS where "+ - "(STATION_NAME=\""+RDEscapeString(air_station)+"\")&&"+ - QString().sprintf("(INSTANCE=%u)",chan); + sql=QString("select `")+param+"` from `"+air_tablename+"_CHANNELS` where "+ + "(`STATION_NAME`='"+RDEscapeString(air_station)+"')&&"+ + QString().sprintf("(`INSTANCE`=%u)",chan); q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0); @@ -1076,10 +1076,10 @@ void RDAirPlayConf::SetChannelValue(const QString ¶m,RDAirPlayConf::Channel RDSqlQuery *q; QString sql; - sql=QString("update ")+air_tablename+"_CHANNELS set "+ - param+QString().sprintf("=%d ",value)+ - "where (STATION_NAME=\""+RDEscapeString(air_station)+"\")&&"+ - QString().sprintf("(INSTANCE=%d)",chan); + sql=QString("update `")+air_tablename+"_CHANNELS` set `"+ + param+QString().sprintf("`=%d ",value)+ + "where (`STATION_NAME`='"+RDEscapeString(air_station)+"')&&"+ + QString().sprintf("(`INSTANCE`=%d)",chan); q=new RDSqlQuery(sql); delete q; } @@ -1090,10 +1090,10 @@ void RDAirPlayConf::SetChannelValue(const QString ¶m,RDAirPlayConf::Channel RDSqlQuery *q; QString sql; - sql=QString("update ")+air_tablename+"_CHANNELS set "+ - param+"=\""+RDEscapeString(value)+"\" "+ - "where (STATION_NAME=\""+RDEscapeString(air_station)+"\")&&"+ - QString().sprintf("(INSTANCE=%d)",chan); + sql=QString("update `")+air_tablename+"_CHANNELS` set `"+ + param+"`='"+RDEscapeString(value)+"' "+ + "where (`STATION_NAME`='"+RDEscapeString(air_station)+"')&&"+ + QString().sprintf("(`INSTANCE`=%d)",chan); q=new RDSqlQuery(sql); delete q; } @@ -1105,9 +1105,9 @@ RDAirPlayConf::OpMode RDAirPlayConf::GetLogMode(const QString ¶m,int mach) c QString sql; RDSqlQuery *q; - sql=QString("select ")+param+" from LOG_MODES where "+ - "(STATION_NAME=\""+RDEscapeString(air_station)+"\")&&"+ - QString().sprintf("MACHINE=%d",mach); + sql=QString("select `")+param+"` from `LOG_MODES` where "+ + "(`STATION_NAME`='"+RDEscapeString(air_station)+"')&&"+ + QString().sprintf("`MACHINE`=%d",mach); q=new RDSqlQuery(sql); if(q->first()) { mode=(RDAirPlayConf::OpMode)q->value(0).toInt(); @@ -1123,9 +1123,9 @@ void RDAirPlayConf::SetLogMode(const QString ¶m,int mach, QString sql; RDSqlQuery *q; - sql=QString("update LOG_MODES set ")+param+QString().sprintf("=%d ",mode)+ - "where (STATION_NAME=\""+RDEscapeString(air_station)+"\")&&"+ - QString().sprintf("(MACHINE=%d)",mach); + sql=QString("update `LOG_MODES` set `")+param+QString().sprintf("`=%d ",mode)+ + "where (`STATION_NAME`='"+RDEscapeString(air_station)+"')&&"+ + QString().sprintf("(`MACHINE`=%d)",mach); q=new RDSqlQuery(sql); delete q; } @@ -1136,9 +1136,9 @@ void RDAirPlayConf::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString("update `")+air_tablename+"` set "+ - param+QString().sprintf("=%d where ",value)+ - "STATION=\""+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; } @@ -1149,9 +1149,9 @@ void RDAirPlayConf::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString("update `")+air_tablename+"` set "+ - param+QString().sprintf("=%u where ",value)+ - "STATION=\""+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; } @@ -1162,9 +1162,9 @@ void RDAirPlayConf::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString("UPDATE `")+air_tablename+"` set "+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "STATION=\""+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/rdaudio_port.cpp b/lib/rdaudio_port.cpp index 636f4cc2..7d590edc 100644 --- a/lib/rdaudio_port.cpp +++ b/lib/rdaudio_port.cpp @@ -40,20 +40,30 @@ RDAudioPort::RDAudioPort(QString station,int card) audio_output_port_level[port]=400; } - sql=QString("select PORT_NUMBER,LEVEL,TYPE,MODE from AUDIO_INPUTS where ")+ - "STATION_NAME=\""+RDEscapeString(port_station)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",port_card); + sql=QString("select ")+ + "`PORT_NUMBER`,"+ // 00 + "`LEVEL`,"+ // 01 + "`TYPE`,"+ // 02 + "`MODE `"+ // 03 + "from `AUDIO_INPUTS` where "+ + "`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",port_card); q=new RDSqlQuery(sql); while(q->next()) { audio_input_port_level[q->value(0).toInt()]=q->value(1).toInt(); - audio_input_port_type[q->value(0).toInt()]=(RDAudioPort::PortType)q->value(2).toInt(); - audio_input_port_mode[q->value(0).toInt()]=(RDCae::ChannelMode)q->value(3).toInt(); + audio_input_port_type[q->value(0).toInt()]= + (RDAudioPort::PortType)q->value(2).toInt(); + audio_input_port_mode[q->value(0).toInt()]= + (RDCae::ChannelMode)q->value(3).toInt(); } delete q; - sql=QString("select PORT_NUMBER,LEVEL from AUDIO_OUTPUTS where ")+ - "STATION_NAME=\""+RDEscapeString(port_station)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",port_card); + sql=QString("select ")+ + "`PORT_NUMBER`,"+ // 00 + "`LEVEL `"+ // 01 + "from `AUDIO_OUTPUTS` where "+ + "`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",port_card); q=new RDSqlQuery(sql); while(q->next()) { audio_output_port_level[q->value(0).toInt()]=q->value(1).toInt(); @@ -77,9 +87,9 @@ int RDAudioPort::card() const RDCae::ClockSource RDAudioPort::clockSource() { RDCae::ClockSource ret=RDCae::InternalClock; - QString sql=QString("select CLOCK_SOURCE from AUDIO_CARDS where ")+ - "STATION_NAME=\""+RDEscapeString(port_station)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",port_card); + QString sql=QString("select `CLOCK_SOURCE` from `AUDIO_CARDS` where ")+ + "`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",port_card); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=(RDCae::ClockSource)q->value(0).toInt(); @@ -91,10 +101,10 @@ RDCae::ClockSource RDAudioPort::clockSource() void RDAudioPort::setClockSource(RDCae::ClockSource src) { - QString sql=QString("update AUDIO_CARDS set ")+ - QString().sprintf("CLOCK_SOURCE=%d where ",src)+ - "STATION_NAME=\""+RDEscapeString(port_station)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",port_card); + QString sql=QString("update `AUDIO_CARDS` set ")+ + QString().sprintf("`CLOCK_SOURCE`=%d where ",src)+ + "`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",port_card); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -116,11 +126,11 @@ void RDAudioPort::setInputPortType(int port,RDAudioPort::PortType type) return; } audio_input_port_type[port]=type; - QString sql=QString("update AUDIO_INPUTS set ")+ - QString().sprintf("TYPE=%d where ",type)+ - "STATION_NAME=\""+RDEscapeString(port_station)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d && ",port_card)+ - QString().sprintf("PORT_NUMBER=%d",port); + QString sql=QString("update `AUDIO_INPUTS` set ")+ + QString().sprintf("`TYPE`=%d where ",type)+ + "`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d && ",port_card)+ + QString().sprintf("`PORT_NUMBER`=%d",port); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -142,11 +152,11 @@ void RDAudioPort::setInputPortMode(int port,RDCae::ChannelMode mode) return; } audio_input_port_mode[port]=mode; - QString sql=QString("update AUDIO_INPUTS set ")+ - QString().sprintf("MODE=%d where ",mode)+ - "STATION_NAME=\""+RDEscapeString(port_station)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d && ",port_card)+ - QString().sprintf("PORT_NUMBER=%d",port); + QString sql=QString("update `AUDIO_INPUTS` set ")+ + QString().sprintf("`MODE`=%d where ",mode)+ + "`STATION_NAME`=\""+RDEscapeString(port_station)+"\" && "+ + QString().sprintf("`CARD_NUMBER`=%d && ",port_card)+ + QString().sprintf("`PORT_NUMBER`=%d",port); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -168,11 +178,11 @@ void RDAudioPort::setInputPortLevel(int port,int level) return; } audio_input_port_level[port]=level; - QString sql=QString("update AUDIO_INPUTS set ")+ - QString().sprintf("LEVEL=%d where ",level)+ - "STATION_NAME=\""+RDEscapeString(port_station)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d && ",port_card)+ - QString().sprintf("PORT_NUMBER=%d",port); + QString sql=QString("update `AUDIO_INPUTS` set ")+ + QString().sprintf("`LEVEL`=%d where ",level)+ + "`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d && ",port_card)+ + QString().sprintf("`PORT_NUMBER`=%d",port); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -194,11 +204,11 @@ void RDAudioPort::setOutputPortLevel(int port,int level) return; } audio_output_port_level[port]=level; - QString sql=QString("update AUDIO_OUTPUTS set ")+ - QString().sprintf("LEVEL=%d where ",level)+ - "STATION_NAME=\""+RDEscapeString(port_station)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d && ",port_card)+ - QString().sprintf("PORT_NUMBER=%d",port); + QString sql=QString("update `AUDIO_OUTPUTS` set ")+ + QString().sprintf("`LEVEL`=%d where ",level)+ + "`STATION_NAME`='"+RDEscapeString(port_station)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d && ",port_card)+ + QString().sprintf("`PORT_NUMBER`=%d",port); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdcart.cpp b/lib/rdcart.cpp index 32b69605..a7c4b4b0 100644 --- a/lib/rdcart.cpp +++ b/lib/rdcart.cpp @@ -111,27 +111,26 @@ bool RDCart::selectCut(QString *cut,const QTime &time) const switch(type()) { case RDCart::Audio: sql=QString("select ")+ - "CUT_NAME,"+ - "PLAY_ORDER,"+ - "WEIGHT,"+ - "LOCAL_COUNTER,"+ - "LAST_PLAY_DATETIME "+ - "from CUTS where ("+ - "((START_DATETIME<=\""+datetime_str+"\")&&"+ - "(END_DATETIME>=\""+datetime_str+"\"))||"+ - "(START_DATETIME is null))&&"+ - "(((START_DAYPART<=\""+time_str+"\")&&"+ - "(END_DAYPART>=\""+time_str+"\")||"+ - "START_DAYPART is null))&&"+ - "("+RDGetShortDayNameEN(current_date.dayOfWeek()).toUpper()+"=\"Y\")&&"+ - QString().sprintf("(CART_NUMBER=%u)&&(EVERGREEN=\"N\")&&",cart_number)+ - "(LENGTH>0)"; + "`CUT_NAME`,"+ // 00 + "`PLAY_ORDER`,"+ // 01 + "`WEIGHT`,"+ // 02 + "`LOCAL_COUNTER`,"+ // 03 + "`LAST_PLAY_DATETIME` "+ // 04 + "from `CUTS` where ("+ + "((`START_DATETIME`<='"+datetime_str+"')&&"+ + "(`END_DATETIME`>='"+datetime_str+"'))||"+ + "(`START_DATETIME` is null))&&"+ + "(((`START_DAYPART`<='"+time_str+"')&&"+ + "(`END_DAYPART`>='"+time_str+"')||"+ + "`START_DAYPART` is null))&&"+ + "("+RDGetShortDayNameEN(current_date.dayOfWeek()).toUpper()+"='Y')&&"+ + QString().sprintf("(`CART_NUMBER`=%u)&&(`EVERGREEN`='N')&&",cart_number)+ + "(`LENGTH`>0)"; if(useWeighting()) { - sql+=" order by LOCAL_COUNTER ASC, ISNULL(END_DATETIME), END_DATETIME ASC, \ - LAST_PLAY_DATETIME ASC"; + sql+=" order by `LOCAL_COUNTER` ASC, ISNULL(`END_DATETIME`), `END_DATETIME` ASC, `LAST_PLAY_DATETIME` ASC"; } else { - sql+=" order by LAST_PLAY_DATETIME desc, PLAY_ORDER desc"; + sql+=" order by `LAST_PLAY_DATETIME` desc, `PLAY_ORDER` desc"; } q=new RDSqlQuery(sql); cutname=GetNextCut(q); @@ -144,20 +143,20 @@ bool RDCart::selectCut(QString *cut,const QTime &time) const } if(cutname.isEmpty()) { // No valid cuts, try the evergreen sql=QString("select ")+ - "CUT_NAME,"+ - "PLAY_ORDER,"+ - "WEIGHT,"+ - "LOCAL_COUNTER "+ - "LAST_PLAY_DATETIME "+ - "from CUTS where "+ - QString().sprintf("(CART_NUMBER=%u)&&",cart_number)+ - "(EVERGREEN=\"Y\")&&"+ - "(LENGTH>0)"; + "`CUT_NAME`,"+ + "`PLAY_ORDER`,"+ + "`WEIGHT`,"+ + "`LOCAL_COUNTER` "+ + "`LAST_PLAY_DATETIME` "+ + "from `CUTS` where "+ + QString().sprintf("(`CART_NUMBER`=%u)&&",cart_number)+ + "(`EVERGREEN`='Y')&&"+ + "(`LENGTH`>0)"; if(useWeighting()) { - sql+=" order by LOCAL_COUNTER"; + sql+=" order by `LOCAL_COUNTER`"; } else { - sql+=" order by LAST_PLAY_DATETIME desc"; + sql+=" order by `LAST_PLAY_DATETIME` desc"; } q=new RDSqlQuery(sql); cutname=GetNextCut(q); @@ -296,7 +295,10 @@ QStringList RDCart::schedCodesList() const QStringList list; RDSqlQuery *q; - QString sql=QString().sprintf("select SCHED_CODE from CART_SCHED_CODES where CART_NUMBER=%u", cart_number); + QString sql=QString("select ")+ + "`SCHED_CODE` "+ + "from `CART_SCHED_CODES` where "+ + QString().sprintf("`CART_NUMBER`=%u", cart_number); q=new RDSqlQuery(sql); while(q->next()) { list.push_back(q->value(0).toString()); @@ -312,12 +314,15 @@ void RDCart::setSchedCodesList(const QStringList &codes) const QString sql; QString sched_codes=""; - sql=QString().sprintf("delete from CART_SCHED_CODES where CART_NUMBER=%u",cart_number); + sql=QString("delete from `CART_SCHED_CODES` where ")+ + QString().sprintf("`CART_NUMBER`=%u",cart_number); q=new RDSqlQuery(sql); delete q; for(int i=0;inext()) { QString wstr=q->value(0).toString(); @@ -559,9 +564,13 @@ unsigned RDCart::calculateAverageLength(unsigned *max_dev) const switch(type()) { case RDCart::Audio: - sql=QString().sprintf("select LENGTH, WEIGHT,END_DATETIME from CUTS\ - where (CART_NUMBER=%u)&&(LENGTH>0)", - cart_number); + sql=QString("select ")+ + "`LENGTH`,"+ // 00 + "`WEIGHT`,"+ // 01 + "`END_DATETIME` "+ // 02 + "from `CUTS` where "+ + QString().sprintf("(`CART_NUMBER`=%u)&&",cart_number)+ + "(`LENGTH`>0)"; q=new RDSqlQuery(sql); while(q->next()) { weight = q->value(1).toUInt(); @@ -859,11 +868,11 @@ void RDCart::setPending(const QString &station_name) QString sql; RDSqlQuery *q; - sql=QString("update CART set PENDING_STATION=\"")+ - RDEscapeString(station_name)+"\","+ - "PENDING_DATETIME=now(),"+ - "PENDING_PID="+QString().sprintf("%d ",getpid())+ - QString().sprintf("where NUMBER=%u",cart_number); + sql=QString("update `CART` set `PENDING_STATION`='")+ + RDEscapeString(station_name)+"',"+ + "`PENDING_DATETIME`=now(),"+ + "`PENDING_PID`="+QString().sprintf("%d ",getpid())+ + QString().sprintf("where `NUMBER`=%u",cart_number); q=new RDSqlQuery(sql); delete q; } @@ -874,9 +883,9 @@ void RDCart::clearPending() const QString sql; RDSqlQuery *q; - sql=QString("update CART set PENDING_STATION=NULL,")+ - "PENDING_DATETIME=NULL "+ - QString().sprintf("where NUMBER=%u",cart_number); + sql=QString("update `CART` set `PENDING_STATION`=NULL,")+ + "`PENDING_DATETIME`=NULL "+ + QString().sprintf("where `NUMBER`=%u",cart_number); q=new RDSqlQuery(sql); delete q; } @@ -900,21 +909,21 @@ void RDCart::getMetadata(RDWaveData *data) const RDSqlQuery *q; sql=QString("select ")+ - "TITLE,"+ // 00 - "ARTIST,"+ // 01 - "ALBUM,"+ // 02 - "YEAR,"+ // 03 - "LABEL,"+ // 04 - "CLIENT,"+ // 05 - "AGENCY,"+ // 06 - "PUBLISHER,"+ // 07 - "COMPOSER,"+ // 08 - "USER_DEFINED,"+ // 09 - "CONDUCTOR,"+ // 10 - "SONG_ID,"+ // 11 - "BPM,"+ // 12 - "USAGE_CODE "+ // 13 - QString().sprintf(" from CART where NUMBER=%u",cart_number); + "`TITLE`,"+ // 00 + "`ARTIST`,"+ // 01 + "`ALBUM`,"+ // 02 + "`YEAR`,"+ // 03 + "`LABEL`,"+ // 04 + "`CLIENT`,"+ // 05 + "`AGENCY`,"+ // 06 + "`PUBLISHER`,"+ // 07 + "`COMPOSER`,"+ // 08 + "`USER_DEFINED`,"+ // 09 + "`CONDUCTOR`,"+ // 10 + "`SONG_ID`,"+ // 11 + "`BPM`,"+ // 12 + "`USAGE_CODE` "+ // 13 + QString().sprintf(" from `CART` where `NUMBER`=%u",cart_number); q=new RDSqlQuery(sql); if(q->first()) { data->setCartNumber(cart_number); @@ -941,54 +950,54 @@ void RDCart::getMetadata(RDWaveData *data) const void RDCart::setMetadata(const RDWaveData *data) { - QString sql="update CART set "; + QString sql="update `CART` set "; if(!data->title().isEmpty()) { - sql+=QString("TITLE=\"")+RDEscapeString(data->title().left(191))+"\","; + sql+=QString("`TITLE`='")+RDEscapeString(data->title().left(191))+"',"; } if(!data->artist().isEmpty()) { - sql+=QString("ARTIST=\"")+RDEscapeString(data->artist().left(191))+"\","; + sql+=QString("`ARTIST`='")+RDEscapeString(data->artist().left(191))+"',"; } if(!data->album().isEmpty()) { - sql+=QString("ALBUM=\"")+RDEscapeString(data->album().left(191))+"\","; + sql+=QString("`ALBUM`='")+RDEscapeString(data->album().left(191))+"',"; } if(data->releaseYear()>0) { - sql+=QString().sprintf("YEAR=\"%04d-01-01\",",data->releaseYear()); + sql+=QString().sprintf("`YEAR`='%04d-01-01',",data->releaseYear()); } if(!data->label().isEmpty()) { - sql+=QString("LABEL=\"")+RDEscapeString(data->label().left(64))+"\","; + sql+=QString("`LABEL`='")+RDEscapeString(data->label().left(64))+"',"; } if(!data->conductor().isEmpty()) { - sql+=QString("CONDUCTOR=\"")+RDEscapeString(data->conductor().left(64))+ - "\","; + sql+=QString("`CONDUCTOR`='")+ + RDEscapeString(data->conductor().left(64))+"',"; } if(!data->client().isEmpty()) { - sql+=QString("CLIENT=\"")+RDEscapeString(data->client().left(64))+"\","; + sql+=QString("`CLIENT`='")+RDEscapeString(data->client().left(64))+"',"; } if(!data->agency().isEmpty()) { - sql+=QString("AGENCY=\"")+RDEscapeString(data->agency().left(64))+"\","; + sql+=QString("`AGENCY`='")+RDEscapeString(data->agency().left(64))+"',"; } if(!data->publisher().isEmpty()) { - sql+=QString("PUBLISHER=\"")+RDEscapeString(data->publisher().left(64))+ - "\","; + sql+=QString("`PUBLISHER`='")+RDEscapeString(data->publisher().left(64))+ + "',"; } if(!data->composer().isEmpty()) { - sql+=QString("COMPOSER=\"")+RDEscapeString(data->composer().left(64))+"\","; + sql+=QString("`COMPOSER`='")+RDEscapeString(data->composer().left(64))+"',"; } if(!data->userDefined().isEmpty()) { - sql+=QString("USER_DEFINED=\"")+ - RDEscapeString(data->userDefined().left(191))+"\","; + sql+=QString("`USER_DEFINED`='")+ + RDEscapeString(data->userDefined().left(191))+"',"; } if(!data->tmciSongId().isEmpty()) { - sql+=QString("SONG_ID=\"")+RDEscapeString(data->tmciSongId().left(32))+ - "\","; + sql+=QString("`SONG_ID`='")+RDEscapeString(data->tmciSongId().left(32))+ + "',"; } if(data->beatsPerMinute()>0) { - sql+=QString().sprintf("BPM=%u,",data->beatsPerMinute()); + sql+=QString().sprintf("`BPM`=%u,",data->beatsPerMinute()); } - sql+=QString().sprintf("USAGE_CODE=%u,",data->usageCode()); + sql+=QString().sprintf("`USAGE_CODE`=%u,",data->usageCode()); if(sql.right(1)==",") { sql=sql.left(sql.length()-1); - sql+=QString().sprintf(" where NUMBER=%u",cart_number); + sql+=QString().sprintf(" where `NUMBER`=%u",cart_number); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -1001,8 +1010,8 @@ bool RDCart::validateLengths(int len) const { int maxlen=(int)(RD_TIMESCALE_MAX*(double)len); int minlen=(int)(RD_TIMESCALE_MIN*(double)len); - QString sql=QString().sprintf("select LENGTH from CUTS where CART_NUMBER=%u", - cart_number); + QString sql=QString("select `LENGTH` from `CUTS` where ")+ + QString().sprintf("`CART_NUMBER`=%u",cart_number); RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { if((q->value(0).toInt()>maxlen)||(q->value(0).toInt()=0) { - sql+=QString("&&(CUT_NAME=\"")+RDCut::cutName(cart_number,cutnum)+"\")"; + sql+=QString("&&(`CUT_NAME`=\"")+RDCut::cutName(cart_number,cutnum)+"\")"; } RDSqlQuery *q=new RDSqlQuery(sql); QString xml=RDCart::xml(q,include_cuts,absolute,settings); @@ -1054,13 +1063,28 @@ void RDCart::updateLength(bool enforce_length,unsigned length) bool dow_active[7]={false,false,false,false,false,false,false}; bool time_ok=true; - QString sql=QString(). - sprintf("select LENGTH,SEGUE_START_POINT,SEGUE_END_POINT,START_POINT,\ - SUN,MON,TUE,WED,THU,FRI,SAT,START_DAYPART,END_DAYPART,\ - HOOK_START_POINT,HOOK_END_POINT,WEIGHT,END_DATETIME,\ - TALK_START_POINT,TALK_END_POINT \ - from CUTS where (CUT_NAME like \"%06d%%\")&&(LENGTH>0)", - cart_number); + QString sql=QString("select ")+ + "`LENGTH`,"+ // 00 + "`SEGUE_START_POINT`,"+ // 01 + "`SEGUE_END_POINT`,"+ // 02 + "`START_POINT`,"+ // 03 + "`SUN`,"+ // 04 + "`MON`,"+ // 05 + "`TUE`,"+ // 06 + "`WED`,"+ // 07 + "`THU`,"+ // 08 + "`FRI`,"+ // 09 + "`SAT`,"+ // 10 + "`START_DAYPART`,"+ // 11 + "`END_DAYPART`,"+ // 12 + "`HOOK_START_POINT`,"+ // 13 + "`HOOK_END_POINT`,"+ // 14 + "`WEIGHT`,"+ // 15 + "`END_DATETIME`,"+ // 16 + "`TALK_START_POINT`,"+ // 17 + "`TALK_END_POINT` "+ // 18 + "from `CUTS` where "+ + QString().sprintf("(`CUT_NAME` like \"%06d%%\")&&(`LENGTH`>0)",cart_number); RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { for(unsigned i=0;i<7;i++) { @@ -1129,27 +1153,28 @@ void RDCart::updateLength(bool enforce_length,unsigned length) bool dates_valid=true; 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); + "`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_validity)+ - "CUT_NAME=\""+RDEscapeString(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()); @@ -1189,22 +1214,22 @@ void RDCart::updateLength(bool enforce_length,unsigned length) // // Set start/end datetimes // - sql="update CART set "; + sql="update `CART` set "; if(start_datetime.isNull()||(!dates_valid)) { - sql+="START_DATETIME=NULL,"; + sql+="`START_DATETIME`=NULL,"; } else { - sql+=QString("START_DATETIME=")+ + sql+=QString("`START_DATETIME`=")+ RDCheckDateTime(start_datetime,"yyyy-MM-dd hh:mm:ss")+","; } if(end_datetime.isNull()||(!dates_valid)) { - sql+="END_DATETIME=NULL,"; + sql+="`END_DATETIME`=NULL,"; } else { - sql+=QString("END_DATETIME=")+ + sql+=QString("`END_DATETIME`=")+ RDCheckDateTime(end_datetime,"yyyy-MM-dd hh:mm:ss")+","; } - sql+=QString().sprintf("VALIDITY=%u where NUMBER=%u", + sql+=QString().sprintf("`VALIDITY`=%u where `NUMBER`=%u", cart_validity,cart_number); q=new RDSqlQuery(sql); delete q; @@ -1214,8 +1239,8 @@ void RDCart::updateLength(bool enforce_length,unsigned length) void RDCart::resetRotation() const { QString sql= - QString().sprintf("update CUTS set LOCAL_COUNTER=0 where CART_NUMBER=%d", - cart_number); + QString("update `CUTS` set `LOCAL_COUNTER`=0 where ")+ + QString().sprintf("`CART_NUMBER`=%d",cart_number); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -1225,8 +1250,8 @@ void RDCart::writeTimestamp() { QString sql; RDSqlQuery *q; - sql=QString().sprintf("update CART set METADATA_DATETIME=now() \ - where NUMBER=%u",cart_number); + sql=QString("update `CART` set `METADATA_DATETIME`=now() ")+ + QString().sprintf("where `NUMBER`=%u",cart_number); q=new RDSqlQuery(sql); delete q; metadata_changed=false; @@ -1250,15 +1275,15 @@ int RDCart::addCut(unsigned format,unsigned bitrate,unsigned chans, if(!RDCut::create(next_name)) { return -1; } - sql=QString("update CUTS set ")+ - "ISCI=\""+RDEscapeString(isci)+"\","+ - "DESCRIPTION=\""+RDEscapeString(desc)+"\","+ - "LENGTH=0,"+ - QString().sprintf("CODING_FORMAT=%d,",format)+ - QString().sprintf("BIT_RATE=%d,",bitrate)+ - QString().sprintf("CHANNELS=%d,",chans)+ - QString().sprintf("PLAY_ORDER=%d where ",next)+ - "CUT_NAME=\""+next_name+"\""; + sql=QString("update `CUTS` set ")+ + "`ISCI`='"+RDEscapeString(isci)+"',"+ + "`DESCRIPTION`='"+RDEscapeString(desc)+"',"+ + "`LENGTH`=0,"+ + QString().sprintf("`CODING_FORMAT`=%d,",format)+ + QString().sprintf("`BIT_RATE`=%d,",bitrate)+ + QString().sprintf("`CHANNELS`=%d,",chans)+ + QString().sprintf("`PLAY_ORDER`=%d where ",next)+ + "`CUT_NAME`='"+RDEscapeString(next_name)+"'"; q=new RDSqlQuery(sql); delete q; @@ -1275,8 +1300,8 @@ bool RDCart::removeAllCuts(RDStation *station,RDUser *user,RDConfig *config) QString sql; RDSqlQuery *q; - sql=QString().sprintf("select CUT_NAME from CUTS where CART_NUMBER=%u", - cart_number); + sql=QString("select `CUT_NAME` from `CUTS` where ")+ + QString().sprintf("`CART_NUMBER`=%u",cart_number); q=new RDSqlQuery(sql); while(q->next()) { if(!removeCut(station,user,q->value(0).toString(),config)) { @@ -1298,21 +1323,18 @@ bool RDCart::removeCut(RDStation *station,RDUser *user,const QString &cutname, } QString sql; - RDSqlQuery *q; QString filename; filename = RDCut::pathName(cutname); if(!RDCart::removeCutAudio(station,user,cart_number,cutname,config)) { return false; } - sql=QString("delete from REPL_CUT_STATE where ")+ - "CUT_NAME=\""+RDEscapeString(cutname)+"\""; - q=new RDSqlQuery(sql); - delete q; - sql=QString("delete from CUTS where ")+ - "CUT_NAME=\""+RDEscapeString(cutname)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("delete from `REPL_CUT_STATE` where ")+ + "`CUT_NAME`='"+RDEscapeString(cutname)+"'"; + RDSqlQuery::apply(sql); + sql=QString("delete from `CUTS` where ")+ + "`CUT_NAME`='"+RDEscapeString(cutname)+"'"; + RDSqlQuery::apply(sql); setCutQuantity(cutQuantity()-1); metadata_changed=true; @@ -1352,11 +1374,11 @@ unsigned RDCart::create(const QString &groupname,RDCart::Type type, delete group; return 0; } - QString sql=QString("insert into CART set ")+ - QString().sprintf("NUMBER=%d,",cartnum)+ - QString().sprintf("TYPE=%d,",type)+ - "GROUP_NAME=\""+RDEscapeString(groupname)+"\","+ - "TITLE=\""+RDEscapeString(RDCart::uniqueCartTitle(cartnum))+"\""; + QString sql=QString("insert into `CART` set ")+ + QString().sprintf("`NUMBER`=%d,",cartnum)+ + QString().sprintf("`TYPE`=%d,",type)+ + "`GROUP_NAME`='"+RDEscapeString(groupname)+"',"+ + "`TITLE`='"+RDEscapeString(RDCart::uniqueCartTitle(cartnum))+"'"; RDSqlQuery *q=new RDSqlQuery(sql); ok=q->isActive(); delete q; @@ -1364,11 +1386,11 @@ unsigned RDCart::create(const QString &groupname,RDCart::Type type, return cartnum; } else { - QString sql=QString("insert into CART set ")+ - QString().sprintf("NUMBER=%d,",cartnum)+ - QString().sprintf("TYPE=%d,",type)+ - "GROUP_NAME=\""+RDEscapeString(groupname)+"\","+ - "TITLE=\""+RDEscapeString(RDCart::uniqueCartTitle(cartnum))+"\""; + QString sql=QString("insert into `CART` set ")+ + QString().sprintf("`NUMBER`=%d,",cartnum)+ + QString().sprintf("`TYPE`=%d,",type)+ + "`GROUP_NAME`='"+RDEscapeString(groupname)+"',"+ + "`TITLE`='"+RDEscapeString(RDCart::uniqueCartTitle(cartnum))+"'"; RDSqlQuery *q=new RDSqlQuery(sql); ok=q->isActive(); delete q; @@ -1384,90 +1406,90 @@ unsigned RDCart::create(const QString &groupname,RDCart::Type type, QString RDCart::xmlSql(bool include_cuts) { QString sql=QString("select ")+ - "CART.NUMBER,"+ // 00 - "CART.TYPE,"+ // 01 - "CART.GROUP_NAME,"+ // 02 - "CART.TITLE,"+ // 03 - "CART.ARTIST,"+ // 04 - "CART.ALBUM,"+ // 05 - "CART.YEAR,"+ // 06 - "CART.LABEL,"+ // 07 - "CART.CLIENT,"+ // 08 - "CART.AGENCY,"+ // 09 - "CART.PUBLISHER,"+ // 10 - "CART.COMPOSER,"+ // 11 - "CART.USER_DEFINED,"+ // 12 - "CART.USAGE_CODE,"+ // 13 - "CART.FORCED_LENGTH,"+ // 14 - "CART.AVERAGE_LENGTH,"+ // 15 - "CART.LENGTH_DEVIATION,"+ // 16 - "CART.AVERAGE_SEGUE_LENGTH,"+ // 17 - "CART.AVERAGE_HOOK_LENGTH,"+ // 18 - "CART.MINIMUM_TALK_LENGTH,"+ // 19 - "CART.MAXIMUM_TALK_LENGTH,"+ // 20 - "CART.CUT_QUANTITY,"+ // 21 - "CART.LAST_CUT_PLAYED,"+ // 22 - "CART.VALIDITY,"+ // 23 - "CART.ENFORCE_LENGTH,"+ // 24 - "CART.ASYNCRONOUS,"+ // 25 - "CART.OWNER,"+ // 26 - "CART.METADATA_DATETIME,"+ // 27 - "CART.CONDUCTOR,"+ // 28 - "CART.MACROS,"+ // 29 - "CART.SONG_ID "; // 30 + "`CART`.`NUMBER`,"+ // 00 + "`CART`.`TYPE`,"+ // 01 + "`CART`.`GROUP_NAME`,"+ // 02 + "`CART`.`TITLE`,"+ // 03 + "`CART`.`ARTIST`,"+ // 04 + "`CART`.`ALBUM`,"+ // 05 + "`CART`.`YEAR`,"+ // 06 + "`CART`.`LABEL`,"+ // 07 + "`CART`.`CLIENT`,"+ // 08 + "`CART`.`AGENCY`,"+ // 09 + "`CART`.`PUBLISHER`,"+ // 10 + "`CART`.`COMPOSER`,"+ // 11 + "`CART`.`USER_DEFINED`,"+ // 12 + "`CART`.`USAGE_CODE`,"+ // 13 + "`CART`.`FORCED_LENGTH`,"+ // 14 + "`CART`.`AVERAGE_LENGTH`,"+ // 15 + "`CART`.`LENGTH_DEVIATION`,"+ // 16 + "`CART`.`AVERAGE_SEGUE_LENGTH`,"+ // 17 + "`CART`.`AVERAGE_HOOK_LENGTH`,"+ // 18 + "`CART`.`MINIMUM_TALK_LENGTH`,"+ // 19 + "`CART`.`MAXIMUM_TALK_LENGTH`,"+ // 20 + "`CART`.`CUT_QUANTITY`,"+ // 21 + "`CART`.`LAST_CUT_PLAYED`,"+ // 22 + "`CART`.`VALIDITY`,"+ // 23 + "`CART`.`ENFORCE_LENGTH`,"+ // 24 + "`CART`.`ASYNCRONOUS`,"+ // 25 + "`CART`.`OWNER`,"+ // 26 + "`CART`.`METADATA_DATETIME`,"+ // 27 + "`CART`.`CONDUCTOR`,"+ // 28 + "`CART`.`MACROS`,"+ // 29 + "`CART`.`SONG_ID` "; // 30 if(include_cuts) { sql+=QString(",")+ - "CUTS.CUT_NAME,"+ // 31 - "CUTS.EVERGREEN,"+ // 32 - "CUTS.DESCRIPTION,"+ // 33 - "CUTS.OUTCUE,"+ // 34 - "CUTS.ISRC,"+ // 35 - "CUTS.ISCI,"+ // 36 - "CUTS.LENGTH,"+ // 37 - "CUTS.ORIGIN_DATETIME,"+ // 38 - "CUTS.START_DATETIME,"+ // 39 - "CUTS.END_DATETIME,"+ // 40 - "CUTS.SUN,"+ // 41 - "CUTS.MON,"+ // 42 - "CUTS.TUE,"+ // 43 - "CUTS.WED,"+ // 44 - "CUTS.THU,"+ // 45 - "CUTS.FRI,"+ // 46 - "CUTS.SAT,"+ // 47 - "CUTS.START_DAYPART,"+ // 48 - "CUTS.END_DAYPART,"+ // 49 - "CUTS.ORIGIN_NAME,"+ // 50 - "CUTS.ORIGIN_LOGIN_NAME,"+ // 51 - "CUTS.SOURCE_HOSTNAME,"+ // 52 - "CUTS.WEIGHT,"+ // 53 - "CUTS.LAST_PLAY_DATETIME,"+ // 54 - "CUTS.PLAY_COUNTER,"+ // 55 - "CUTS.LOCAL_COUNTER,"+ // 56 - "CUTS.VALIDITY,"+ // 57 - "CUTS.CODING_FORMAT,"+ // 58 - "CUTS.SAMPLE_RATE,"+ // 59 - "CUTS.BIT_RATE,"+ // 60 - "CUTS.CHANNELS,"+ // 61 - "CUTS.PLAY_GAIN,"+ // 62 - "CUTS.START_POINT,"+ // 63 - "CUTS.END_POINT,"+ // 64 - "CUTS.FADEUP_POINT,"+ // 65 - "CUTS.FADEDOWN_POINT,"+ // 66 - "CUTS.SEGUE_START_POINT,"+ // 67 - "CUTS.SEGUE_END_POINT,"+ // 68 - "CUTS.SEGUE_GAIN,"+ // 69 - "CUTS.HOOK_START_POINT,"+ // 70 - "CUTS.HOOK_END_POINT,"+ // 71 - "CUTS.TALK_START_POINT,"+ // 72 - "CUTS.TALK_END_POINT,"+ // 73 - "CUTS.RECORDING_MBID,"+ // 74 - "CUTS.RELEASE_MBID "+ // 75 + "`CUTS`.`CUT_NAME`,"+ // 31 + "`CUTS`.`EVERGREEN`,"+ // 32 + "`CUTS`.`DESCRIPTION`,"+ // 33 + "`CUTS`.`OUTCUE`,"+ // 34 + "`CUTS`.`ISRC`,"+ // 35 + "`CUTS`.`ISCI`,"+ // 36 + "`CUTS`.`LENGTH`,"+ // 37 + "`CUTS`.`ORIGIN_DATETIME`,"+ // 38 + "`CUTS`.`START_DATETIME`,"+ // 39 + "`CUTS`.`END_DATETIME`,"+ // 40 + "`CUTS`.`SUN`,"+ // 41 + "`CUTS`.`MON`,"+ // 42 + "`CUTS`.`TUE`,"+ // 43 + "`CUTS`.`WED`,"+ // 44 + "`CUTS`.`THU`,"+ // 45 + "`CUTS`.`FRI`,"+ // 46 + "`CUTS`.`SAT`,"+ // 47 + "`CUTS`.`START_DAYPART`,"+ // 48 + "`CUTS`.`END_DAYPART`,"+ // 49 + "`CUTS`.`ORIGIN_NAME`,"+ // 50 + "`CUTS`.`ORIGIN_LOGIN_NAME`,"+ // 51 + "`CUTS`.`SOURCE_HOSTNAME`,"+ // 52 + "`CUTS`.`WEIGHT`,"+ // 53 + "`CUTS`.`LAST_PLAY_DATETIME`,"+ // 54 + "`CUTS`.`PLAY_COUNTER`,"+ // 55 + "`CUTS`.`LOCAL_COUNTER`,"+ // 56 + "`CUTS`.`VALIDITY`,"+ // 57 + "`CUTS`.`CODING_FORMAT`,"+ // 58 + "`CUTS`.`SAMPLE_RATE`,"+ // 59 + "`CUTS`.`BIT_RATE`,"+ // 60 + "`CUTS`.`CHANNELS`,"+ // 61 + "`CUTS`.`PLAY_GAIN`,"+ // 62 + "`CUTS`.`START_POINT`,"+ // 63 + "`CUTS`.`END_POINT`,"+ // 64 + "`CUTS`.`FADEUP_POINT`,"+ // 65 + "`CUTS`.`FADEDOWN_POINT`,"+ // 66 + "`CUTS`.`SEGUE_START_POINT`,"+ // 67 + "`CUTS`.`SEGUE_END_POINT`,"+ // 68 + "`CUTS`.`SEGUE_GAIN`,"+ // 69 + "`CUTS`.`HOOK_START_POINT`,"+ // 70 + "`CUTS`.`HOOK_END_POINT`,"+ // 71 + "`CUTS`.`TALK_START_POINT`,"+ // 72 + "`CUTS`.`TALK_END_POINT`,"+ // 73 + "`CUTS`.`RECORDING_MBID`,"+ // 74 + "`CUTS`.`RELEASE_MBID` "+ // 75 - "from CART left join CUTS "+ - "on CART.NUMBER=CUTS.CART_NUMBER "; + "from `CART` left join `CUTS` "+ + "on `CART`.`NUMBER`=`CUTS`.`CART_NUMBER` "; } else { - sql+=" from CART "; + sql+=" from `CART` "; } return sql; } @@ -1582,7 +1604,7 @@ QString RDCart::cutXml(unsigned cartnum,int cutnum,bool absolute, { QString xml=""; QString sql=RDCart::xmlSql(true)+" where "+ - "CUTS.CUT_NAME=\""+RDCut::cutName(cartnum,cutnum)+"\""; + "`CUTS`.`CUT_NAME`='"+RDCut::cutName(cartnum,cutnum)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { xml=RDCut::xml(q,absolute,settings); @@ -1595,8 +1617,9 @@ QString RDCart::cutXml(unsigned cartnum,int cutnum,bool absolute, bool RDCart::exists(unsigned cartnum) { - RDSqlQuery *q=new RDSqlQuery(QString().sprintf("select NUMBER from CART\ - where NUMBER=%u",cartnum)); + QString sql=QString("select `NUMBER` from `CART` where ")+ + QString().sprintf("`NUMBER`=%u",cartnum); + RDSqlQuery *q=new RDSqlQuery(sql); bool ret=q->first(); delete q; return ret; @@ -1674,8 +1697,8 @@ bool RDCart::removeCart(unsigned cart_num,RDStation *station,RDUser *user, QString sql; RDSqlQuery *q; - sql=QString().sprintf("select CUT_NAME from CUTS where CART_NUMBER=%u", - cart_num); + sql=QString("select `CUT_NAME` from `CUTS` where ")+ + QString().sprintf("`CART_NUMBER`=%u",cart_num); q=new RDSqlQuery(sql); while(q->next()) { if(!RDCart::removeCutAudio(station,user,cart_num,q->value(0).toString(), @@ -1685,19 +1708,22 @@ bool RDCart::removeCart(unsigned cart_num,RDStation *station,RDUser *user, } } delete q; - sql=QString().sprintf("delete from CUTS where CART_NUMBER=%u",cart_num); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from CART_SCHED_CODES where CART_NUMBER=%u",cart_num); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from REPL_CART_STATE where CART_NUMBER=%u", - cart_num); - q=new RDSqlQuery(sql); - delete q; - sql=QString().sprintf("delete from CART where NUMBER=%u",cart_num); - q=new RDSqlQuery(sql); - delete q; + + sql=QString("delete from `CUTS` where ")+ + QString().sprintf("`CART_NUMBER`=%u",cart_num); + RDSqlQuery::apply(sql); + + sql=QString("delete from `CART_SCHED_CODES` where ")+ + QString().sprintf("`CART_NUMBER`=%u",cart_num); + RDSqlQuery::apply(sql); + + sql=QString("delete from `REPL_CART_STATE` where ")+ + QString().sprintf("`CART_NUMBER`=%u",cart_num); + RDSqlQuery::apply(sql); + + sql=QString("delete from `CART` where ")+ + QString().sprintf("`NUMBER`=%u",cart_num); + RDSqlQuery::apply(sql); return true; } @@ -1718,8 +1744,8 @@ bool RDCart::removeCutAudio(RDStation *station,RDUser *user,unsigned cart_num, if(user==NULL) { unlink(RDCut::pathName(cutname).toUtf8()); unlink((RDCut::pathName(cutname)+".energy").toUtf8()); - sql=QString("delete from CUT_EVENTS where ")+ - "CUT_NAME=\""+cutname+"\""; + sql=QString("delete from `CUT_EVENTS` where ")+ + "`CUT_NAME`='"+cutname+"'"; q=new RDSqlQuery(sql); delete q; } @@ -1772,9 +1798,9 @@ void RDCart::removePending(RDStation *station,RDUser *user,RDConfig *config) QString sql; RDSqlQuery *q; - sql=QString("delete from CART where ")+ - "(PENDING_STATION=\""+RDEscapeString(station->name())+"\")&&"+ - "(PENDING_PID="+QString().sprintf("%d)",getpid()); + sql=QString("delete from `CART` where ")+ + "(`PENDING_STATION`='"+RDEscapeString(station->name())+"')&&"+ + "(`PENDING_PID`="+QString().sprintf("%d)",getpid()); q=new RDSqlQuery(sql); while(q->next()) { @@ -2136,8 +2162,8 @@ QString RDCart::uniqueCartTitle(unsigned cartnum) } do { title="["+basename+QString().sprintf("-%d",count+1)+"]"; - sql=QString("select NUMBER from CART where ")+ - "TITLE=\""+RDEscapeString(title)+"\""; + sql=QString("select `NUMBER` from `CART` where ")+ + "`TITLE`='"+RDEscapeString(title)+"'"; count++; if(q!=NULL) { delete q; @@ -2153,9 +2179,9 @@ bool RDCart::titleIsUnique(unsigned except_cartnum,const QString &str) { bool ret=false; - QString sql=QString("select NUMBER from CART where ")+ - "(TITLE=\""+RDEscapeString(str)+"\")&&"+ - QString().sprintf("NUMBER!=%u",except_cartnum); + QString sql=QString("select `NUMBER` from `CART` where ")+ + "(`TITLE`='"+RDEscapeString(str)+"')&&"+ + QString().sprintf("`NUMBER`!=%u",except_cartnum); RDSqlQuery *q=new RDSqlQuery(sql); ret=!q->first(); delete q; @@ -2174,10 +2200,10 @@ QString RDCart::ensureTitleIsUnique(unsigned except_cartnum, while(n<1000000) { sql=QString("select ")+ - "NUMBER "+ // 00 - "from CART where "+ - "(TITLE=\""+RDEscapeString(ret)+"\") && "+ - QString().sprintf("(NUMBER!=%u)",except_cartnum); + "`NUMBER` "+ // 00 + "from `CART` where "+ + "(`TITLE`='"+RDEscapeString(ret)+"') && "+ + QString().sprintf("(`NUMBER`!=%u)",except_cartnum); q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -2257,9 +2283,9 @@ int RDCart::GetNextFreeCut() const RDSqlQuery *q; QString sql; - sql=QString().sprintf("select CUT_NAME from CUTS where CART_NUMBER=%d\ - order by CUT_NAME", - cart_number); + sql=QString("select `CUT_NAME` from `CUTS` where ")+ + QString().sprintf("`CART_NUMBER`=%d ",cart_number)+ + "order by `CUT_NAME`"; q=new RDSqlQuery(sql); for(int i=1;i<=RD_MAX_CUT_NUMBER;i++) { if(q->next()) { @@ -2359,9 +2385,9 @@ QString RDCart::VerifyTitle(const QString &title) const if(!system->allowDuplicateCartTitles()) { int n=1; while(1==1) { - sql=QString("select NUMBER from CART where ")+ - "(TITLE=\""+RDEscapeString(ret)+"\")&&"+ - QString().sprintf("(NUMBER!=%u)",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; @@ -2381,9 +2407,9 @@ void RDCart::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString("update CART set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - QString().sprintf("NUMBER=%u",cart_number); + sql=QString("update `CART` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + QString().sprintf("`NUMBER`=%u",cart_number); q=new RDSqlQuery(sql); delete q; } @@ -2394,8 +2420,8 @@ void RDCart::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString("update CART set ")+ - param+QString().sprintf("=%d where NUMBER=%u",value,cart_number); + sql=QString("update `CART` set `")+ + param+QString().sprintf("`=%d where `NUMBER`=%u",value,cart_number); q=new RDSqlQuery(sql); delete q; } @@ -2406,9 +2432,9 @@ void RDCart::SetRow(const QString ¶m,const QDateTime &value) const RDSqlQuery *q; QString sql; - sql=QString("update CART set ")+ - param+"="+RDCheckDateTime(value,"yyyy-MM-dd hh:mm:ss")+" where "+ - QString().sprintf("NUMBER=%u",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; } @@ -2419,9 +2445,9 @@ void RDCart::SetRow(const QString ¶m,const QDate &value) const RDSqlQuery *q; QString sql; - sql=QString("update CART set ")+ - param+"="+RDCheckDateTime(value,"yyyy-MM-dd")+" where "+ - QString().sprintf("NUMBER=%u",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; } @@ -2432,9 +2458,9 @@ void RDCart::SetRow(const QString ¶m) const RDSqlQuery *q; QString sql; - sql=QString("update CART set ")+ - param+"=NULL where "+ - QString().sprintf("NUMBER=%u",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 6d3ae677..d9199651 100644 --- a/lib/rdcart_dialog.cpp +++ b/lib/rdcart_dialog.cpp @@ -270,23 +270,23 @@ void RDCartDialog::editorData() RDSqlQuery *q; sql=QString("select ")+ - "CUTS.CUT_NAME,"+ // 00 - "CUTS.LENGTH,"+ // 01 - "CART.GROUP_NAME,"+ // 02 - "CART.TITLE,"+ // 03 - "CART.ARTIST,"+ // 04 - "CART.ALBUM,"+ // 05 - "CART.YEAR,"+ // 06 - "CART.LABEL,"+ // 07 - "CART.CLIENT,"+ // 08 - "CART.AGENCY,"+ // 09 - "CART.COMPOSER,"+ // 10 - "CART.PUBLISHER,"+ // 11 - "CART.USER_DEFINED "+ // 12 - "from CUTS left join CART "+ - "on CUTS.CART_NUMBER=CART.NUMBER where "+ - QString().sprintf("(CUTS.CART_NUMBER=%u)&&",cartnum)+ - "(CUTS.LENGTH>0)"; + "`CUTS`.`CUT_NAME`,"+ // 00 + "`CUTS`.`LENGTH`,"+ // 01 + "`CART`.`GROUP_NAME`,"+ // 02 + "`CART`.`TITLE`,"+ // 03 + "`CART`.`ARTIST`,"+ // 04 + "`CART`.`ALBUM`,"+ // 05 + "`CART`.`YEAR`,"+ // 06 + "`CART`.`LABEL`,"+ // 07 + "`CART`.`CLIENT`,"+ // 08 + "`CART`.`AGENCY`,"+ // 09 + "`CART`.`COMPOSER`,"+ // 10 + "`CART`.`PUBLISHER`,"+ // 11 + "`CART`.`USER_DEFINED` "+ // 12 + "from `CUTS` left join `CART` "+ + "on `CUTS`.`CART_NUMBER`=`CART`.`NUMBER` where "+ + QString().sprintf("(`CUTS`.`CART_NUMBER`=%u)&&",cartnum)+ + "(`CUTS`.`LENGTH`>0)"; q=new RDSqlQuery(sql); if(!q->first()) { delete q; diff --git a/lib/rdcart_search_text.cpp b/lib/rdcart_search_text.cpp index ae2486e0..c90c51dd 100644 --- a/lib/rdcart_search_text.cpp +++ b/lib/rdcart_search_text.cpp @@ -3,7 +3,7 @@ // Generates a standardized SQL 'INNER JOIN' and 'WHERE' clause for // filtering Rivendell carts. // -// (C) Copyright 2002-2004,2016 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -33,23 +33,23 @@ QString RDBaseSearchText(QString filter,bool incl_cuts) edit_filter=edit_filter.trimmed(); 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 \"%%\")"; + 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) { - ret+=QString("||(CUTS.ISCI like \"%%\")")+ - "||(CUTS.ISRC like \"%%\")"+ - "||(CUTS.DESCRIPTION like \"%%\")"+ - "||(CUTS.OUTCUE like \"%%\")"; + ret+=QString("||(`CUTS`.`ISCI` like \"%%\")")+ + "||(`CUTS`.`ISRC` like \"%%\")"+ + "||(`CUTS`.`DESCRIPTION` like \"%%\")"+ + "||(`CUTS`.`OUTCUE` like \"%%\")"; } ret+=")"; } @@ -79,23 +79,23 @@ QString RDBaseSearchText(QString filter,bool incl_cuts) 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+"%\")"; + 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+=QString("||(`CUTS`.`ISCI` like \"%")+search+"%\")"+ + "||(`CUTS`.`ISRC` like \"%"+search+"%\")"+ + "||(`CUTS`.`DESCRIPTION` like \"%"+search+"%\")"+ + "||(`CUTS`.`OUTCUE` like \"%"+search+"%\")"; } ret+=") "; } @@ -109,7 +109,7 @@ QString RDSchedSearchText(const QString &schedcode) QString ret=""; if(!schedcode.isEmpty()) { - ret+=QString(" inner join CART_SCHED_CODES on CART.NUMBER=CART_SCHED_CODES.CART_NUMBER and CART_SCHED_CODES.SCHED_CODE=\"")+RDEscapeString(schedcode)+"\" "; + ret+=QString(" inner join `CART_SCHED_CODES` on `CART`.`NUMBER`=`CART_SCHED_CODES`.`CART_NUMBER` and `CART_SCHED_CODES`.`SCHED_CODE`='")+RDEscapeString(schedcode)+"' "; } return ret; @@ -121,7 +121,7 @@ QString RDSchedSearchText(const QStringList &schedcodes) QString ret=""; for(int i=0;inext()) { - search+=QString("(CART.GROUP_NAME=\"")+ - RDEscapeString(q->value(0).toString())+"\")||"; + search+=QString("(`CART`.`GROUP_NAME`='")+ + RDEscapeString(q->value(0).toString())+"')||"; } delete q; search=search.left(search.length()-2)+QString(")"); @@ -188,12 +188,12 @@ QString RDAllCartSearchText(const QString &filter,const QStringList &schedcodes, search+=RDSchedSearchText(schedcodes); search+=" where ("; - sql=QString("select GROUP_NAME from USER_PERMS where ")+ - "USER_NAME=\""+RDEscapeString(user)+"\""; + sql=QString("select `GROUP_NAME` from `USER_PERMS` where ")+ + "`USER_NAME`='"+RDEscapeString(user)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - search+=QString("(CART.GROUP_NAME=\"")+ - RDEscapeString(q->value(0).toString())+"\")||"; + search+=QString("(`CART`.`GROUP_NAME`='")+ + RDEscapeString(q->value(0).toString())+"')||"; } delete q; search=search.left(search.length()-2)+QString(")"); diff --git a/lib/rdcartfilter.cpp b/lib/rdcartfilter.cpp index 2b148606..d20a7055 100644 --- a/lib/rdcartfilter.cpp +++ b/lib/rdcartfilter.cpp @@ -241,9 +241,9 @@ QString RDCartFilter::filterSql(const QStringList &and_fields) const sql=sql.left(sql.length()-2); // Remove the final "&&" } else { - sql+="CART.OWNER is null "; + sql+="`CART`.`OWNER` is null "; } - sql+="order by CART.NUMBER "; + sql+="order by `CART`.`NUMBER` "; if(d_showmatches_box->isChecked()) { sql+=QString().sprintf("limit %d ",RD_LIMITED_CART_SEARCH_QUANTITY); } @@ -397,7 +397,7 @@ void RDCartFilter::changeUser() d_codes_box->clear(); d_codes_box->insertItem(0,tr("ALL")); - sql=QString().sprintf("select CODE from SCHED_CODES order by CODE"); + sql=QString().sprintf("select `CODE` from `SCHED_CODES` order by `CODE`"); q=new RDSqlQuery(sql); while(q->next()) { d_codes_box->insertItem(d_codes_box->count(),q->value(0).toString()); @@ -515,23 +515,23 @@ QString RDCartFilter::phraseFilter(const QString &phrase, bool incl_cuts) } else { QString search=RDEscapeString(phrase); - sql=sql+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+"%\")"; + sql=sql+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) { - sql+=QString("||(CUTS.ISCI like \"%")+search+"%\")"+ - "||(CUTS.ISRC like \"%"+search+"%\")"+ - "||(CUTS.DESCRIPTION like \"%"+search+"%\")"+ - "||(CUTS.OUTCUE like \"%"+search+"%\")"; + sql+=QString("||(CUTS.ISCI like '%")+search+"%')"+ + "||(CUTS.ISRC like '%"+search+"%')"+ + "||(CUTS.DESCRIPTION like '%"+search+"%')"+ + "||(CUTS.OUTCUE like '%"+search+"%')"; } sql+=") && "; } @@ -547,12 +547,12 @@ QString RDCartFilter::groupFilter(const QString &group, if(group==tr("ALL")) { for(int i=1;iclear(); d_group_box->insertItem(0,tr("ALL")); if(d_user_is_admin) { - sql=QString("select NAME from GROUPS order by NAME "); + sql=QString("select `NAME` from `GROUPS` order by `NAME` "); } else { - sql=QString("select GROUP_NAME from USER_PERMS where ")+ - "USER_NAME=\""+RDEscapeString(rda->user()->name())+"\" "+ - "order by GROUP_NAME"; + sql=QString("select `GROUP_NAME` from `USER_PERMS` where ")+ + "`USER_NAME`='"+RDEscapeString(rda->user()->name())+"' "+ + "order by `GROUP_NAME`"; } q=new RDSqlQuery(sql); while(q->next()) { @@ -631,10 +631,10 @@ void RDCartFilter::LoadServiceGroups() d_group_box->clear(); d_group_box->insertItem(0,tr("ALL")); sql=QString("select ")+ - "GROUP_NAME "+ - "from AUDIO_PERMS where "+ - "SERVICE_NAME=\""+RDEscapeString(d_service)+"\" "+ - "order by GROUP_NAME"; + "`GROUP_NAME` "+ + "from `AUDIO_PERMS` where "+ + "`SERVICE_NAME`='"+RDEscapeString(d_service)+"' "+ + "order by `GROUP_NAME`"; q=new RDSqlQuery(sql); while(q->next()) { d_group_box->insertItem(d_group_box->count(),q->value(0).toString()); diff --git a/lib/rdcartslot.cpp b/lib/rdcartslot.cpp index 8303c6b8..6050cfbb 100644 --- a/lib/rdcartslot.cpp +++ b/lib/rdcartslot.cpp @@ -2,7 +2,7 @@ // // The cart slot widget. // -// (C) Copyright 2012-2019 Fred Gleason +// (C) Copyright 2012-2021 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,9 +20,6 @@ #include -#include -#include - #include "rdconfig.h" #include "rdconf.h" #include "rdescape_string.h" @@ -532,7 +529,6 @@ void RDCartSlot::stateChangedData(int id,RDPlayDeck::State state) unload(); slot_box->setService(slot_svcname); slot_box->setStatusLine(tr("Waiting for break...")); - // LogPlayout(RDAirPlayConf::TrafficFinish); } break; @@ -613,13 +609,16 @@ unsigned RDCartSlot::SelectCart(const QString &svcname,unsigned msecs) unsigned cartnum=0; int diff=1000000; - sql=QString("select AUTOFILLS.CART_NUMBER,CART.FORCED_LENGTH from ")+ - "AUTOFILLS left join CART on AUTOFILLS.CART_NUMBER=CART.NUMBER"+ + sql=QString("select ")+ + "`AUTOFILLS`.`CART_NUMBER`,"+ // 00 + "`CART`.`FORCED_LENGTH` "+ // 01 + "from "+ + "`AUTOFILLS` left join `CART` on `AUTOFILLS`.`CART_NUMBER`=`CART`.`NUMBER`"+ QString(). - sprintf(" where (CART.FORCED_LENGTH>%u)&&(CART.FORCED_LENGTH<%u)&&", + sprintf(" where (`CART`.`FORCED_LENGTH`>%u)&&(`CART`.`FORCED_LENGTH`<%u)&&", (unsigned)((double)msecs*RD_TIMESCALE_MIN), (unsigned)((double)msecs*RD_TIMESCALE_MAX))+ - "(SERVICE=\""+RDEscapeString(svcname)+"\")"; + "(`SERVICE`='"+RDEscapeString(svcname)+"')"; q=new RDSqlQuery(sql); while(q->next()) { int cur_diff = msecs-q->value(1).toInt(); @@ -660,7 +659,6 @@ void RDCartSlot::LogPlayout(RDPlayDeck::State state) action=RDAirPlayConf::TrafficStop; } QString sql; - RDSqlQuery *q; QDateTime datetime=QDateTime(QDate::currentDate(),QTime::currentTime()); int length= slot_logline->startTime(RDLogLine::Actual).msecsTo(datetime.time()); @@ -673,45 +671,44 @@ void RDCartSlot::LogPlayout(RDPlayDeck::State state) slot_logline->startTime(RDLogLine::Actual)); QString svctablename=slot_svcname; svctablename.replace(" ","_"); - sql=QString("insert into ELR_LINES set ")+ - "SERVICE_NAME=\""+RDEscapeString(slot_svcname)+"\","+ - QString().sprintf("LENGTH=%d,",length)+ - QString().sprintf("LOG_ID=%d,",slot_number+1)+ - QString().sprintf("CART_NUMBER=%u,",slot_logline->cartNumber())+ - QString().sprintf("EVENT_TYPE=%d,",action)+ - QString().sprintf("EVENT_SOURCE=%d,",slot_logline->source())+ - QString().sprintf("EXT_LENGTH=%d,",slot_logline->extLength())+ - QString().sprintf("PLAY_SOURCE=%d,",RDLogLine::CartSlot)+ - QString().sprintf("CUT_NUMBER=%d,",slot_logline->cutNumber())+ - QString().sprintf("USAGE_CODE=%d,",slot_logline->usageCode())+ - QString().sprintf("START_SOURCE=%d,",slot_logline->startSource())+ - "STATION_NAME=\""+RDEscapeString(slot_station->name())+"\","+ - "EVENT_DATETIME="+RDCheckDateTime(eventDateTime,"yyyy-MM-dd hh:mm:ss")+ + sql=QString("insert into `ELR_LINES` set ")+ + "`SERVICE_NAME`='"+RDEscapeString(slot_svcname)+"',"+ + QString().sprintf("`LENGTH`=%d,",length)+ + QString().sprintf("`LOG_ID`=%d,",slot_number+1)+ + QString().sprintf("`CART_NUMBER`=%u,",slot_logline->cartNumber())+ + QString().sprintf("`EVENT_TYPE`=%d,",action)+ + QString().sprintf("`EVENT_SOURCE`=%d,",slot_logline->source())+ + QString().sprintf("`EXT_LENGTH`=%d,",slot_logline->extLength())+ + QString().sprintf("`PLAY_SOURCE`=%d,",RDLogLine::CartSlot)+ + QString().sprintf("`CUT_NUMBER`=%d,",slot_logline->cutNumber())+ + QString().sprintf("`USAGE_CODE`=%d,",slot_logline->usageCode())+ + QString().sprintf("`START_SOURCE`=%d,",slot_logline->startSource())+ + "`STATION_NAME`='"+RDEscapeString(slot_station->name())+"',"+ + "`EVENT_DATETIME`="+RDCheckDateTime(eventDateTime,"yyyy-MM-dd hh:mm:ss")+ ","+ - "EXT_START_TIME="+RDCheckDateTime( + "`EXT_START_TIME`="+RDCheckDateTime( slot_logline->extStartTime(),"hh:mm:ss")+","+ - "EXT_DATA=\""+RDEscapeString(slot_logline->extData())+"\","+ - "EXT_EVENT_ID=\""+RDEscapeString(slot_logline->extEventId())+"\","+ - "EXT_ANNC_TYPE=\""+RDEscapeString(slot_logline->extAnncType())+"\","+ - "EXT_CART_NAME=\""+RDEscapeString(slot_logline->extCartName())+"\","+ - "TITLE=\""+RDEscapeString(slot_logline->title())+"\","+ - "ARTIST=\""+RDEscapeString(slot_logline->artist())+"\","+ - "SCHEDULED_TIME="+ + "`EXT_DATA`='"+RDEscapeString(slot_logline->extData())+"',"+ + "`EXT_EVENT_ID`='"+RDEscapeString(slot_logline->extEventId())+"',"+ + "`EXT_ANNC_TYPE`='"+RDEscapeString(slot_logline->extAnncType())+"',"+ + "`EXT_CART_NAME`='"+RDEscapeString(slot_logline->extCartName())+"',"+ + "`TITLE`='"+RDEscapeString(slot_logline->title())+"',"+ + "`ARTIST`='"+RDEscapeString(slot_logline->artist())+"',"+ + "`SCHEDULED_TIME`="+ RDCheckDateTime(slot_logline->startTime(RDLogLine::Logged),"hh:mm:ss")+","+ - "ISRC=\""+RDEscapeString(slot_logline->isrc())+"\","+ - "PUBLISHER=\""+RDEscapeString(slot_logline->publisher())+"\","+ - "COMPOSER=\""+RDEscapeString(slot_logline->composer())+"\","+ - "ONAIR_FLAG=\""+RDYesNo(slot_ripc->onairFlag())+"\","+ - "ALBUM=\""+RDEscapeString(slot_logline->album())+"\","+ - "LABEL=\""+RDEscapeString(slot_logline->label())+"\","+ - "CONDUCTOR=\""+RDEscapeString(slot_logline->conductor())+"\","+ - "USER_DEFINED=\""+RDEscapeString(slot_logline->userDefined())+"\","+ - "SONG_ID=\""+RDEscapeString(slot_logline->songId())+"\","+ - "DESCRIPTION=\""+RDEscapeString(slot_logline->description())+"\","+ - "OUTCUE=\""+RDEscapeString(slot_logline->outcue())+"\","+ - "ISCI=\""+RDEscapeString(slot_logline->isci())+"\""; - q=new RDSqlQuery(sql); - delete q; + "`ISRC`='"+RDEscapeString(slot_logline->isrc())+"',"+ + "`PUBLISHER`='"+RDEscapeString(slot_logline->publisher())+"',"+ + "`COMPOSER`='"+RDEscapeString(slot_logline->composer())+"',"+ + "`ONAIR_FLAG`='"+RDYesNo(slot_ripc->onairFlag())+"',"+ + "`ALBUM`='"+RDEscapeString(slot_logline->album())+"',"+ + "`LABEL`='"+RDEscapeString(slot_logline->label())+"',"+ + "`CONDUCTOR`='"+RDEscapeString(slot_logline->conductor())+"',"+ + "`USER_DEFINED`='"+RDEscapeString(slot_logline->userDefined())+"',"+ + "`SONG_ID`='"+RDEscapeString(slot_logline->songId())+"',"+ + "`DESCRIPTION`='"+RDEscapeString(slot_logline->description())+"',"+ + "`OUTCUE`='"+RDEscapeString(slot_logline->outcue())+"',"+ + "`ISCI`='"+RDEscapeString(slot_logline->isci())+"'"; + RDSqlQuery::apply(sql); } } diff --git a/lib/rdcastsearch.cpp b/lib/rdcastsearch.cpp index 5fbf4c23..43a4d7fe 100644 --- a/lib/rdcastsearch.cpp +++ b/lib/rdcastsearch.cpp @@ -2,7 +2,7 @@ // // SQL search clause for RDCastManager // -// (C) Copyright 2009,2016 Fred Gleason +// (C) Copyright 2009-2021 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 @@ -18,28 +18,26 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - -#include -#include -#include +#include "rdescape_string.h" +#include "rdpodcast.h" +#include "rdcastsearch.h" QString RDCastSearchString(const QString &filter,bool active_only) { QString ret; if(!filter.trimmed().isEmpty()) { 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+"%\"))"; + 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(active_only) { - ret+=QString().sprintf("&&(STATUS=%d)",RDPodcast::StatusActive); + ret+=QString().sprintf("&&(`STATUS`=%d)",RDPodcast::StatusActive); } return ret; } @@ -50,30 +48,32 @@ QString RDCastSearch(const QString &keyname,bool is_super,const QString &filter, { QString sql; RDSqlQuery *q; - QString ret=QString("where (.KEY_NAME=\"")+ + QString ret=QString("where (.`KEY_NAME`=\"")+ RDEscapeString(keyname)+"\")"; if(is_super) { ret="where "; sql=QString("select ")+ - "MEMBER_FEED_ID "+ // 00 - "from SUPERFEED_MAPS where "+ - "KEY_NAME=\""+RDEscapeString(keyname)+"\""; + "`MEMBER_FEED_ID` "+ // 00 + "from `SUPERFEED_MAPS` where "+ + "`KEY_NAME`='"+RDEscapeString(keyname)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - ret+=QString().sprintf("PODCASTS.FEED_ID=%u || ",q->value(0).toUInt()); + ret+=QString().sprintf("`PODCASTS`.`FEED_ID`=%u || ", + q->value(0).toUInt()); } delete q; ret=ret.left(ret.length()-3); } else { sql=QString("select ")+ - "ID "+ // 00 - "from FEEDS where "+ - "KEY_NAME=\""+RDEscapeString(keyname)+"\""; + "`ID` "+ // 00 + "from `FEEDS` where "+ + "`KEY_NAME`='"+RDEscapeString(keyname)+"'"; q=new RDSqlQuery(sql); if(q->first()) { - ret=QString().sprintf("where PODCASTS.FEED_ID=%u ",q->value(0).toUInt()); + ret=QString().sprintf("where `PODCASTS`.`FEED_ID`=%u ", + q->value(0).toUInt()); } delete q; } diff --git a/lib/rdcatch_conf.cpp b/lib/rdcatch_conf.cpp index 57e48138..de1ddc59 100644 --- a/lib/rdcatch_conf.cpp +++ b/lib/rdcatch_conf.cpp @@ -2,7 +2,7 @@ // // Abstract an RDCatch Configuration. // -// (C) Copyright 2002-2003,2016 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,10 +18,10 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include +#include "rddb.h" +#include "rdconf.h" +#include "rdcatch_conf.h" +#include "rdescape_string.h" RDCatchConf::RDCatchConf(const QString &station) { @@ -30,16 +30,16 @@ RDCatchConf::RDCatchConf(const QString &station) air_station=station; - sql=QString("select ID from RDCATCH where ")+ - "STATION=\""+RDEscapeString(air_station)+"\""; + sql=QString("select `ID` from `RDCATCH` where ")+ + "`STATION`='"+RDEscapeString(air_station)+"'"; q=new RDSqlQuery(sql); if(!q->first()) { delete q; - sql=QString("insert into RDCATCH set ")+ - "STATION=\""+RDEscapeString(air_station)+"\""; - q=new RDSqlQuery(sql); - delete q; - } else { + sql=QString("insert into `RDCATCH` set ")+ + "`STATION`='"+RDEscapeString(air_station)+"'"; + RDSqlQuery::apply(sql); + } + else { delete q; } } @@ -65,12 +65,10 @@ void RDCatchConf::setErrorRml(const QString &str) const void RDCatchConf::SetRow(const QString ¶m,const QString &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update RDCATCH set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "STATION=\""+RDEscapeString(air_station)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `RDCATCH` set `")+ + param+"`='"+RDEscapeString(value)+"\" where "+ + "`STATION`='"+RDEscapeString(air_station)+"'"; + RDSqlQuery::apply(sql); } diff --git a/lib/rdclock.cpp b/lib/rdclock.cpp index af312651..e7560861 100644 --- a/lib/rdclock.cpp +++ b/lib/rdclock.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Log Manager Clock. // -// (C) Copyright 2002-2019 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,10 +18,10 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include +#include "rddb.h" +#include "rdclock.h" +#include "rdevent_line.h" +#include "rdescape_string.h" // // Global Classes @@ -133,12 +133,12 @@ int RDClock::size() const bool RDClock::load() { QString sql=QString("select ")+ - "SHORT_NAME,"+ // 00 - "COLOR,"+ // 01 - "ARTISTSEP,"+ // 02 - "REMARKS "+ // 03 - "from CLOCKS where "+ - "NAME=\""+RDEscapeString(clock_name)+"\""; + "`SHORT_NAME`,"+ // 00 + "`COLOR`,"+ // 01 + "`ARTISTSEP`,"+ // 02 + "`REMARKS` "+ // 03 + "from `CLOCKS` where "+ + "`NAME`='"+RDEscapeString(clock_name)+"i"; RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -156,12 +156,12 @@ bool RDClock::load() delete q; sql=QString("select ")+ - "EVENT_NAME,"+ // 00 - "START_TIME,"+ // 01 - "LENGTH "+ // 02 - "from CLOCK_LINES where "+ - "CLOCK_NAME=\""+RDEscapeString(clock_name)+"\" "+ - "order by START_TIME"; + "`EVENT_NAME`,"+ // 00 + "`START_TIME`,"+ // 01 + "`LENGTH` "+ // 02 + "from `CLOCK_LINES` where "+ + "`CLOCK_NAME`='"+RDEscapeString(clock_name)+"' "+ + "order by `START_TIME`"; q=new RDSqlQuery(sql); while(q->next()) { clock_events.push_back(new RDEventLine(clock_station)); @@ -180,48 +180,44 @@ bool RDClock::save() if(clock_short_name.isEmpty()) { clock_short_name=clock_name.left(3); } - QString sql=QString("select NAME from CLOCKS where ")+ - "NAME=\""+RDEscapeString(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("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 ")+ - "CLOCK_NAME=\""+RDEscapeString(clock_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + 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)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `CLOCK_LINES` where ")+ + "`CLOCK_NAME`='"+RDEscapeString(clock_name)+"'"; + RDSqlQuery::apply(sql); } else { delete q; - 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; + 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)+"'"; + RDSqlQuery::apply(sql); } - sql=QString("delete from CLOCK_LINES where ")+ - "CLOCK_NAME=\""+RDEscapeString(clock_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("delete from `CLOCK_LINES` where ")+ + "`CLOCK_NAME`='"+RDEscapeString(clock_name)+"'"; + RDSqlQuery::apply(sql); for(int i=0;iname())+"\","+ - QString().sprintf("START_TIME=%d,", + sql=QString("insert into `CLOCK_LINES` set ")+ + "`CLOCK_NAME`='"+RDEscapeString(clock_name)+"',"+ + "`EVENT_NAME`='"+RDEscapeString(clock_events.at(i)->name())+"',"+ + QString().sprintf("`START_TIME`=%d,", QTime().msecsTo(clock_events.at(i)->startTime()))+ - QString().sprintf("LENGTH=%d",clock_events.at(i)->length()); - q=new RDSqlQuery(sql); - delete q; + QString().sprintf("`LENGTH`=%d",clock_events.at(i)->length()); + RDSqlQuery::apply(sql); } return true; } @@ -237,42 +233,6 @@ int RDClock::insert(const QString &event_name,const QTime &time,int len) execInsert(line,event_name,time,len); return line; - /* - int line=-1; - - QString sql=QString("select NAME from EVENTS where ")+ - "NAME=\""+RDEscapeString(event_name)+"\""; - RDSqlQuery *q=new RDSqlQuery(sql); - if(!q->first()) { - delete q; - return -1; - } - delete q; - if((clock_events.size()==0)||(timestartTime())) { - line=0; - clock_events.insert(0,new RDEventLine(clock_station)); - } - else { - for(int i=0;iclock_events.at(i)->startTime())&& - (timestartTime())) { - line=i+1; - clock_events.insert(line,new RDEventLine(clock_station)); - break; - } - } - if(line<0) { - line=clock_events.size(); - clock_events.push_back(new RDEventLine(clock_station)); - } - } - clock_events.at(line)->setName(event_name); - clock_events.at(line)->setStartTime(time); - clock_events.at(line)->setLength(len); - clock_events.at(line)->load(); - - return line; - */ } @@ -313,12 +273,12 @@ bool RDClock::generateLog(int hour,const QString &logname, RDEventLine eventline(clock_station); sql=QString("select ")+ - "EVENT_NAME,"+ // 00 - "START_TIME,"+ // 01 - "LENGTH "+ // 02 - "from CLOCK_LINES where "+ - "CLOCK_NAME=\""+RDEscapeString(clock_name)+"\" "+ - "order by START_TIME"; + "`EVENT_NAME`,"+ // 00 + "`START_TIME`,"+ // 01 + "`LENGTH` "+ // 02 + "from `CLOCK_LINES` where "+ + "`CLOCK_NAME`='"+RDEscapeString(clock_name)+"' "+ + "order by `START_TIME`"; q=new RDSqlQuery(sql); while(q->next()) { eventline.setName(q->value(0).toString()); @@ -338,8 +298,8 @@ int RDClock::preInsert(const QString &event_name,const QTime &time) const { int line=-1; - QString sql=QString("select NAME from EVENTS where ")+ - "NAME=\""+RDEscapeString(event_name)+"\""; + QString sql=QString("select `NAME` from `EVENTS` where ")+ + "`NAME`='"+RDEscapeString(event_name)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -378,40 +338,3 @@ void RDClock::execInsert(int line,const QString &event_name,const QTime &time, clock_events.at(line)->setLength(len); clock_events.at(line)->load(); } - -/* - int line=-1; - - QString sql=QString("select NAME from EVENTS where ")+ - "NAME=\""+RDEscapeString(event_name)+"\""; - RDSqlQuery *q=new RDSqlQuery(sql); - if(!q->first()) { - delete q; - return -1; - } - delete q; - if((clock_events.size()==0)||(timestartTime())) { - line=0; - clock_events.insert(0,new RDEventLine(clock_station)); - } - else { - for(int i=0;iclock_events.at(i)->startTime())&& - (timestartTime())) { - line=i+1; - clock_events.insert(line,new RDEventLine(clock_station)); - break; - } - } - if(line<0) { - line=clock_events.size(); - clock_events.push_back(new RDEventLine(clock_station)); - } - } - clock_events.at(line)->setName(event_name); - clock_events.at(line)->setStartTime(time); - clock_events.at(line)->setLength(len); - clock_events.at(line)->load(); - - return line; -*/ diff --git a/lib/rdconf.cpp b/lib/rdconf.cpp index 61344628..b6df3ebe 100644 --- a/lib/rdconf.cpp +++ b/lib/rdconf.cpp @@ -2,7 +2,7 @@ // // Small library for handling common configuration file tasks // -// (C) Copyright 1996-2018 Fred Gleason +// (C) Copyright 1996-2021 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License @@ -24,19 +24,15 @@ #include #include #include - -#include -#include -#include -#include -#include -#include -#define RDCONF_FILE_SEPARATOR '/' #include #include #include #include +#include + +#define RDCONF_FILE_SEPARATOR '/' + #include "rddb.h" #include "rdconf.h" #include "rddatetime.h" @@ -738,44 +734,6 @@ int RDSetTimeLength(const QString &str) return res; } -/* -bool RDCopy(const QString &srcfile,const QString &destfile) -{ - int src_fd; - int dest_fd; - struct stat src_stat; - struct stat dest_stat; - char *buf=NULL; - int n; - - if((src_fd=open((const char *)srcfile,O_RDONLY))<0) { - return false; - } - if(fstat(src_fd,&src_stat)<0) { - close(src_fd); - return false; - } - if((dest_fd=open((const char *)destfile,O_RDWR|O_CREAT,src_stat.st_mode)) - <0) { - close(src_fd); - return false; - } - if(fstat(dest_fd,&dest_stat)<0) { - close(src_fd); - close(dest_fd); - return false; - } - buf=(char *)malloc(dest_stat.st_blksize); - while((n=read(src_fd,buf,dest_stat.st_blksize))==dest_stat.st_blksize) { - write(dest_fd,buf,dest_stat.st_blksize); - } - write(dest_fd,buf,n); - free(buf); - close(src_fd); - close(dest_fd); - return true; -} -*/ bool RDCopy(const QString &srcfile,const QString &destfile) { @@ -1056,26 +1014,6 @@ QTime RDUtcToLocal(const QTime &gmttime) return gmttime.addSecs(-RDTimeZoneOffset()); } -/* -int RDTimeZoneOffset() -{ - time_t t=time(&t); - struct tm *tm=localtime(&t); - time_t local_time=3600*tm->tm_hour+60*tm->tm_min+tm->tm_sec; - tm=gmtime(&t); - time_t gmt_time=3600*tm->tm_hour+60*tm->tm_min+tm->tm_sec; - - int offset=gmt_time-local_time; - if(offset>43200) { - offset=offset-86400; - } - if(offset<-43200) { - offset=offset+86400; - } - - return offset; -} -*/ QColor RDGetTextColor(const QColor &background_color) { diff --git a/lib/rdcoreapplication.cpp b/lib/rdcoreapplication.cpp index 007299ed..54907631 100644 --- a/lib/rdcoreapplication.cpp +++ b/lib/rdcoreapplication.cpp @@ -21,15 +21,13 @@ #include #include -#include -#include -#include - -#include "rdescape_string.h" +#include +#include #include "dbversion.h" #include "rdapplication.h" #include "rdcmd_switch.h" +#include "rdescape_string.h" RDCoreApplication *rdc=NULL; QStringList __rdapplication_temp_files; @@ -470,11 +468,11 @@ void RDCoreApplication::userChangedData() QStringList f0=app_ticket.split(":"); if(f0.size()==2) { sql=QString("select ")+ - "LOGIN_NAME "+ // 00 - "from WEBAPI_AUTHS where "+ - "TICKET=\""+RDEscapeString(f0.at(0))+"\" && "+ - "IPV4_ADDRESS=\""+RDEscapeString(f0.at(1))+"\" && "+ - "EXPIRATION_DATETIME>now()"; + "`LOGIN_NAME` "+ // 00 + "from `WEBAPI_AUTHS` where "+ + "`TICKET`='"+RDEscapeString(f0.at(0))+"' && "+ + "`IPV4_ADDRESS`='"+RDEscapeString(f0.at(1))+"' && "+ + "`EXPIRATION_DATETIME`>now()"; q=new RDSqlQuery(sql); if(q->first()) { app_user->setName(q->value(0).toString()); diff --git a/lib/rdcut.cpp b/lib/rdcut.cpp index 22b68390..f1053bd0 100644 --- a/lib/rdcut.cpp +++ b/lib/rdcut.cpp @@ -23,8 +23,6 @@ #include #include -#include - #include "rd.h" #include "rdconf.h" #include "rdconfig.h" @@ -101,20 +99,20 @@ bool RDCut::isValid(const QDateTime &datetime) const RDSqlQuery *q; 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)+"\""; + "`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; @@ -860,11 +858,11 @@ int RDCut::effectiveEnd() const void RDCut::logPlayout() const { QString sql= - 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)+"\""; + 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; } @@ -875,114 +873,112 @@ bool RDCut::copyTo(RDStation *station,RDUser *user, { QString sql; RDSqlQuery *q; - RDSqlQuery *q1; bool ret=true; // // Copy the Database Record // 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 - "SEGUE_GAIN,"+ // 14 - "HOOK_START_POINT,"+ // 15 - "HOOK_END_POINT,"+ // 16 - "TALK_START_POINT,"+ // 17 - "TALK_END_POINT,"+ // 18 - "ISRC,"+ // 19 - "ISCI,"+ // 20 - "RECORDING_MBID,"+ // 21 - "RELEASE_MBID,"+ // 22 - - "EVERGREEN,"+ // 23 - "SHA1_HASH,"+ // 24 - "ORIGIN_DATETIME,"+ // 25 - "START_DATETIME,"+ // 26 - "END_DATETIME,"+ // 27 - "START_DAYPART,"+ // 28 - "END_DAYPART,"+ // 29 - "ORIGIN_NAME,"+ // 30 - "ORIGIN_LOGIN_NAME,"+ // 31 - "SOURCE_HOSTNAME,"+ // 32 - "WEIGHT,"+ // 33 - "PLAY_ORDER,"+ // 34 - "UPLOAD_DATETIME,"+ // 35 - "VALIDITY,"+ // 36 - "SUN,"+ // 37 - "MON,"+ // 38 - "TUE,"+ // 39 - "WED,"+ // 40 - "THU,"+ // 41 - "FRI,"+ // 42 - "SAT "+ // 43 - "from CUTS where "+ - "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; + "`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 + "`SEGUE_GAIN`,"+ // 14 + "`HOOK_START_POINT`,"+ // 15 + "`HOOK_END_POINT`,"+ // 16 + "`TALK_START_POINT`,"+ // 17 + "`TALK_END_POINT`,"+ // 18 + "`ISRC`,"+ // 19 + "`ISCI`,"+ // 20 + "`RECORDING_MBID`,"+ // 21 + "`RELEASE_MBID`,"+ // 22 + "`EVERGREEN`,"+ // 23 + "`SHA1_HASH`,"+ // 24 + "`ORIGIN_DATETIME`,"+ // 25 + "`START_DATETIME`,"+ // 26 + "`END_DATETIME`,"+ // 27 + "`START_DAYPART`,"+ // 28 + "`END_DAYPART`,"+ // 29 + "`ORIGIN_NAME`,"+ // 30 + "`ORIGIN_LOGIN_NAME`,"+ // 31 + "`SOURCE_HOSTNAME`,"+ // 32 + "`WEIGHT`,"+ // 33 + "`PLAY_ORDER`,"+ // 34 + "`UPLOAD_DATETIME`,"+ // 35 + "`VALIDITY`,"+ // 36 + "`SUN`,"+ // 37 + "`MON`,"+ // 38 + "`TUE`,"+ // 39 + "`WED`,"+ // 40 + "`THU`,"+ // 41 + "`FRI`,"+ // 42 + "`SAT` "+ // 43 + "from `CUTS` where "+ + "`CUT_NAME`='"+RDEscapeString(cut_name)+"'"; q=new RDSqlQuery(sql); if(q->first()) { - 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_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("SEGUE_GAIN=%d,",q->value(14).toInt())+ - QString().sprintf("HOOK_START_POINT=%d,",q->value(15).toInt())+ - QString().sprintf("HOOK_END_POINT=%d,",q->value(16).toInt())+ - QString().sprintf("TALK_START_POINT=%d,",q->value(17).toInt())+ - QString().sprintf("TALK_END_POINT=%d,",q->value(18).toInt())+ - "ISRC=\""+RDEscapeString(q->value(19).toString())+"\","+ - "ISCI=\""+RDEscapeString(q->value(20).toString())+"\","+ - "RECORDING_MBID=\""+RDEscapeString(q->value(21).toString())+"\","+ - "RELEASE_MBID=\""+RDEscapeString(q->value(22).toString())+"\","+ - "EVERGREEN=\""+q->value(23).toString()+"\","+ - "SHA1_HASH=\""+RDEscapeString(q->value(24).toString())+"\","+ - "ORIGIN_DATETIME="+ + 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_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("`SEGUE_GAIN`=%d,",q->value(14).toInt())+ + QString().sprintf("`HOOK_START_POINT`=%d,",q->value(15).toInt())+ + QString().sprintf("`HOOK_END_POINT`=%d,",q->value(16).toInt())+ + QString().sprintf("`TALK_START_POINT`=%d,",q->value(17).toInt())+ + QString().sprintf("`TALK_END_POINT`=%d,",q->value(18).toInt())+ + "`ISRC`='"+RDEscapeString(q->value(19).toString())+"',"+ + "`ISCI`='"+RDEscapeString(q->value(20).toString())+"',"+ + "`RECORDING_MBID`='"+RDEscapeString(q->value(21).toString())+"',"+ + "`RELEASE_MBID`='"+RDEscapeString(q->value(22).toString())+"',"+ + "`EVERGREEN`='"+q->value(23).toString()+"',"+ + "`SHA1_HASH`='"+RDEscapeString(q->value(24).toString())+"',"+ + "`ORIGIN_DATETIME`="+ RDCheckDateTime(q->value(25).toDateTime(),"yyyy-MM-dd hh:mm:ss")+","+ - "START_DATETIME="+ + "`START_DATETIME`="+ RDCheckDateTime(q->value(26).toDateTime(),"yyyy-MM-dd hh:mm:ss")+","+ - "END_DATETIME="+ + "`END_DATETIME`="+ RDCheckDateTime(q->value(27).toDateTime(),"yyyy-MM-dd hh:mm:ss")+","+ - "START_DAYPART="+RDCheckDateTime(q->value(28).toTime(),"hh:mm:ss")+","+ - "END_DAYPART="+RDCheckDateTime(q->value(29).toTime(),"hh:mm:ss")+","+ - "ORIGIN_NAME=\""+RDEscapeString(q->value(30).toString())+"\","+ - "ORIGIN_LOGIN_NAME=\""+RDEscapeString(q->value(31).toString())+"\","+ - "SOURCE_HOSTNAME=\""+RDEscapeString(q->value(32).toString())+"\","+ - QString().sprintf("WEIGHT=%u,",q->value(33).toUInt())+ - QString().sprintf("PLAY_ORDER=%d,",q->value(34).toUInt())+ - "UPLOAD_DATETIME="+ + "`START_DAYPART`="+RDCheckDateTime(q->value(28).toTime(),"hh:mm:ss")+","+ + "`END_DAYPART`="+RDCheckDateTime(q->value(29).toTime(),"hh:mm:ss")+","+ + "`ORIGIN_NAME`='"+RDEscapeString(q->value(30).toString())+"',"+ + "`ORIGIN_LOGIN_NAME`='"+RDEscapeString(q->value(31).toString())+"',"+ + "`SOURCE_HOSTNAME`='"+RDEscapeString(q->value(32).toString())+"',"+ + QString().sprintf("`WEIGHT`=%u,",q->value(33).toUInt())+ + QString().sprintf("`PLAY_ORDER`=%d,",q->value(34).toUInt())+ + "`UPLOAD_DATETIME`="+ RDCheckDateTime(q->value(35).toDateTime(),"yyyy-MM-dd hh:mm:ss")+","+ - QString().sprintf("VALIDITY=%u,",q->value(36).toUInt())+ - "SUN=\""+q->value(37).toString()+"\","+ - "MON=\""+q->value(38).toString()+"\","+ - "TUE=\""+q->value(39).toString()+"\","+ - "WED=\""+q->value(40).toString()+"\","+ - "THU=\""+q->value(41).toString()+"\","+ - "FRI=\""+q->value(42).toString()+"\","+ - "SAT=\""+q->value(43).toString()+"\" "+ - "where CUT_NAME=\""+RDEscapeString(cutname)+"\""; + QString().sprintf("`VALIDITY`=%u,",q->value(36).toUInt())+ + "`SUN`='"+q->value(37).toString()+"',"+ + "`MON`='"+q->value(38).toString()+"',"+ + "`TUE`='"+q->value(39).toString()+"',"+ + "`WED`='"+q->value(40).toString()+"',"+ + "`THU`='"+q->value(41).toString()+"',"+ + "`FRI`='"+q->value(42).toString()+"',"+ + "`SAT`='"+q->value(43).toString()+"' "+ + "where `CUT_NAME`='"+RDEscapeString(cutname)+"'"; } delete q; q=new RDSqlQuery(sql); @@ -991,16 +987,15 @@ bool RDCut::copyTo(RDStation *station,RDUser *user, // // Copy the Cut Events // - sql=QString("select NUMBER,POINT from CUT_EVENTS ")+ - "where CUT_NAME=\""+cutName()+"\""; + sql=QString("select `NUMBER`,`POINT` from `CUT_EVENTS` ")+ + "where `CUT_NAME`='"+cutName()+"i"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into CUT_EVENTS set ")+ - "CUT_NAME=\""+cutname+"\","+ - QString().sprintf("NUMBER=%d,",q->value(0).toInt())+ - QString().sprintf("POINT=%d",q->value(1).toInt()); - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `CUT_EVENTS` set ")+ + "`CUT_NAME`='"+cutname+"',"+ + QString().sprintf("`NUMBER`=%d,",q->value(0).toInt())+ + QString().sprintf("`POINT`=%d",q->value(1).toInt()); + RDSqlQuery::apply(sql); } delete q; @@ -1025,30 +1020,29 @@ void RDCut::getMetadata(RDWaveData *data) const RDSqlQuery *q; sql=QString("select ")+ - "CUT_NAME,"+ // 00 - "DESCRIPTION,"+ // 01 - "OUTCUE,"+ // 02 - "ISRC,"+ // 03 - "ISCI,"+ // 04 - "ORIGIN_DATETIME,"+ // 05 - "START_DATETIME,"+ // 06 - "END_DATETIME,"+ // 07 - "START_DAYPART,"+ // 08 - "END_DAYPART,"+ // 09 - "SEGUE_START_POINT,"+ // 10 - "SEGUE_END_POINT,"+ // 11 - "TALK_START_POINT,"+ // 12 - "TALK_END_POINT,"+ // 13 - "START_POINT,"+ // 14 - "END_POINT,"+ // 15 - "HOOK_START_POINT,"+ // 16 - "HOOK_END_POINT,"+ // 17 - "FADEUP_POINT,"+ // 18 - "FADEDOWN_POINT,"+ // 19 - "RECORDING_MBID,"+ // 20 - "RELEASE_MBID "+ // 21 - - "from CUTS where CUT_NAME=\""+cut_name+"\""; + "`CUT_NAME`,"+ // 00 + "`DESCRIPTION`,"+ // 01 + "`OUTCUE`,"+ // 02 + "`ISRC`,"+ // 03 + "`ISCI`,"+ // 04 + "`ORIGIN_DATETIME`,"+ // 05 + "`START_DATETIME`,"+ // 06 + "`END_DATETIME`,"+ // 07 + "`START_DAYPART`,"+ // 08 + "`END_DAYPART`,"+ // 09 + "`SEGUE_START_POINT`,"+ // 10 + "`SEGUE_END_POINT`,"+ // 11 + "`TALK_START_POINT`,"+ // 12 + "`TALK_END_POINT`,"+ // 13 + "`START_POINT`,"+ // 14 + "`END_POINT`,"+ // 15 + "`HOOK_START_POINT`,"+ // 16 + "`HOOK_END_POINT`,"+ // 17 + "`FADEUP_POINT`,"+ // 18 + "`FADEDOWN_POINT`,"+ // 19 + "`RECORDING_MBID`,"+ // 20 + "`RELEASE_MBID` "+ // 21 + "from `CUTS` where `CUT_NAME`='"+cut_name+"'"; q=new RDSqlQuery(sql); if(q->first()) { data->setCutName(q->value(0).toString()); @@ -1085,22 +1079,22 @@ void RDCut::getMetadata(RDWaveData *data) const void RDCut::setMetadata(RDWaveData *data) const { - QString sql="update CUTS set "; + QString sql="update `CUTS` set "; if(!data->description().isEmpty()) { - sql+=QString("DESCRIPTION=\"")+ - RDEscapeString(data->description().left(64))+"\","; + sql+=QString("`DESCRIPTION`='")+ + RDEscapeString(data->description().left(64))+"',"; } if(!data->outCue().isEmpty()) { - sql+=QString("OUTCUE=\"")+RDEscapeString(data->outCue().left(64))+"\","; + sql+=QString("`OUTCUE`='")+RDEscapeString(data->outCue().left(64))+"',"; } else { switch(data->endType()) { case RDWaveData::FadeEnd: - sql+="OUTCUE=\"[music fades]\","; + sql+="`OUTCUE`='[music fades]',"; break; case RDWaveData::ColdEnd: - sql+="OUTCUE=\"[music ends cold]\","; + sql+="`OUTCUE`='[music ends cold]',"; break; case RDWaveData::UnknownEnd: @@ -1108,71 +1102,72 @@ void RDCut::setMetadata(RDWaveData *data) const } } if(!data->isrc().isEmpty()) { - sql+=QString("ISRC=\"")+RDEscapeString(data->isrc().left(12))+"\","; + sql+=QString("`ISRC`='")+RDEscapeString(data->isrc().left(12))+"',"; } if(!data->isci().isEmpty()) { - sql+=QString("ISCI=\"")+RDEscapeString(data->isci().left(32))+"\","; + sql+=QString("`ISCI=`'")+RDEscapeString(data->isci().left(32))+"',"; } if(!data->recordingMbId().isEmpty()) { - sql+=QString("RECORDING_MBID=\"")+ - RDEscapeString(data->recordingMbId().left(40))+"\","; + sql+=QString("`RECORDING_MBID`='")+ + RDEscapeString(data->recordingMbId().left(40))+"',"; } if(!data->releaseMbId().isEmpty()) { - sql+=QString("RELEASE_MBID=\"")+ - RDEscapeString(data->releaseMbId().left(40))+"\","; + sql+=QString("`RELEASE_MBID`='")+ + RDEscapeString(data->releaseMbId().left(40))+"',"; } if(data->startPos()>=0) { - sql+=QString().sprintf("START_POINT=%d,",data->startPos()); + sql+=QString().sprintf("`START_POINT`=%d,",data->startPos()); } if(data->endPos()>=0) { - sql+=QString().sprintf("END_POINT=%d,",data->endPos()); + sql+=QString().sprintf("`END_POINT`=%d,",data->endPos()); } if((data->talkStartPos()==data->startPos())&& (data->talkEndPos()==data->endPos())) { - sql+="TALK_START_POINT=-1,TALK_END_POINT=-1,"; + sql+="`TALK_START_POINT`=-1,`TALK_END_POINT`=-1,"; } else { if(data->talkStartPos()>=0) { if(data->talkStartPos()startPos()) { - sql+=QString().sprintf("TALK_START_POINT=%d,",data->startPos()); + sql+=QString().sprintf("`TALK_START_POINT`=%d,",data->startPos()); } else { - sql+=QString().sprintf("TALK_START_POINT=%d,",data->talkStartPos()); + sql+=QString().sprintf("`TALK_START_POINT`=%d,",data->talkStartPos()); } } if(data->talkEndPos()>=0) { if((data->talkEndPos()>data->endPos())&&(data->endPos()!=-1)) { - sql+=QString().sprintf("TALK_END_POINT=%d,",data->endPos()); + sql+=QString().sprintf("`TALK_END_POINT`=%d,",data->endPos()); } else { - sql+=QString().sprintf("TALK_END_POINT=%d,",data->talkEndPos()); + sql+=QString().sprintf("`TALK_END_POINT`=%d,",data->talkEndPos()); } } } if(((data->segueStartPos()==data->startPos())&& (data->segueEndPos()==data->endPos()))||(data->segueStartPos()==0)) { - sql+="SEGUE_START_POINT=-1,SEGUE_END_POINT=-1,"; + sql+="`SEGUE_START_POINT`=-1,`SEGUE_END_POINT`=-1,"; } else { if(data->segueStartPos()>=0) { if(data->segueStartPos()startPos()) { - sql+=QString().sprintf("SEGUE_START_POINT=%d,",data->startPos()); + sql+=QString().sprintf("`SEGUE_START_POINT`=%d,",data->startPos()); } else { - sql+=QString().sprintf("SEGUE_START_POINT=%d,",data->segueStartPos()); + sql+=QString().sprintf("`SEGUE_START_POINT`=%d,",data->segueStartPos()); } } if(data->segueEndPos()>=0) { if(data->segueEndPos()>data->endPos()) { if(data->endPos()<0) { - sql+=QString().sprintf("SEGUE_END_POINT=%d,",data->segueStartPos()+1); + sql+=QString().sprintf("`SEGUE_END_POINT`=%d,", + data->segueStartPos()+1); } else { - sql+=QString().sprintf("SEGUE_END_POINT=%d,",data->endPos()); + sql+=QString().sprintf("`SEGUE_END_POINT`=%d,",data->endPos()); } } else { - sql+=QString().sprintf("SEGUE_END_POINT=%d,",data->segueEndPos()); + sql+=QString().sprintf("`SEGUE_END_POINT`=%d,",data->segueEndPos()); } } } @@ -1182,25 +1177,25 @@ void RDCut::setMetadata(RDWaveData *data) const } if(data->daypartStartTime().isValid()&&data->daypartEndTime().isValid()&& (data->daypartStartTime()daypartEndTime())) { - sql+="START_DAYPART="+ + sql+="`START_DAYPART`="+ RDCheckDateTime(data->daypartStartTime(),"hh:mm:ss")+","+ - "END_DAYPART="+RDCheckDateTime(data->daypartEndTime(),"hh:mm:ss")+","; + "`END_DAYPART`="+RDCheckDateTime(data->daypartEndTime(),"hh:mm:ss")+","; } if((data->hookStartPos()>=data->startPos())&& (data->hookStartPos()<=data->endPos())&& (data->hookEndPos()>=data->startPos())&& (data->hookEndPos()<=data->endPos())&& (data->hookEndPos()>data->hookStartPos())) { - sql+=QString().sprintf("HOOK_START_POINT=%d,HOOK_END_POINT=%d,", + sql+=QString().sprintf("`HOOK_START_POINT`=%d,`HOOK_END_POINT`=%d,", data->hookStartPos(),data->hookEndPos()); } if((data->fadeUpPos()>data->startPos())&& (data->fadeUpPos()<=data->endPos())) { - sql+=QString().sprintf("FADEUP_POINT=%d,",data->fadeUpPos()); + sql+=QString().sprintf("`FADEUP_POINT`=%d,",data->fadeUpPos()); } if((data->fadeDownPos()>data->startPos())&& (data->fadeDownPos()<=data->endPos())) { - sql+=QString().sprintf("FADEDOWN_POINT=%d,",data->fadeDownPos()); + sql+=QString().sprintf("`FADEDOWN_POINT`=%d,",data->fadeDownPos()); } if(data->startDate().isValid() && (data->startDate()>QDate(1900,1,1))&&(data->endDate().year()<8000)) { @@ -1211,7 +1206,7 @@ void RDCut::setMetadata(RDWaveData *data) const else { startDateTime.setTime(QTime(0,0,0)); } - sql+=QString("START_DATETIME=")+ + sql+=QString("`START_DATETIME`=")+ RDCheckDateTime(startDateTime,"yyyy-MM-dd hh:mm:ss")+","; if(data->endDate().isValid()&&(data->endDate().year()<8000)) { QDateTime endDateTime(data->endDate()); @@ -1221,29 +1216,29 @@ void RDCut::setMetadata(RDWaveData *data) const else { endDateTime.setTime(QTime(23,59,59)); } - sql+=QString("END_DATETIME=")+ + sql+=QString("`END_DATETIME`=")+ RDCheckDateTime(endDateTime,"yyyy-MM-dd hh:mm:ss")+","; } } if(sql.right(1)==",") { sql=sql.left(sql.length()-1); } - sql+=QString(" where CUT_NAME=\"")+RDEscapeString(cut_name)+"\""; + sql+=QString(" where `CUT_NAME`='")+RDEscapeString(cut_name)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); delete q; // // Sanity Check: NEVER permit the 'description' field to be empty. // - sql=QString("select DESCRIPTION from CUTS where ")+ - "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; + sql=QString("select `DESCRIPTION` from `CUTS` where ")+ + "`CUT_NAME`='"+RDEscapeString(cut_name)+"'"; q=new RDSqlQuery(sql); if(q->first()) { if(q->value(0).toString().isEmpty()) { - sql=QString("update CUTS set ")+ - QString().sprintf("DESCRIPTION=\"Cut %03d\"", + sql=QString("update `CUTS` set ")+ + QString().sprintf("`DESCRIPTION`='Cut %03d'", RDCut::cutNumber(cut_name))+ - " where CUT_NAME=\""+RDEscapeString(cut_name)+"\""; + " where `CUT_NAME`='"+RDEscapeString(cut_name)+"'"; delete q; q=new RDSqlQuery(sql); } @@ -1266,7 +1261,7 @@ bool RDCut::checkInRecording(const QString &station_name, QString user="null"; if(!user_name.isEmpty()) { - user="\""+RDEscapeString(user_name)+"\""; + user="'"+RDEscapeString(user_name)+"'"; } // @@ -1279,8 +1274,8 @@ bool RDCut::checkInRecording(const QString &station_name, src_hostname=station_name; } else { - sql=QString("select NAME from STATIONS where ")+ - "IPV4_ADDRESS=\""+RDEscapeString(addr.toString())+"\""; + sql=QString("select `NAME` from `STATIONS` where ")+ + "`IPV4_ADDRESS`='"+RDEscapeString(addr.toString())+"'"; q=new RDSqlQuery(sql); if(q->first()) { src_hostname=q->value(0).toString(); @@ -1305,31 +1300,31 @@ bool RDCut::checkInRecording(const QString &station_name, break; } - sql=QString("update CUTS set ")+ - "START_POINT=0,"+ - QString().sprintf("END_POINT=%d,",msecs)+ - "FADEUP_POINT=-1,"+ - "FADEDOWN_POINT=-1,"+ - "SEGUE_START_POINT=-1,"+ - "SEGUE_END_POINT=-1,"+ - "TALK_START_POINT=-1,"+ - "TALK_END_POINT=-1,"+ - "HOOK_START_POINT=-1,"+ - "HOOK_END_POINT=-1,"+ - "PLAY_GAIN=0,"+ - "PLAY_COUNTER=0,"+ - "LOCAL_COUNTER=0,"+ - QString().sprintf("CODING_FORMAT=%d,",format)+ - QString().sprintf("SAMPLE_RATE=%d,",settings->sampleRate())+ - QString().sprintf("BIT_RATE=%d,",settings->bitRate())+ - QString().sprintf("CHANNELS=%d,",settings->channels())+ - QString().sprintf("LENGTH=%d,",msecs)+ - "ORIGIN_DATETIME=now(),"+ - "ORIGIN_NAME=\""+RDEscapeString(station_name)+"\","+ - "ORIGIN_LOGIN_NAME="+user+","+ - "SOURCE_HOSTNAME=\""+RDEscapeString(src_hostname)+"\","+ - "UPLOAD_DATETIME=null "+ - "where CUT_NAME=\""+cut_name+"\""; + sql=QString("update `CUTS` set ")+ + "`START_POINT`=0,"+ + QString().sprintf("`END_POINT`=%d,",msecs)+ + "`FADEUP_POINT`=-1,"+ + "`FADEDOWN_POINT`=-1,"+ + "`SEGUE_START_POINT`=-1,"+ + "`SEGUE_END_POINT`=-1,"+ + "`TALK_START_POINT`=-1,"+ + "`TALK_END_POINT`=-1,"+ + "`HOOK_START_POINT`=-1,"+ + "`HOOK_END_POINT`=-1,"+ + "`PLAY_GAIN`=0,"+ + "`PLAY_COUNTER`=0,"+ + "`LOCAL_COUNTER`=0,"+ + QString().sprintf("`CODING_FORMAT`=%d,",format)+ + QString().sprintf("`SAMPLE_RATE`=%d,",settings->sampleRate())+ + QString().sprintf("`BIT_RATE`=%d,",settings->bitRate())+ + QString().sprintf("`CHANNELS`=%d,",settings->channels())+ + QString().sprintf("`LENGTH`=%d,",msecs)+ + "`ORIGIN_DATETIME`=now(),"+ + "`ORIGIN_NAME`='"+RDEscapeString(station_name)+"',"+ + "`ORIGIN_LOGIN_NAME`="+user+","+ + "`SOURCE_HOSTNAME`='"+RDEscapeString(src_hostname)+"',"+ + "`UPLOAD_DATETIME`=null "+ + "where `CUT_NAME`='"+cut_name+"'"; q=new RDSqlQuery(sql); delete q; return true; @@ -1460,54 +1455,54 @@ void RDCut::reset() const format=0; break; } - 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)+"\""; + 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("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)+"\""; + 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); delete q; @@ -1704,14 +1699,14 @@ bool RDCut::create(const QString &cutname) QString end_datetime; RDCut::GetDefaultDateTimes(&start_datetime,&end_datetime,cutname); - sql=QString("insert into CUTS set ")+ - "CUT_NAME=\""+cutname+"\","+ - QString().sprintf("CART_NUMBER=%u,",RDCut::cartNumber(cutname))+ - "ORIGIN_DATETIME=now(),"+ - "DESCRIPTION=\""+RDEscapeString(QObject::tr("Cut")+ - QString().sprintf(" %03d",RDCut::cutNumber(cutname)))+"\","+ - "START_DATETIME="+start_datetime+","+ - "END_DATETIME="+end_datetime; + sql=QString("insert into `CUTS` set ")+ + "`CUT_NAME`='"+cutname+"',"+ + QString().sprintf("`CART_NUMBER`=%u,",RDCut::cartNumber(cutname))+ + "`ORIGIN_DATETIME`=now(),"+ + "`DESCRIPTION`='"+RDEscapeString(QObject::tr("Cut")+ + QString().sprintf(" %03d",RDCut::cutNumber(cutname)))+"',"+ + "`START_DATETIME`="+start_datetime+","+ + "`END_DATETIME`="+end_datetime; q=new RDSqlQuery(sql); ret=q->isActive(); delete q; @@ -1728,8 +1723,8 @@ bool RDCut::exists(unsigned cartnum,unsigned cutnum) bool RDCut::exists(const QString &cutname) { - QString sql=QString("select CUT_NAME from CUTS where ")+ - "CUT_NAME=\""+RDEscapeString(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; @@ -1755,18 +1750,18 @@ void RDCut::GetDefaultDateTimes(QString *start_dt,QString *end_dt, *start_dt="null"; *end_dt="null"; QString sql=QString("select ")+ - "GROUPS.DEFAULT_CUT_LIFE "+ - "from GROUPS left join CART "+ - "on GROUPS.NAME=CART.GROUP_NAME where "+ - QString().sprintf("CART.NUMBER=%u",RDCut::cartNumber(cutname)); + "`GROUPS`.`DEFAULT_CUT_LIFE` "+ + "from `GROUPS` left join `CART` "+ + "on `GROUPS`.`NAME`=`CART`.`GROUP_NAME` where "+ + QString().sprintf("`CART`.`NUMBER`=%u",RDCut::cartNumber(cutname)); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { if(q->value(0).toInt()>=0) { QDateTime now=QDateTime(QDate::currentDate(),QTime::currentTime()); *start_dt= - "\""+now.toString("yyyy-MM-dd hh:mm:ss")+"\""; - *end_dt="\""+now.addDays(q->value(0).toInt()). - toString("yyyy-MM-dd hh:mm:ss")+"\""; + "'"+now.toString("yyyy-MM-dd hh:mm:ss")+"'"; + *end_dt="'"+now.addDays(q->value(0).toInt()). + toString("yyyy-MM-dd hh:mm:ss")+"'"; } } delete q; @@ -1821,88 +1816,74 @@ bool RDCut::FileCopy(const QString &srcfile,const QString &destfile) const void RDCut::SetRow(const QString ¶m,const QString &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update CUTS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `CUTS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`CUT_NAME`='"+RDEscapeString(cut_name)+"'"; + RDSqlQuery::apply(sql); } void RDCut::SetRow(const QString ¶m,unsigned value) const { - RDSqlQuery *q; QString sql; - sql=QString("update CUTS set ")+ - param+QString().sprintf("=%u where ",value)+ - "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `CUTS` set `")+ + param+QString().sprintf("`=%u where ",value)+ + "`CUT_NAME`='"+RDEscapeString(cut_name)+"'"; + RDSqlQuery::apply(sql); } void RDCut::SetRow(const QString ¶m,int value) const { - RDSqlQuery *q; QString sql; - sql=QString("update CUTS set ")+ - param+QString().sprintf("=%d where ",value)+ - "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `CUTS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`CUT_NAME`='"+RDEscapeString(cut_name)+"'"; + RDSqlQuery::apply(sql); } void RDCut::SetRow(const QString ¶m,const QDateTime &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update CUTS set ")+ - param+"="+RDCheckDateTime(value,"yyyy-MM-dd hh:mm:ss")+" where "+ - "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `CUTS` set `")+ + param+"`="+RDCheckDateTime(value,"yyyy-MM-dd hh:mm:ss")+" where "+ + "`CUT_NAME`='"+RDEscapeString(cut_name)+"'"; + RDSqlQuery::apply(sql); } void RDCut::SetRow(const QString ¶m,const QDate &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update CUTS set ")+ - param+"="+RDCheckDateTime(value,"yyyy-MM-dd")+" where "+ - "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `CUTS` set `")+ + param+"`="+RDCheckDateTime(value,"yyyy-MM-dd")+" where "+ + "`CUT_NAME`='"+RDEscapeString(cut_name)+"'"; + RDSqlQuery::apply(sql); } void RDCut::SetRow(const QString ¶m,const QTime &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update CUTS set ")+ - param+"="+RDCheckDateTime(value,"hh:mm:ss")+" where "+ - "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `CUTS` set `")+ + param+"`="+RDCheckDateTime(value,"hh:mm:ss")+" where "+ + "`CUT_NAME`='"+RDEscapeString(cut_name)+"'"; + RDSqlQuery::apply(sql); } void RDCut::SetRow(const QString ¶m) const { - RDSqlQuery *q; QString sql; - sql=QString("update CUTS set ")+ - param+"=NULL where "+ - "CUT_NAME=\""+RDEscapeString(cut_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `CUTS` set `")+ + param+"`=NULL where "+ + "`CUT_NAME`='"+RDEscapeString(cut_name)+"'"; + RDSqlQuery::apply(sql); } diff --git a/lib/rdcut_dialog.cpp b/lib/rdcut_dialog.cpp index 9cd8a6f7..adf8de12 100644 --- a/lib/rdcut_dialog.cpp +++ b/lib/rdcut_dialog.cpp @@ -200,13 +200,6 @@ void RDCutDialog::modelResetData() for(int i=0;icolumnCount();i++) { cart_cart_view->resizeColumnToContents(i); } - - /* - if(cart_cutname!=NULL) { - QModelIndex index=cart_cart_model->cutRow(*cart_cutname); - cart_cart_view->selectRow(index.row()); - } - */ } @@ -247,11 +240,11 @@ void RDCutDialog::addButtonData() delete add_cart; return; } - sql=QString("insert into CART set ")+ - QString().sprintf("NUMBER=%d,",cart_num)+ - QString().sprintf("TYPE=%d,",cart_type)+ - "GROUP_NAME=\""+RDEscapeString(cart_group)+"\","+ - "TITLE=\""+RDEscapeString(cart_title)+"\""; + sql=QString("insert into `CART` set ")+ + QString().sprintf("`NUMBER`=%d,",cart_num)+ + QString().sprintf("`TYPE`=%d,",cart_type)+ + "`GROUP_NAME`='"+RDEscapeString(cart_group)+"',"+ + "`TITLE`='"+RDEscapeString(cart_title)+"'"; q=new RDSqlQuery(sql); delete q; RDCut::create(cart_num,1); diff --git a/lib/rdcutlistmodel.cpp b/lib/rdcutlistmodel.cpp index 1c259716..c764b4fd 100644 --- a/lib/rdcutlistmodel.cpp +++ b/lib/rdcutlistmodel.cpp @@ -437,33 +437,33 @@ QString RDCutListModel::sqlFields() const QString sql; sql=QString("select ")+ - "PLAY_ORDER,"+ // 00 - "WEIGHT,"+ // 01 - "DESCRIPTION,"+ // 02 - "LENGTH,"+ // 03 - "LAST_PLAY_DATETIME,"+ // 04 - "PLAY_COUNTER,"+ // 05 - "ORIGIN_DATETIME,"+ // 06 - "ORIGIN_NAME,"+ // 07 - "ORIGIN_LOGIN_NAME,"+ // 08 - "SOURCE_HOSTNAME,"+ // 09 - "OUTCUE,"+ // 10 - "CUT_NAME,"+ // 11 - "LENGTH,"+ // 12 offsets begin here - "EVERGREEN,"+ // 13 - "START_DATETIME,"+ // 14 - "END_DATETIME,"+ // 15 - "START_DAYPART,"+ // 16 - "END_DAYPART,"+ // 17 - "MON,"+ // 18 - "TUE,"+ // 19 - "WED,"+ // 20 - "THU,"+ // 21 - "FRI,"+ // 22 - "SAT,"+ // 23 - "SUN,"+ // 24 - "SHA1_HASH "+ // 25 - "from CUTS "; + "`PLAY_ORDER`,"+ // 00 + "`WEIGHT`,"+ // 01 + "`DESCRIPTION`,"+ // 02 + "`LENGTH`,"+ // 03 + "`LAST_PLAY_DATETIME`,"+ // 04 + "`PLAY_COUNTER`,"+ // 05 + "`ORIGIN_DATETIME`,"+ // 06 + "`ORIGIN_NAME`,"+ // 07 + "`ORIGIN_LOGIN_NAME`,"+ // 08 + "`SOURCE_HOSTNAME`,"+ // 09 + "`OUTCUE`,"+ // 10 + "`CUT_NAME`,"+ // 11 + "`LENGTH`,"+ // 12 offsets begin here + "`EVERGREEN`,"+ // 13 + "`START_DATETIME`,"+ // 14 + "`END_DATETIME`,"+ // 15 + "`START_DAYPART`,"+ // 16 + "`END_DAYPART`,"+ // 17 + "`MON`,"+ // 18 + "`TUE`,"+ // 19 + "`WED`,"+ // 20 + "`THU`,"+ // 21 + "`FRI`,"+ // 22 + "`SAT`,"+ // 23 + "`SUN`,"+ // 24 + "`SHA1_HASH` "+ // 25 + "from `CUTS` "; return sql; } diff --git a/lib/rddb.cpp b/lib/rddb.cpp index e5590ece..01b33859 100644 --- a/lib/rddb.cpp +++ b/lib/rddb.cpp @@ -188,7 +188,7 @@ bool RDOpenDb (int *schema,QString *err_str,RDConfig *config) q=new QSqlQuery(sql); if(q->first()) { delete q; - q=new QSqlQuery("select DB from VERSION"); + q=new QSqlQuery("select `DB` from `VERSION`"); if(q->first()) { *schema=q->value(0).toUInt(); } diff --git a/lib/rddbheartbeat.cpp b/lib/rddbheartbeat.cpp index ab8f6c38..1f4edfba 100644 --- a/lib/rddbheartbeat.cpp +++ b/lib/rddbheartbeat.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Cart // -// (C) Copyright 2002-2006,2016 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -33,7 +33,7 @@ RDDbHeartbeat::RDDbHeartbeat(int interval,QObject *parent) void RDDbHeartbeat::intervalTimeoutData() { - RDSqlQuery *q=new RDSqlQuery("select DB from VERSION"); + RDSqlQuery *q=new RDSqlQuery("select `DB` from `VERSION`"); q->first(); delete q; } diff --git a/lib/rddeck.cpp b/lib/rddeck.cpp index f9355f04..3798c2b7 100644 --- a/lib/rddeck.cpp +++ b/lib/rddeck.cpp @@ -18,10 +18,10 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include +#include "rddb.h" +#include "rdconf.h" +#include "rddeck.h" +#include "rdescape_string.h" // // Global Classes @@ -35,18 +35,17 @@ RDDeck::RDDeck(QString station,unsigned channel,bool create) deck_channel=channel; if(create) { - sql=QString("select ID from DECKS where ")+ - "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ - QString().sprintf("(CHANNEL=%d)",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=\""+RDEscapeString(deck_station)+"\","+ - QString().sprintf("CHANNEL=%d",deck_channel); - q=new RDSqlQuery(sql); - delete q; + sprintf("insert into `DECKS` set ")+ + "`STATION_NAME`='"+RDEscapeString(deck_station)+"',"+ + QString().sprintf("`CHANNEL`=%d",deck_channel); + RDSqlQuery::apply(sql); } else { delete q; @@ -61,11 +60,11 @@ bool RDDeck::isActive() const RDSqlQuery *q; bool ret=false; - sql=QString("select ID from DECKS where ")+ - "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ - QString().sprintf("(CHANNEL=%u)&&",deck_channel)+ - "(CARD_NUMBER>=0)&&"+ - "(PORT_NUMBER>=0)"; + 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; @@ -217,9 +216,9 @@ QString RDDeck::switchMatrixName() const QString matrix_name; QString sql; - sql=QString("select NAME from MATRICES where ")+ - "(STATION_NAME=\""+RDEscapeString(switchStation())+"\")&&"+ - QString().sprintf("(MATRIX=%d)",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(); @@ -246,10 +245,10 @@ QString RDDeck::switchOutputName() const QString output_name; QString sql; - sql=QString("select NAME from OUTPUTS where ")+ - "(STATION_NAME=\""+RDEscapeString(switchStation())+"\")&&"+ - QString().sprintf("(MATRIX=%d)&&",switchMatrix())+ - QString().sprintf("(NUMBER=%d)",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(); @@ -283,9 +282,9 @@ int RDDeck::GetIntValue(const QString &field) const RDSqlQuery *q; int accum; - sql=QString("select ")+field+" from DECKS where "+ - "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ - QString().sprintf("(CHANNEL=%d)",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(); @@ -303,9 +302,9 @@ QString RDDeck::GetStringValue(const QString &field) const RDSqlQuery *q; QString accum; - sql=QString("select ")+field+" from DECKS where "+ - "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ - QString().sprintf("(CHANNEL=%d)",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(); @@ -322,10 +321,10 @@ void RDDeck::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString("update DECKS set ")+ - param+QString().sprintf("=%d where ",value)+ - "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ - QString().sprintf("(CHANNEL=%d)",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; } @@ -336,10 +335,10 @@ void RDDeck::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString("update DECKS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ - QString().sprintf("(CHANNEL=%d)",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,10 +349,10 @@ void RDDeck::SetRow(const QString ¶m,bool value) const RDSqlQuery *q; QString sql; - sql=QString("update DECKS set ")+ - param+"=\""+RDYesNo(value)+"\" where "+ - "(STATION_NAME=\""+RDEscapeString(deck_station)+"\")&&"+ - QString().sprintf("(CHANNEL=%d)",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/rddiscmodel.cpp b/lib/rddiscmodel.cpp index 1f2d1c00..b0bcf1d9 100644 --- a/lib/rddiscmodel.cpp +++ b/lib/rddiscmodel.cpp @@ -182,11 +182,11 @@ void RDDiscModel::setCutName(const QModelIndex &row,const QString &cutname) } else { QString sql=QString("select ")+ - "CART.TITLE,"+ // 00 - "CUTS.DESCRIPTION "+ // 01 - "from CART left join CUTS "+ - "on CART.NUMBER=CUTS.CART_NUMBER "+ - "where CUTS.CUT_NAME=\""+RDEscapeString(cutname)+"\""; + "`CART`.`TITLE`,"+ // 00 + "`CUTS`.`DESCRIPTION` "+ // 01 + "from `CART` left join `CUTS` "+ + "on `CART`.`NUMBER`=`CUTS`.`CART_NUMBER` "+ + "where `CUTS`.`CUT_NAME`='"+RDEscapeString(cutname)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { d_texts[row.row()][5]=q->value(0).toString()+"->"+q->value(1).toString(); diff --git a/lib/rddropbox.cpp b/lib/rddropbox.cpp index 6d792c51..4db84ac5 100644 --- a/lib/rddropbox.cpp +++ b/lib/rddropbox.cpp @@ -34,11 +34,11 @@ RDDropbox::RDDropbox(int id,const QString &stationname) box_id=id; if(id<0) { - sql=QString("insert into DROPBOXES set ")+ - "STATION_NAME=\""+RDEscapeString(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"; + sql="select `ID` from `DROPBOXES` order by `ID` desc"; q=new RDSqlQuery(sql); if(q->first()) { box_id=q->value(0).toInt(); @@ -402,9 +402,9 @@ void RDDropbox::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString("update DROPBOXES set ")+ - param+QString().sprintf("=%d where ",value)+ - QString().sprintf("ID=%d",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; } @@ -415,9 +415,9 @@ void RDDropbox::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString("update DROPBOXES set ")+ - param+QString().sprintf("=%u where ",value)+ - QString().sprintf("ID=%d",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; } @@ -428,9 +428,9 @@ void RDDropbox::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString("update DROPBOXES set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - QString().sprintf("ID=%d",box_id); + sql=QString("update `DROPBOXES` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + QString().sprintf("`ID`=%d",box_id); q=new RDSqlQuery(sql); delete q; } @@ -441,9 +441,9 @@ void RDDropbox::SetRow(const QString ¶m,bool value) const RDSqlQuery *q; QString sql; - sql=QString("update DROPBOXES set ")+ - param+"=\""+RDYesNo(value)+"\" where "+ - QString().sprintf("ID=%d",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/rddropboxlistmodel.cpp b/lib/rddropboxlistmodel.cpp index 25d4ae6b..0b686cb9 100644 --- a/lib/rddropboxlistmodel.cpp +++ b/lib/rddropboxlistmodel.cpp @@ -223,7 +223,7 @@ void RDDropboxListModel::refresh(const QModelIndex &row) if(row.row()first()) { updateRow(row.row(),q); @@ -252,8 +252,8 @@ void RDDropboxListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields()+ - "where DROPBOXES.STATION_NAME=\""+RDEscapeString(d_hostname)+"\" "+ - "order by DROPBOXES.ID "; + "where `DROPBOXES`.`STATION_NAME`='"+RDEscapeString(d_hostname)+"' "+ + "order by `DROPBOXES`.`ID` "; beginResetModel(); d_box_ids.clear(); d_group_colors.clear(); @@ -275,7 +275,7 @@ void RDDropboxListModel::updateRowLine(int line) if(linefirst()) { updateRow(line,q); @@ -346,20 +346,20 @@ void RDDropboxListModel::updateRow(int row,RDSqlQuery *q) QString RDDropboxListModel::sqlFields() const { QString sql=QString("select ")+ - "DROPBOXES.ID,"+ // 00 - "DROPBOXES.GROUP_NAME,"+ // 01 - "GROUPS.COLOR,"+ // 02 - "DROPBOXES.PATH,"+ // 03 - "DROPBOXES.NORMALIZATION_LEVEL,"+ // 04 - "DROPBOXES.AUTOTRIM_LEVEL,"+ // 05 - "DROPBOXES.TO_CART,"+ // 06 - "DROPBOXES.FORCE_TO_MONO,"+ // 07 - "DROPBOXES.USE_CARTCHUNK_ID,"+ // 08 - "DROPBOXES.DELETE_CUTS,"+ // 09 - "DROPBOXES.METADATA_PATTERN,"+ // 10 - "DROPBOXES.SET_USER_DEFINED "+ // 11 - "from DROPBOXES left join GROUPS "+ - "on DROPBOXES.GROUP_NAME=GROUPS.NAME "; + "`DROPBOXES`.`ID`,"+ // 00 + "`DROPBOXES`.`GROUP_NAME`,"+ // 01 + "`GROUPS`.`COLOR`,"+ // 02 + "`DROPBOXES`.`PATH`,"+ // 03 + "`DROPBOXES`.`NORMALIZATION_LEVEL`,"+ // 04 + "`DROPBOXES`.`AUTOTRIM_LEVEL`,"+ // 05 + "`DROPBOXES`.`TO_CART`,"+ // 06 + "`DROPBOXES`.`FORCE_TO_MONO`,"+ // 07 + "`DROPBOXES`.`USE_CARTCHUNK_ID`,"+ // 08 + "`DROPBOXES`.`DELETE_CUTS`,"+ // 09 + "`DROPBOXES`.`METADATA_PATTERN`,"+ // 10 + "`DROPBOXES`.`SET_USER_DEFINED` "+ // 11 + "from `DROPBOXES` left join `GROUPS` "+ + "on `DROPBOXES`.`GROUP_NAME`=`GROUPS`.`NAME` "; return sql; } diff --git a/lib/rdendpointlistmodel.cpp b/lib/rdendpointlistmodel.cpp index 3949e29b..e60dfd1f 100644 --- a/lib/rdendpointlistmodel.cpp +++ b/lib/rdendpointlistmodel.cpp @@ -42,12 +42,12 @@ RDEndpointListModel::RDEndpointListModel(RDMatrix *mtx,RDMatrix::Endpoint ep, d_alignments.push_back(left); if(ep==RDMatrix::Input) { - d_table_name="INPUTS"; + d_table_name="`INPUTS`"; d_headers.push_back(tr("Input")); d_alignments.push_back(left); } else { - d_table_name="OUTPUTS"; + d_table_name="`OUTPUTS`"; d_headers.push_back(tr("Output")); d_alignments.push_back(left); } @@ -220,7 +220,7 @@ void RDEndpointListModel::refresh(const QModelIndex &row) if(row.row()first()) { updateRow(row.row(),q); @@ -250,9 +250,9 @@ void RDEndpointListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields()+ "where "+ - "STATION_NAME=\""+RDEscapeString(d_mtx->station())+"\" && "+ - QString().sprintf("MATRIX=%d ",d_mtx->matrix())+ - "order by "+d_table_name+".NUMBER "; + "`STATION_NAME`='"+RDEscapeString(d_mtx->station())+"' && "+ + QString().sprintf("`MATRIX`=%d ",d_mtx->matrix())+ + "order by "+d_table_name+".`NUMBER` "; beginResetModel(); d_ids.clear(); d_texts.clear(); @@ -281,7 +281,7 @@ void RDEndpointListModel::updateRowLine(int line) if(linefirst()) { updateRow(line,q); @@ -348,29 +348,29 @@ QString RDEndpointListModel::sqlFields() const switch(d_mtx->type()) { case RDMatrix::LogitekVguest: sql=QString("select ")+ - "ID,"+ // 00 - "NUMBER,"+ // 01 - "NAME,"+ // 02 - "ENGINE_NUM,"+ // 03 - "DEVICE_NUM "+ // 04 + "`ID`,"+ // 00 + "`NUMBER`,"+ // 01 + "`NAME`,"+ // 02 + "`ENGINE_NUM`,"+ // 03 + "`DEVICE_NUM` "+ // 04 "from "+d_table_name+" "; break; case RDMatrix::LiveWireLwrpAudio: sql=QString("select ")+ - "ID,"+ // 00 - "NUMBER,"+ // 01 - "NAME,"+ // 02 - "NODE_HOSTNAME,"+ // 03 - "NODE_SLOT "+ // 04 + "`ID`,"+ // 00 + "`NUMBER`,"+ // 01 + "`NAME`,"+ // 02 + "`NODE_HOSTNAME`,"+ // 03 + "`NODE_SLOT` "+ // 04 "from "+d_table_name+" "; break; default: sql=QString("select ")+ - "ID,"+ // 00 - "NUMBER,"+ // 01 - "NAME "+ // 02 + "`ID`,"+ // 00 + "`NUMBER`,"+ // 01 + "`NAME` "+ // 02 "from "+d_table_name+" "; break; } diff --git a/lib/rdevent.cpp b/lib/rdevent.cpp index ffe00cf9..aa639bfd 100644 --- a/lib/rdevent.cpp +++ b/lib/rdevent.cpp @@ -34,15 +34,15 @@ RDEvent::RDEvent(const QString &name,bool create) event_name=name; if(create) { - sql=QString("select NAME from EVENTS where ")+ - "(NAME=\""+RDEscapeString(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("insert into EVENTS set ")+ - "NAME=\""+RDEscapeString(event_name)+"\","+ - "ARTIST_SEP=15,"+ - "TITLE_SEP=100"; + sql=QString("insert into `EVENTS` set ")+ + "`NAME`='"+RDEscapeString(event_name)+"',"+ + "`ARTIST_SEP`=15,"+ + "`TITLE_SEP`=100"; q=new RDSqlQuery(sql); delete q; } @@ -267,8 +267,8 @@ int RDEvent::GetIntValue(const QString &field) const RDSqlQuery *q; int accum; - sql=QString("select ")+field+" from EVENTS where "+ - "NAME=\""+RDEscapeString(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(); @@ -286,8 +286,8 @@ QString RDEvent::GetStringValue(const QString &field,bool *ok) const RDSqlQuery *q; QString accum; - sql=QString("select ")+field+" from EVENTS where "+ - "NAME=\""+RDEscapeString(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()) { @@ -310,9 +310,9 @@ void RDEvent::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString("update EVENTS set ")+ - param+QString().sprintf("=%d where ",value)+ - "NAME=\""+RDEscapeString(event_name)+"\""; + sql=QString("update `EVENTS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`NAME`='"+RDEscapeString(event_name)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -324,14 +324,14 @@ void RDEvent::SetRow(const QString ¶m,const QString &value,bool ok) const QString sql; if(ok) { - sql=QString("update EVENTS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "NAME=\""+RDEscapeString(event_name)+"\""; + sql=QString("update `EVENTS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`NAME`='"+RDEscapeString(event_name)+"'"; } else { - sql=QString("update EVENTS set ")+ - param+"=NULL where "+ - "NAME=\""+RDEscapeString(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 1593515e..fe6fb04d 100644 --- a/lib/rdevent_line.cpp +++ b/lib/rdevent_line.cpp @@ -299,26 +299,26 @@ void RDEventLine::clear() bool RDEventLine::load() { QString sql=QString("select ")+ - "PREPOSITION,"+ // 00 - "TIME_TYPE,"+ // 01 - "GRACE_TIME,"+ // 02 - "USE_AUTOFILL,"+ // 03 - "USE_TIMESCALE,"+ // 04 - "IMPORT_SOURCE,"+ // 05 - "START_SLOP,"+ // 06 - "END_SLOP,"+ // 07 - "FIRST_TRANS_TYPE,"+ // 08 - "DEFAULT_TRANS_TYPE,"+ // 09 - "COLOR,"+ // 10 - "AUTOFILL_SLOP,"+ // 11 - "NESTED_EVENT,"+ // 12 - "SCHED_GROUP,"+ // 13 - "ARTIST_SEP,"+ // 14 - "TITLE_SEP,"+ // 15 - "HAVE_CODE,"+ // 16 - "HAVE_CODE2 "+ // 17 - "from EVENTS where "+ - "NAME=\""+RDEscapeString(event_name)+"\""; + "`PREPOSITION`,"+ // 00 + "`TIME_TYPE`,"+ // 01 + "`GRACE_TIME`,"+ // 02 + "`USE_AUTOFILL`,"+ // 03 + "`USE_TIMESCALE`,"+ // 04 + "`IMPORT_SOURCE`,"+ // 05 + "`START_SLOP`,"+ // 06 + "`END_SLOP`,"+ // 07 + "`FIRST_TRANS_TYPE`,"+ // 08 + "`DEFAULT_TRANS_TYPE`,"+ // 09 + "`COLOR`,"+ // 10 + "`AUTOFILL_SLOP`,"+ // 11 + "`NESTED_EVENT`,"+ // 12 + "`SCHED_GROUP`,"+ // 13 + "`ARTIST_SEP`,"+ // 14 + "`TITLE_SEP`,"+ // 15 + "`HAVE_CODE`,"+ // 16 + "`HAVE_CODE2` "+ // 17 + "from `EVENTS` where "+ + "`NAME`='"+RDEscapeString(event_name)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { fprintf(stderr,"RDEventLine::load() EVENT NOT FOUND: %s\n", @@ -359,48 +359,48 @@ bool RDEventLine::load() bool RDEventLine::save(RDConfig *config) { - QString sql=QString("select NAME from EVENTS where ")+ - "NAME=\""+RDEscapeString(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 ")+ - QString().sprintf("PREPOSITION=%d,",event_preposition)+ - QString().sprintf("TIME_TYPE=%d,",event_time_type)+ - QString().sprintf("GRACE_TIME=%d,",event_grace_time)+ - "USE_AUTOFILL=\""+RDYesNo(event_use_autofill)+"\","+ - "USE_TIMESCALE=\""+RDYesNo(event_use_timescale)+"\","+ - QString().sprintf("IMPORT_SOURCE=%d,",event_import_source)+ - QString().sprintf("START_SLOP=%d,",event_start_slop)+ - QString().sprintf("END_SLOP=%d,",event_end_slop)+ - QString().sprintf("FIRST_TRANS_TYPE=%d,",event_first_transtype)+ - QString().sprintf("DEFAULT_TRANS_TYPE=%d,",event_default_transtype)+ - "COLOR=\""+RDEscapeString(event_color.name())+"\""+ - QString().sprintf("AUTOFILL_SLOP=%d,",event_autofill_slop)+ - "NESTED_EVENT=\""+RDEscapeString(event_nested_event)+"\","+ - "SCHED_GROUP=\""+RDEscapeString(event_sched_group)+"\","+ - QString().sprintf("ARTIST_SEP=%d,",event_artist_sep)+ - QString().sprintf("TITLE_SEP=%d,",event_title_sep)+ - "HAVE_CODE=\""+RDEscapeString(event_have_code)+"\","+ - "HAVE_CODE2=\""+RDEscapeString(event_have_code2)+"\" "+ - "where NAME=\""+RDEscapeString(event_name)+"\""; + sql=QString("update `EVENTS` set ")+ + QString().sprintf("`PREPOSITION`=%d,",event_preposition)+ + QString().sprintf("`TIME_TYPE`=%d,",event_time_type)+ + QString().sprintf("`GRACE_TIME`=%d,",event_grace_time)+ + "`USE_AUTOFILL`='"+RDYesNo(event_use_autofill)+"`,"+ + "`USE_TIMESCALE`='"+RDYesNo(event_use_timescale)+"',"+ + QString().sprintf("`IMPORT_SOURCE`=%d,",event_import_source)+ + QString().sprintf("`START_SLOP`=%d,",event_start_slop)+ + QString().sprintf("`END_SLOP'=%d,",event_end_slop)+ + QString().sprintf("`FIRST_TRANS_TYPE`=%d,",event_first_transtype)+ + QString().sprintf("`DEFAULT_TRANS_TYPE`=%d,",event_default_transtype)+ + "`COLOR`='"+RDEscapeString(event_color.name())+"'"+ + QString().sprintf("`AUTOFILL_SLOP`=%d,",event_autofill_slop)+ + "`NESTED_EVENT`='"+RDEscapeString(event_nested_event)+"',"+ + "`SCHED_GROUP`='"+RDEscapeString(event_sched_group)+"',"+ + QString().sprintf("`ARTIST_SEP`=%d,",event_artist_sep)+ + QString().sprintf("`TITLE_SEP`=%d,",event_title_sep)+ + "`HAVE_CODE`='"+RDEscapeString(event_have_code)+"',"+ + "`HAVE_CODE2`='"+RDEscapeString(event_have_code2)+"' "+ + "where `NAME`='"+RDEscapeString(event_name)+"'"; } else { - sql=QString("insert into EVENTS set ")+ - "NAME=\""+RDEscapeString(event_name)+"\","+ - QString().sprintf("PREPOSITION=%d,",event_preposition)+ - QString().sprintf("TIME_TYPE=%d,",event_time_type)+ - QString().sprintf("GRACE_TIME=%d,",event_grace_time)+ - "USE_AUTOFILL=\""+RDYesNo(event_use_autofill)+"\","+ - "USE_TIMESCALE=\""+RDYesNo(event_use_timescale)+"\","+ - QString().sprintf("IMPORT_SOURCE=%d,",event_import_source)+ - QString().sprintf("START_SLOP=%d,",event_start_slop)+ - QString().sprintf("END_SLOP=%d,",event_end_slop)+ - QString().sprintf("FIRST_TRANS_TYPE=%d,",event_first_transtype)+ - QString().sprintf("DEFAULT_TRANS_TYPE=%d,",event_default_transtype)+ - "COLOR=\""+RDEscapeString(event_color.name())+"\","+ - QString().sprintf("AUTOFILL_SLOP=%d,",event_autofill_slop)+ - "SCHED_GROUP=\""+RDEscapeString(event_sched_group)+"\" where "+ - "NAME=\""+RDEscapeString(event_name)+"\""; + sql=QString("insert into `EVENTS` set ")+ + "`NAME`='"+RDEscapeString(event_name)+"',"+ + QString().sprintf("`PREPOSITION`=%d,",event_preposition)+ + QString().sprintf("`TIME_TYPE`=%d,",event_time_type)+ + QString().sprintf("`GRACE_TIME`=%d,",event_grace_time)+ + "`USE_AUTOFILL`='"+RDYesNo(event_use_autofill)+"',"+ + "`USE_TIMESCALE`='"+RDYesNo(event_use_timescale)+"',"+ + QString().sprintf("`IMPORT_SOURCE`=%d,",event_import_source)+ + QString().sprintf("`START_SLOP`=%d,",event_start_slop)+ + QString().sprintf("`END_SLOP`=%d,",event_end_slop)+ + QString().sprintf("`FIRST_TRANS_TYPE`=%d,",event_first_transtype)+ + QString().sprintf("`DEFAULT_TRANS_TYPE`=%d,",event_default_transtype)+ + "`COLOR`='"+RDEscapeString(event_color.name())+"',"+ + QString().sprintf("`AUTOFILL_SLOP`=%d,",event_autofill_slop)+ + "`SCHED_GROUP`='"+RDEscapeString(event_sched_group)+"' where "+ + "`NAME`='"+RDEscapeString(event_name)+"'"; } delete q; q=new RDSqlQuery(sql); @@ -435,19 +435,19 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, // // Get Current Count and Link ID // - sql=QString("select COUNT from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(logname)+"\" "+ - "order by COUNT desc"; + sql=QString("select `COUNT` from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(logname)+"' "+ + "order by `COUNT` desc"; q=new RDSqlQuery(sql); if(q->first()) { count=q->value(0).toInt()+1; } delete q; - sql=QString("select LINK_ID from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(logname)+"\" && "+ - "LINK_ID>=0 "+ - "order by LINK_ID desc"; + sql=QString("select `LINK_ID` from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(logname)+"` && "+ + "`LINK_ID`>=0 "+ + "order by `LINK_ID` desc"; q=new RDSqlQuery(sql); if(q->first()) { link_id=q->value(0).toInt()+1; @@ -474,19 +474,19 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, postimport_length=0; for(int i=0;isize()-1;i++) { RDEventImportItem *i_item=event_preimport_list->item(i); - sql=QString("insert into LOG_LINES set ")+ - "LOG_NAME=\""+RDEscapeString(logname)+"\","+ - QString().sprintf("LINE_ID=%d,",count)+ - QString().sprintf("COUNT=%d,",count)+ - QString().sprintf("TYPE=%d,",i_item->eventType())+ - QString().sprintf("SOURCE=%d,",RDLogLine::Template)+ - QString().sprintf("START_TIME=%d,",QTime().msecsTo(time))+ - QString().sprintf("GRACE_TIME=%d,",grace_time)+ - QString().sprintf("CART_NUMBER=%u,",i_item->cartNumber())+ - QString().sprintf("TIME_TYPE=%d,",time_type)+ - QString().sprintf("TRANS_TYPE=%d,",i_item->transType())+ - "COMMENT=\""+RDEscapeString(i_item->markerComment())+"\","+ - QString().sprintf("EVENT_LENGTH=%d",event_length); + sql=QString("insert into `LOG_LINES` set ")+ + "`LOG_NAME`='"+RDEscapeString(logname)+"',"+ + QString().sprintf("`LINE_ID`=%d,",count)+ + QString().sprintf("`COUNT`=%d,",count)+ + QString().sprintf("`TYPE`=%d,",i_item->eventType())+ + QString().sprintf("`SOURCE`=%d,",RDLogLine::Template)+ + QString().sprintf("`START_TIME`=%d,",QTime().msecsTo(time))+ + QString().sprintf("`GRACE_TIME`=%d,",grace_time)+ + QString().sprintf("`CART_NUMBER`=%u,",i_item->cartNumber())+ + QString().sprintf("`TIME_TYPE`=%d,",time_type)+ + QString().sprintf("`TRANS_TYPE`=%d,",i_item->transType())+ + "`COMMENT`='"+RDEscapeString(i_item->markerComment())+"',"+ + QString().sprintf("`EVENT_LENGTH`=%d",event_length); RDSqlQuery::apply(sql); count++; trans_type=event_default_transtype; @@ -514,25 +514,25 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, } QTime end_start_time=event_start_time.addMSecs(event_length); - sql=QString("insert into LOG_LINES set ")+ - "LOG_NAME=\""+RDEscapeString(logname)+"\","+ - QString().sprintf("LINE_ID=%d,",count)+ - QString().sprintf("COUNT=%d,",count)+ - QString().sprintf("TYPE=%d,",link_type)+ - QString().sprintf("SOURCE=%d,",RDLogLine::Template)+ - QString().sprintf("START_TIME=%d,",QTime().msecsTo(time))+ - QString().sprintf("GRACE_TIME=%d,",grace_time)+ - QString().sprintf("TIME_TYPE=%d,",time_type)+ - QString().sprintf("TRANS_TYPE=%d,",trans_type)+ - "LINK_EVENT_NAME=\""+RDEscapeString(event_name)+"\","+ - QString().sprintf("LINK_START_TIME=%d,", + sql=QString("insert into `LOG_LINES` set ")+ + "`LOG_NAME`='"+RDEscapeString(logname)+"',"+ + QString().sprintf("`LINE_ID`=%d,",count)+ + QString().sprintf("`COUNT`=%d,",count)+ + QString().sprintf("`TYPE`=%d,",link_type)+ + QString().sprintf("`SOURCE`=%d,",RDLogLine::Template)+ + QString().sprintf("`START_TIME`=%d,",QTime().msecsTo(time))+ + QString().sprintf("`GRACE_TIME`=%d,",grace_time)+ + QString().sprintf("`TIME_TYPE`=%d,",time_type)+ + QString().sprintf("`TRANS_TYPE`=%d,",trans_type)+ + "`LINK_EVENT_NAME`='"+RDEscapeString(event_name)+"',"+ + QString().sprintf("`LINK_START_TIME`=%d,", QTime().msecsTo(event_start_time))+ - QString().sprintf("LINK_LENGTH=%d,", + QString().sprintf("`LINK_LENGTH`=%d,", event_start_time.msecsTo(end_start_time))+ - QString().sprintf("LINK_ID=%d,",link_id)+ - QString().sprintf("LINK_START_SLOP=%d,",event_start_slop)+ - QString().sprintf("LINK_END_SLOP=%d,",event_end_slop)+ - QString().sprintf("EVENT_LENGTH=%d",event_length); + QString().sprintf("`LINK_ID`=%d,",link_id)+ + QString().sprintf("`LINK_START_SLOP`=%d,",event_start_slop)+ + QString().sprintf("`LINK_END_SLOP`=%d,",event_end_slop)+ + QString().sprintf("`EVENT_LENGTH`=%d",event_length); q=new RDSqlQuery(sql); delete q; count++; @@ -574,9 +574,9 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, // Get next stack id from the stack // sql=QString("select ")+ - "MAX(SCHED_STACK_ID) "+ - "from STACK_LINES where "+ - "SERVICE_NAME=\""+RDEscapeString(svcname)+"\""; + "MAX(`SCHED_STACK_ID`) "+ + "from `STACK_LINES` where "+ + "`SERVICE_NAME`='"+RDEscapeString(svcname)+"'"; q=new RDSqlQuery(sql); if (q->next()) { stackid=q->value(0).toUInt(); @@ -590,11 +590,11 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, // // Load all carts in requested group into schedCL // - sql=QString("select NUMBER,ARTIST,TITLE,")+ - "CONCAT(GROUP_CONCAT(RPAD(SC.SCHED_CODE,11,' ') separator ''),'.') as SCHED_CODES"+ - " from CART LEFT JOIN CART_SCHED_CODES AS SC on (NUMBER=SC.CART_NUMBER)"+ - " where GROUP_NAME='"+RDEscapeString(schedGroup())+"'"+ - " group by NUMBER"; + sql=QString("select `NUMBER`,`ARTIST`,`TITLE`,")+ + "CONCAT(GROUP_CONCAT(RPAD(`SC`.`SCHED_CODE`,11,' ') separator ''),'.') as `SCHED_CODES`"+ + " from `CART` LEFT JOIN `CART_SCHED_CODES` AS `SC` on (`NUMBER`=`SC`.`CART_NUMBER`)"+ + " where `GROUP_NAME`='"+RDEscapeString(schedGroup())+"'"+ + " group by `NUMBER`"; RDSchedCartList *schedCL=new RDSchedCartList(); q=new RDSqlQuery(sql); while(q->next()) { @@ -639,9 +639,9 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, // if(titlesep>=0) { schedCL->save(); - sql=QString("select TITLE from STACK_LINES where ")+ - "SERVICE_NAME=\""+RDEscapeString(svcname)+"\" && "+ - QString().sprintf("SCHED_STACK_ID >= %d",stackid-titlesep); + sql=QString("select `TITLE` from `STACK_LINES` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(svcname)+"' && "+ + QString().sprintf("`SCHED_STACK_ID` >= %d",stackid-titlesep); q=new RDSqlQuery(sql); while (q->next()) { for(counter=0;countergetNumberOfItems();counter++) { @@ -671,9 +671,9 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, // if(artistsep>=0) { schedCL->save(); - sql=QString("select ARTIST from STACK_LINES where ")+ - "SERVICE_NAME=\""+RDEscapeString(svcname)+"\" && "+ - QString().sprintf("SCHED_STACK_ID >= %d",stackid-artistsep); + sql=QString("select `ARTIST` from `STACK_LINES` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(svcname)+"' && "+ + QString().sprintf("`SCHED_STACK_ID` >= %d",stackid-artistsep); q=new RDSqlQuery(sql); while (q->next()) { for(counter=0;countergetNumberOfItems();counter++) { @@ -697,14 +697,14 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, // Clock Scheduler Rules sql=QString("select ")+ - "CODE,"+ // 00 - "MAX_ROW,"+ // 01 - "MIN_WAIT,"+ // 02 - "NOT_AFTER,"+ // 03 - "OR_AFTER,"+ // 04 - "OR_AFTER_II "+ // 05 - "from RULE_LINES where "+ - "CLOCK_NAME=\""+RDEscapeString(clockname)+"\""; + "`CODE`,"+ // 00 + "`MAX_ROW`,"+ // 01 + "`MIN_WAIT`,"+ // 02 + "`NOT_AFTER`,"+ // 03 + "`OR_AFTER`,"+ // 04 + "`OR_AFTER_II` "+ // 05 + "from `RULE_LINES` where "+ + "`CLOCK_NAME`='"+RDEscapeString(clockname)+"'"; q=new RDSqlQuery(sql); while (q->next()) { // max in a row, min wait @@ -714,13 +714,13 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, QString wstr=q->value(0).toString(); wstr+=" "; wstr=wstr.left(11); - sql=QString("select STACK_LINES.CART ")+ - "from STACK_LINES left join STACK_SCHED_CODES "+ - "on STACK_LINES.ID=STACK_SCHED_CODES.STACK_LINES_ID where "+ - "STACK_LINES.SERVICE_NAME=\""+RDEscapeString(svcname)+"\" && "+ - QString().sprintf("STACK_LINES.SCHED_STACK_ID > %d && ", + sql=QString("select `STACK_LINES`.`CART` ")+ + "from `STACK_LINES` left join `STACK_SCHED_CODES` "+ + "on `STACK_LINES`.`ID`=`STACK_SCHED_CODES`.`STACK_LINES_ID` where "+ + "`STACK_LINES`.`SERVICE_NAME`='"+RDEscapeString(svcname)+"' && "+ + QString().sprintf("`STACK_LINES`.`SCHED_STACK_ID` > %d && ", stackid-range)+ - "STACK_SCHED_CODES.SCHED_CODE=\""+RDEscapeString(wstr)+"\""; + "`STACK_SCHED_CODES`.`SCHED_CODE`='"+RDEscapeString(wstr)+"'"; q1=new RDSqlQuery(sql); if(q1->size()>=allowed || allowed==0) { for(counter=0;countergetNumberOfItems();counter++) { @@ -743,12 +743,12 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, QString wstr=q->value(3).toString(); wstr+=" "; wstr=wstr.left(11); - sql=QString("select STACK_LINES.CART ")+ - "from STACK_LINES left join STACK_SCHED_CODES "+ - "on STACK_LINES.ID=STACK_SCHED_CODES.STACK_LINES_ID where "+ - "STACK_LINES.SERVICE_NAME=\""+RDEscapeString(svcname)+"\" && "+ - QString().sprintf("STACK_LINES.SCHED_STACK_ID=%d && ",stackid-1)+ - "STACK_SCHED_CODES.SCHED_CODE=\""+RDEscapeString(wstr)+"\""; + sql=QString("select `STACK_LINES`.`CART` ")+ + "from `STACK_LINES` left join `STACK_SCHED_CODES` "+ + "on `STACK_LINES`.`ID`=`STACK_SCHED_CODES`.`STACK_LINES_ID` where "+ + "`STACK_LINES`.`SERVICE_NAME`='"+RDEscapeString(svcname)+"' && "+ + QString().sprintf("`STACK_LINES`.`SCHED_STACK_ID`=%d && ",stackid-1)+ + "`STACK_SCHED_CODES`.`SCHED_CODE`='"+RDEscapeString(wstr)+"'"; q1=new RDSqlQuery(sql); if(q1->size()>0) { for(counter=0;countergetNumberOfItems();counter++) { @@ -772,11 +772,11 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, QString wstr=q->value(4).toString(); wstr+=" "; wstr=wstr.left(11); - sql=QString("select STACK_LINES.CART ")+ - "from STACK_LINES left join STACK_SCHED_CODES "+ - "on STACK_LINES.ID=STACK_SCHED_CODES.STACK_LINES_ID where "+ - QString().sprintf("STACK_LINES.SCHED_STACK_ID=%d && ",stackid-1)+ - "STACK_SCHED_CODES.SCHED_CODE=\""+RDEscapeString(wstr)+"\""; + sql=QString("select `STACK_LINES`.`CART` ")+ + "from `STACK_LINES` left join `STACK_SCHED_CODES` "+ + "on `STACK_LINES`.`ID`=`STACK_SCHED_CODES`.`STACK_LINES_ID` where "+ + QString().sprintf("`STACK_LINES`.`SCHED_STACK_ID`=%d && ",stackid-1)+ + "`STACK_SCHED_CODES`.`SCHED_CODE`='"+RDEscapeString(wstr)+"'"; q1=new RDSqlQuery(sql); if(q1->size()>0) { for(counter=0;countergetNumberOfItems();counter++) { @@ -800,11 +800,11 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, QString wstr=q->value(5).toString(); wstr+=" "; wstr=wstr.left(11); - sql=QString("select STACK_LINES.CART ")+ - "from STACK_LINES left join STACK_SCHED_CODES "+ - "on STACK_LINES.ID=STACK_SCHED_CODES.STACK_LINES_ID where "+ - QString().sprintf("STACK_LINES.SCHED_STACK_ID=%d && ",stackid-1)+ - "STACK_SCHED_CODES.SCHED_CODE=\""+RDEscapeString(wstr)+"\""; + sql=QString("select `STACK_LINES`.`CART` ")+ + "from `STACK_LINES` left join `STACK_SCHED_CODES` "+ + "on `STACK_LINES`.`ID`=`STACK_SCHED_CODES`.`STACK_LINES_ID` where "+ + QString().sprintf("`STACK_LINES`.`SCHED_STACK_ID`=%d && ",stackid-1)+ + "`STACK_SCHED_CODES`.`SCHED_CODE`='"+RDEscapeString(wstr)+"'"; q1=new RDSqlQuery(sql); if(q1->size()>0) { for(counter=0;countergetNumberOfItems();counter++) { @@ -835,37 +835,37 @@ bool RDEventLine::generateLog(QString logname,const QString &svcname, // Pick a random cart from those that are remaining. // int schedpos=rand()%schedCL->getNumberOfItems(); - sql=QString("insert into LOG_LINES set ")+ - "LOG_NAME=\""+RDEscapeString(logname)+"\","+ - QString().sprintf("LINE_ID=%d,",count)+ - QString().sprintf("COUNT=%d,",count)+ - QString().sprintf("TYPE=%d,",RDLogLine::Cart)+ - QString().sprintf("SOURCE=%d,",source)+ - QString().sprintf("START_TIME=%d,",QTime().msecsTo(time))+ - QString().sprintf("GRACE_TIME=%d,",grace_time)+ - QString().sprintf("CART_NUMBER=%u,",schedCL->getItemCartNumber(schedpos))+ - QString().sprintf("TIME_TYPE=%d,",time_type)+ - QString().sprintf("TRANS_TYPE=%d,",trans_type)+ - "EXT_START_TIME="+RDCheckDateTime(time,"hh:mm:ss")+","+ - QString().sprintf("EVENT_LENGTH=%d",event_length); + sql=QString("insert into `LOG_LINES` set ")+ + "`LOG_NAME`=\""+RDEscapeString(logname)+"\","+ + QString().sprintf("`LINE_ID`=%d,",count)+ + QString().sprintf("`COUNT`=%d,",count)+ + QString().sprintf("`TYPE`=%d,",RDLogLine::Cart)+ + QString().sprintf("`SOURCE`=%d,",source)+ + QString().sprintf("`START_TIME`=%d,",QTime().msecsTo(time))+ + QString().sprintf("`GRACE_TIME`=%d,",grace_time)+ + QString().sprintf("`CART_NUMBER`=%u,",schedCL->getItemCartNumber(schedpos))+ + QString().sprintf("`TIME_TYPE`=%d,",time_type)+ + QString().sprintf("`TRANS_TYPE`=%d,",trans_type)+ + "`EXT_START_TIME`="+RDCheckDateTime(time,"hh:mm:ss")+","+ + QString().sprintf("`EVENT_LENGTH`=%d",event_length); q=new RDSqlQuery(sql); delete q; count++; - sql=QString("insert into STACK_LINES set ")+ - "SERVICE_NAME=\""+RDEscapeString(svcname)+"\","+ - "SCHEDULED_AT=now(),"+ - QString().sprintf("SCHED_STACK_ID=%u,",stackid)+ - QString().sprintf("CART=%u,",schedCL->getItemCartNumber(schedpos))+ - "ARTIST=\""+RDEscapeString(schedCL->getItemArtist(schedpos))+"\","+ - "TITLE=\""+RDEscapeString(schedCL->getItemTitle(schedpos))+"\""; + sql=QString("insert into `STACK_LINES` set ")+ + "`SERVICE_NAME`='"+RDEscapeString(svcname)+"',"+ + "`SCHEDULED_AT`=now(),"+ + QString().sprintf("`SCHED_STACK_ID`=%u,",stackid)+ + QString().sprintf("`CART`=%u,",schedCL->getItemCartNumber(schedpos))+ + "`ARTIST`='"+RDEscapeString(schedCL->getItemArtist(schedpos))+"',"+ + "`TITLE`='"+RDEscapeString(schedCL->getItemTitle(schedpos))+"'"; unsigned line_id=RDSqlQuery::run(sql).toUInt(); QStringList codes=schedCL->getItemSchedCodes(schedpos); for(int i=0;isize()-1;i++) { RDEventImportItem *i_item=event_postimport_list->item(i); - sql=QString("insert into LOG_LINES set ")+ - "LOG_NAME=\""+RDEscapeString(logname)+"\","+ - QString().sprintf("LINE_ID=%d,",count)+ - QString().sprintf("COUNT=%d,",count)+ - QString().sprintf("TYPE=%d,",i_item->eventType())+ - QString().sprintf("SOURCE=%d,",RDLogLine::Template)+ - QString().sprintf("START_TIME=%d,",QTime().msecsTo(time))+ - QString().sprintf("GRACE_TIME=%d,",grace_time)+ - QString().sprintf("CART_NUMBER=%u,",i_item->cartNumber())+ - QString().sprintf("TIME_TYPE=%d,",time_type)+ - QString().sprintf("TRANS_TYPE=%d,",i_item->transType())+ - "COMMENT=\""+RDEscapeString(i_item->markerComment())+"\","+ - QString().sprintf("EVENT_LENGTH=%d",event_length); + sql=QString("insert into `LOG_LINES` set ")+ + "`LOG_NAME`='"+RDEscapeString(logname)+"',"+ + QString().sprintf("`LINE_ID`=%d,",count)+ + QString().sprintf("`COUNT`=%d,",count)+ + QString().sprintf("`TYPE`=%d,",i_item->eventType())+ + QString().sprintf("`SOURCE`=%d,",RDLogLine::Template)+ + QString().sprintf("`START_TIME`=%d,",QTime().msecsTo(time))+ + QString().sprintf("`GRACE_TIME`=%d,",grace_time)+ + QString().sprintf("`CART_NUMBER`=%u,",i_item->cartNumber())+ + QString().sprintf("`TIME_TYPE`=%d,",time_type)+ + QString().sprintf("`TRANS_TYPE`=%d,",i_item->transType())+ + "`COMMENT`='"+RDEscapeString(i_item->markerComment())+"',"+ + QString().sprintf("`EVENT_LENGTH`=%d",event_length); RDSqlQuery::apply(sql); count++; time=time.addMSecs(GetLength(i_item->cartNumber())); @@ -996,24 +996,24 @@ bool RDEventLine::linkLog(RDLogModel *e,RDLog *log,const QString &svcname, // Load Matching Events and Insert into Log // sql=QString("select ")+ - "CART_NUMBER,"+ // 00 - "START_SECS,"+ // 01 - "LENGTH,"+ // 02 - "EXT_DATA,"+ // 03 - "EXT_EVENT_ID,"+ // 04 - "EXT_ANNC_TYPE,"+ // 05 - "EXT_CART_NAME,"+ // 06 - "TITLE,"+ // 07 - "TYPE,"+ // 08 - "LINK_START_TIME,"+ // 09 - "LINK_LENGTH "+ // 10 - "from IMPORTER_LINES where "+ - "STATION_NAME=\""+RDEscapeString(event_station->name())+"\" && "+ - QString().sprintf("PROCESS_ID=%u && ",getpid())+ - QString().sprintf("(START_HOUR=%d)&&",start_start_hour)+ - QString().sprintf("(START_SECS>=%d)&&",start_start_secs/1000)+ - QString().sprintf("(START_SECS<=%d)&&",end_start_secs/1000)+ - "(EVENT_USED=\"N\") order by LINE_ID"; + "`CART_NUMBER`,"+ // 00 + "`START_SECS`,"+ // 01 + "`LENGTH`,"+ // 02 + "`EXT_DATA`,"+ // 03 + "`EXT_EVENT_ID`,"+ // 04 + "`EXT_ANNC_TYPE`,"+ // 05 + "`EXT_CART_NAME`,"+ // 06 + "`TITLE`,"+ // 07 + "`TYPE`,"+ // 08 + "`LINK_START_TIME`,"+ // 09 + "`LINK_LENGTH` "+ // 10 + "from `IMPORTER_LINES` where "+ + "`STATION_NAME`='"+RDEscapeString(event_station->name())+"' && "+ + QString().sprintf("`PROCESS_ID`=%u && ",getpid())+ + QString().sprintf("(`START_HOUR`=%d)&&",start_start_hour)+ + QString().sprintf("(`START_SECS`>=%d)&&",start_start_secs/1000)+ + QString().sprintf("(`START_SECS`<=%d)&&",end_start_secs/1000)+ + "(`EVENT_USED`='N') order by `LINE_ID`"; q=new RDSqlQuery(sql); while(q->next()) { int length=GetLength(q->value(0).toUInt(),q->value(2).toInt()); @@ -1131,14 +1131,14 @@ bool RDEventLine::linkLog(RDLogModel *e,RDLog *log,const QString &svcname, // // Mark Events as Used // - sql=QString("update IMPORTER_LINES set ")+ - "EVENT_USED=\"Y\" where "+ - "STATION_NAME=\""+RDEscapeString(event_station->name())+"\" && "+ - QString().sprintf("PROCESS_ID=%u && ",getpid())+ - QString().sprintf("(START_HOUR=%d)&&",start_start_hour)+ - QString().sprintf("(START_SECS>=%d)&&",start_start_secs/1000)+ - QString().sprintf("(START_SECS<=%d)&&",end_start_secs/1000)+ - "(EVENT_USED=\"N\")"; + sql=QString("update `IMPORTER_LINES` set ")+ + "`EVENT_USED`='Y' where "+ + "`STATION_NAME`='"+RDEscapeString(event_station->name())+"' && "+ + QString().sprintf("`PROCESS_ID`=%u && ",getpid())+ + QString().sprintf("(`START_HOUR`=%d)&&",start_start_hour)+ + QString().sprintf("(`START_SECS`>=%d)&&",start_start_secs/1000)+ + QString().sprintf("(`START_SECS`<=%d)&&",end_start_secs/1000)+ + "(`EVENT_USED`='N')"; q=new RDSqlQuery(sql); delete q; @@ -1150,14 +1150,14 @@ bool RDEventLine::linkLog(RDLogModel *e,RDLog *log,const QString &svcname, if(event_use_autofill&&(event_start_time<=time)) { QTime fill_start_time=time; sql=QString("select ")+ - "AUTOFILLS.CART_NUMBER,"+ // 00 - "CART.FORCED_LENGTH "+ // 01 - "from AUTOFILLS left join CART "+ - "on AUTOFILLS.CART_NUMBER=CART.NUMBER where "+ - "(AUTOFILLS.SERVICE=\""+RDEscapeString(svcname)+"\")&&"+ - QString().sprintf("(CART.FORCED_LENGTH<=%d)&&",time.msecsTo(end_time))+ - "(CART.FORCED_LENGTH>0) "+ - "order by CART.FORCED_LENGTH desc"; + "`AUTOFILLS`.`CART_NUMBER`,"+ // 00 + "`CART`.`FORCED_LENGTH` "+ // 01 + "from `AUTOFILLS` left join `CART` "+ + "on `AUTOFILLS`.`CART_NUMBER`=`CART`.`NUMBER` where "+ + "(`AUTOFILLS`.`SERVICE`='"+RDEscapeString(svcname)+"')&&"+ + QString().sprintf("(`CART`.`FORCED_LENGTH`<=%d)&&",time.msecsTo(end_time))+ + "(`CART`.`FORCED_LENGTH`>0) "+ + "order by `CART`.`FORCED_LENGTH` desc"; q=new RDSqlQuery(sql); bool fit=true; while(fit) { @@ -1222,17 +1222,17 @@ QString RDEventLine::propertiesText() const { QString ret; QString sql=QString("select ")+ - "NAME,"+ // 00 - "COLOR,"+ // 01 - "PREPOSITION,"+ // 02 - "FIRST_TRANS_TYPE,"+ // 03 - "TIME_TYPE,"+ // 04 - "GRACE_TIME,"+ // 05 - "USE_AUTOFILL,"+ // 06 - "IMPORT_SOURCE,"+ // 07 - "NESTED_EVENT "+ // 08 - "from EVENTS where "+ - "NAME=\""+RDEscapeString(event_name)+"\""; + "`NAME`,"+ // 00 + "`COLOR`,"+ // 01 + "`PREPOSITION`,"+ // 02 + "`FIRST_TRANS_TYPE`,"+ // 03 + "`TIME_TYPE`,"+ // 04 + "`GRACE_TIME`,"+ // 05 + "`USE_AUTOFILL`,"+ // 06 + "`IMPORT_SOURCE`,"+ // 07 + "`NESTED_EVENT` "+ // 08 + "from `EVENTS` where "+ + "`NAME`='"+RDEscapeString(event_name)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=RDEventLine:: diff --git a/lib/rdeventimportlist.cpp b/lib/rdeventimportlist.cpp index efb5c461..ee72285f 100644 --- a/lib/rdeventimportlist.cpp +++ b/lib/rdeventimportlist.cpp @@ -2,7 +2,7 @@ // // Abstract an rdlogmanager(1) Import List // -// (C) Copyright 2018-2020 Fred Gleason +// (C) Copyright 2018-2021 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 @@ -170,14 +170,14 @@ void RDEventImportList::load() { list_items.clear(); QString sql=QString("select ")+ - "EVENT_TYPE,"+ // 00 - "CART_NUMBER,"+ // 01 - "TRANS_TYPE,"+ // 02 - "MARKER_COMMENT "+ // 03 - "from EVENT_LINES where "+ - "EVENT_NAME=\""+RDEscapeString(list_event_name)+"\" && "+ - QString().sprintf("TYPE=%d ",list_type)+ - "order by COUNT"; + "`EVENT_TYPE`,"+ // 00 + "`CART_NUMBER`,"+ // 01 + "`TRANS_TYPE`,"+ // 02 + "`MARKER_COMMENT` "+ // 03 + "from `EVENT_LINES` where "+ + "`EVENT_NAME`='"+RDEscapeString(list_event_name)+"' && "+ + QString().sprintf("`TYPE`=%d ",list_type)+ + "order by `COUNT`"; RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { list_items.push_back(new RDEventImportItem()); @@ -193,24 +193,24 @@ void RDEventImportList::load() void RDEventImportList::save(RDLogLine::TransType first_trans) const { - QString sql=QString("delete from EVENT_LINES where ")+ - "EVENT_NAME=\""+RDEscapeString(list_event_name)+"\" && "+ - QString().sprintf("TYPE=%d",list_type); + QString sql=QString("delete from `EVENT_LINES` where ")+ + "`EVENT_NAME`='"+RDEscapeString(list_event_name)+"' && "+ + QString().sprintf("`TYPE`=%d",list_type); RDSqlQuery::apply(sql); for(int i=0;i<(list_items.size()-1);i++) { RDEventImportItem *item=list_items.at(i); - sql=QString("insert into EVENT_LINES set ")+ - "EVENT_NAME=\""+RDEscapeString(list_event_name)+"\","+ - QString().sprintf("TYPE=%d,",list_type)+ - QString().sprintf("COUNT=%u,",i)+ - QString().sprintf("EVENT_TYPE=%d,",item->eventType())+ - QString().sprintf("CART_NUMBER=%u,",item->cartNumber())+ - "MARKER_COMMENT=\""+RDEscapeString(item->markerComment())+"\","; + sql=QString("insert into `EVENT_LINES` set ")+ + "`EVENT_NAME`='"+RDEscapeString(list_event_name)+"',"+ + QString().sprintf("`TYPE`=%d,",list_type)+ + QString().sprintf("`COUNT`=%u,",i)+ + QString().sprintf("`EVENT_TYPE`=%d,",item->eventType())+ + QString().sprintf("`CART_NUMBER`=%u,",item->cartNumber())+ + "`MARKER_COMMENT`='"+RDEscapeString(item->markerComment())+"',"; if(first_trans==RDLogLine::NoTrans) { - sql+=QString().sprintf("TRANS_TYPE=%d",item->transType()); + sql+=QString().sprintf("`TRANS_TYPE`=%d",item->transType()); } else { - sql+=QString().sprintf("TRANS_TYPE=%d",first_trans); + sql+=QString().sprintf("`TRANS_TYPE`=%d",first_trans); first_trans=RDLogLine::NoTrans; } RDSqlQuery::apply(sql); diff --git a/lib/rdexport_settings_dialog.cpp b/lib/rdexport_settings_dialog.cpp index f462575f..9e3a1da9 100644 --- a/lib/rdexport_settings_dialog.cpp +++ b/lib/rdexport_settings_dialog.cpp @@ -311,10 +311,10 @@ void RDExportSettingsDialog::okData() if(lib_id>0) { sql=QString("select ")+ - "ID "+ // 00 - "from ENCODER_PRESETS where "+ - "NAME=\""+RDEscapeString(lib_name_edit->text())+"\" && "+ - QString().sprintf("ID!=%u",lib_id); + "`ID` "+ // 00 + "from `ENCODER_PRESETS` where "+ + "`NAME`='"+RDEscapeString(lib_name_edit->text())+"' && "+ + QString().sprintf("`ID`!=%u",lib_id); q=new RDSqlQuery(sql); if(q->first()) { QMessageBox::information(this,lib_caption+" - "+tr("Duplicate Name"), diff --git a/lib/rdfeed.cpp b/lib/rdfeed.cpp index 6a51ef00..20b45658 100644 --- a/lib/rdfeed.cpp +++ b/lib/rdfeed.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell RSS Feed // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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,10 +23,7 @@ #include -#include -#include -#include -#include +#include #include "rdapplication.h" #include "rdaudioconvert.h" @@ -56,8 +53,8 @@ RDFeed::RDFeed(const QString &keyname,RDConfig *config,QObject *parent) feed_keyname=keyname; feed_config=config; - sql=QString("select ID from FEEDS where ")+ - "KEY_NAME=\""+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(); @@ -82,7 +79,7 @@ RDFeed::RDFeed(unsigned id,RDConfig *config,QObject *parent) feed_id=id; feed_config=config; - sql=QString().sprintf("select KEY_NAME from FEEDS where ID=%u",id); + sql=QString().sprintf("select `KEY_NAME` from `FEEDS` where `ID`=%u",id); q=new RDSqlQuery(sql); if(q->first()) { feed_keyname=q->value(0).toString(); @@ -118,9 +115,9 @@ QStringList RDFeed::subfeedNames() const QStringList ret; sql=QString("select ")+ - "MEMBER_KEY_NAME "+ // 00 - "from SUPERFEED_MAPS where "+ - "KEY_NAME=\""+RDEscapeString(keyName())+"\""; + "`MEMBER_KEY_NAME` "+ // 00 + "from `SUPERFEED_MAPS` where "+ + "`KEY_NAME`='"+RDEscapeString(keyName())+"'"; q=new RDSqlQuery(sql); while(q->next()) { ret.push_back(q->value(0).toString()); @@ -136,9 +133,9 @@ QStringList RDFeed::isSubfeedOf() const QStringList ret; QString sql=QString("select ")+ - "KEY_NAME "+ // 00 - "from SUPERFEED_MAPS where "+ - "MEMBER_KEY_NAME=\""+RDEscapeString(keyName())+"\""; + "`KEY_NAME` "+ // 00 + "from `SUPERFEED_MAPS` where "+ + "`MEMBER_KEY_NAME`='"+RDEscapeString(keyName())+"'"; RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { ret.push_back(q->value(0).toString()); @@ -754,15 +751,15 @@ int RDFeed::importImageFile(const QString &pathname,QString *err_msg, // Write it to the DB // QStringList f0=pathname.split(".",QString::SkipEmptyParts); - sql=QString("insert into FEED_IMAGES set ")+ - QString().sprintf("FEED_ID=%u,",id())+ - "FEED_KEY_NAME=\""+RDEscapeString(keyName())+"\","+ - QString().sprintf("WIDTH=%d,",img->width())+ - QString().sprintf("HEIGHT=%d,",img->height())+ - QString().sprintf("DEPTH=%d,",img->depth())+ - "DESCRIPTION=\""+RDEscapeString(desc)+"\","+ - "FILE_EXTENSION=\""+RDEscapeString(f0.last().toLower())+"\","+ - "DATA="+RDEscapeBlob(data); + sql=QString("insert into `FEED_IMAGES` set ")+ + QString().sprintf("`FEED_ID`=%u,",id())+ + "`FEED_KEY_NAME`='"+RDEscapeString(keyName())+"',"+ + QString().sprintf("`WIDTH`=%d,",img->width())+ + QString().sprintf("`HEIGHT`=%d,",img->height())+ + QString().sprintf("`DEPTH`=%d,",img->depth())+ + "`DESCRIPTION`='"+RDEscapeString(desc)+"',"+ + "`FILE_EXTENSION`='"+RDEscapeString(f0.last().toLower())+"',"+ + "`DATA`="+RDEscapeBlob(data); ret=RDSqlQuery::run(sql,&ok).toInt(); if(!ok) { *err_msg="Unable to write to database"; @@ -782,8 +779,8 @@ bool RDFeed::deleteImage(int img_id,QString *err_msg) removeImage(img_id); - sql=QString("delete from FEED_IMAGES where ")+ - QString().sprintf("ID=%d",img_id); + sql=QString("delete from `FEED_IMAGES` where ")+ + QString().sprintf("`ID`=%d",img_id); if(!RDSqlQuery::apply(sql,err_msg)) { *err_msg=QString("database error: ")+*err_msg; delete q; @@ -885,10 +882,10 @@ QString RDFeed::imageUrl(int img_id) const QString ret; QString sql=QString("select ")+ - "FEED_ID,"+ // 00 - "FILE_EXTENSION "+ // 01 - "from FEED_IMAGES where "+ - QString().sprintf("ID=%d",img_id); + "`FEED_ID`,"+ // 00 + "`FILE_EXTENSION` "+ // 01 + "from `FEED_IMAGES` where "+ + QString().sprintf("`ID`=%d",img_id); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=baseUrl(q->value(0).toUInt())+"/"+ @@ -1549,39 +1546,39 @@ QString RDFeed::rssXml(QString *err_msg,const QDateTime &now,bool *ok) *ok=false; } sql=QString("select ")+ - "FEEDS.CHANNEL_TITLE,"+ // 00 - "FEEDS.CHANNEL_DESCRIPTION,"+ // 01 - "FEEDS.CHANNEL_CATEGORY,"+ // 02 - "FEEDS.CHANNEL_SUB_CATEGORY,"+ // 03 - "FEEDS.CHANNEL_LINK,"+ // 04 - "FEEDS.CHANNEL_COPYRIGHT,"+ // 05 - "FEEDS.CHANNEL_EDITOR,"+ // 06 - "FEEDS.CHANNEL_AUTHOR,"+ // 07 - "FEEDS.CHANNEL_OWNER_NAME,"+ // 08 - "FEEDS.CHANNEL_OWNER_EMAIL,"+ // 09 - "FEEDS.CHANNEL_WEBMASTER,"+ // 10 - "FEEDS.CHANNEL_LANGUAGE,"+ // 11 - "FEEDS.CHANNEL_EXPLICIT,"+ // 12 - "FEEDS.ORIGIN_DATETIME,"+ // 13 - "FEEDS.HEADER_XML,"+ // 14 - "FEEDS.CHANNEL_XML,"+ // 15 - "FEEDS.ITEM_XML,"+ // 16 - "FEEDS.BASE_URL,"+ // 17 - "FEEDS.ID,"+ // 18 - "FEEDS.UPLOAD_EXTENSION,"+ // 19 - "FEEDS.CAST_ORDER,"+ // 20 - "FEEDS.BASE_PREAMBLE,"+ // 21 - "FEEDS.IS_SUPERFEED,"+ // 22 - "FEED_IMAGES.ID,"+ // 23 - "FEED_IMAGES.WIDTH,"+ // 24 - "FEED_IMAGES.HEIGHT,"+ // 25 - "FEED_IMAGES.DESCRIPTION,"+ // 26 - "FEED_IMAGES.FILE_EXTENSION "+ // 27 - "from FEEDS "; - sql+="left join FEED_IMAGES "; - sql+="on FEEDS.CHANNEL_IMAGE_ID=FEED_IMAGES.ID "; + "`FEEDS`.`CHANNEL_TITLE`,"+ // 00 + "`FEEDS`.`CHANNEL_DESCRIPTION`,"+ // 01 + "`FEEDS`.`CHANNEL_CATEGORY`,"+ // 02 + "`FEEDS`.`CHANNEL_SUB_CATEGORY`,"+ // 03 + "`FEEDS`.`CHANNEL_LINK`,"+ // 04 + "`FEEDS`.`CHANNEL_COPYRIGHT`,"+ // 05 + "`FEEDS`.`CHANNEL_EDITOR`,"+ // 06 + "`FEEDS`.`CHANNEL_AUTHOR`,"+ // 07 + "`FEEDS`.`CHANNEL_OWNER_NAME`,"+ // 08 + "`FEEDS`.`CHANNEL_OWNER_EMAIL`,"+ // 09 + "`FEEDS`.`CHANNEL_WEBMASTER`,"+ // 10 + "`FEEDS`.`CHANNEL_LANGUAGE`,"+ // 11 + "`FEEDS`.`CHANNEL_EXPLICIT`,"+ // 12 + "`FEEDS`.`ORIGIN_DATETIME`,"+ // 13 + "`FEEDS`.`HEADER_XML`,"+ // 14 + "`FEEDS`.`CHANNEL_XML`,"+ // 15 + "`FEEDS`.`ITEM_XML`,"+ // 16 + "`FEEDS`.`BASE_URL`,"+ // 17 + "`FEEDS`.`ID`,"+ // 18 + "`FEEDS`.`UPLOAD_EXTENSION`,"+ // 19 + "`FEEDS`.`CAST_ORDER`,"+ // 20 + "`FEEDS`.`BASE_PREAMBLE`,"+ // 21 + "`FEEDS`.`IS_SUPERFEED`,"+ // 22 + "`FEED_IMAGES`.`ID`,"+ // 23 + "`FEED_IMAGES`.`WIDTH`,"+ // 24 + "`FEED_IMAGES`.`HEIGHT`,"+ // 25 + "`FEED_IMAGES`.`DESCRIPTION`,"+ // 26 + "`FEED_IMAGES`.`FILE_EXTENSION` "+ // 27 + "from `FEEDS` "; + sql+="left join `FEED_IMAGES` "; + sql+="on `FEEDS`.`CHANNEL_IMAGE_ID`=`FEED_IMAGES`.`ID` "; sql+="where "; - sql+="FEEDS.KEY_NAME=\""+RDEscapeString(keyName())+"\""; + sql+="`FEEDS`.`KEY_NAME`='"+RDEscapeString(keyName())+"'"; chan_q=new RDSqlQuery(sql); if(!chan_q->first()) { *err_msg="no feed matches the supplied key name"; @@ -1617,12 +1614,12 @@ QString RDFeed::rssXml(QString *err_msg,const QDateTime &now,bool *ok) QString where; if(chan_q->value(22).toString()=="Y") { // Is a Superfeed sql=QString("select ")+ - "MEMBER_FEED_ID "+ // 00 - "from SUPERFEED_MAPS where "+ - QString().sprintf("FEED_ID=%d",chan_q->value(18).toUInt()); + "`MEMBER_FEED_ID` "+ // 00 + "from `SUPERFEED_MAPS` where "+ + QString().sprintf("`FEED_ID`=%d",chan_q->value(18).toUInt()); q=new RDSqlQuery(sql); while(q->next()) { - where+=QString().sprintf("(PODCASTS.FEED_ID=%u) || ",q->value(0).toUInt()); + where+=QString().sprintf("(`PODCASTS`.`FEED_ID`=%u) || ",q->value(0).toUInt()); } delete q; where=("("+where.left(where.length()-4)+") && "); @@ -1631,39 +1628,39 @@ QString RDFeed::rssXml(QString *err_msg,const QDateTime &now,bool *ok) where=QString().sprintf("(PODCASTS.FEED_ID=%u)&&",chan_q->value(18).toUInt()); } sql=QString("select ")+ - "PODCASTS.FEED_ID,"+ // 00 - "PODCASTS.ITEM_TITLE,"+ // 01 - "PODCASTS.ITEM_DESCRIPTION,"+ // 02 - "PODCASTS.ITEM_CATEGORY,"+ // 03 - "PODCASTS.ITEM_LINK,"+ // 04 - "PODCASTS.ITEM_AUTHOR,"+ // 05 - "PODCASTS.ITEM_SOURCE_TEXT,"+ // 06 - "PODCASTS.ITEM_SOURCE_URL,"+ // 07 - "PODCASTS.ITEM_COMMENTS,"+ // 08 - "PODCASTS.ITEM_EXPLICIT,"+ // 09 - "PODCASTS.AUDIO_FILENAME,"+ // 10 - "PODCASTS.AUDIO_LENGTH,"+ // 11 - "PODCASTS.AUDIO_TIME,"+ // 12 - "PODCASTS.EFFECTIVE_DATETIME,"+ // 13 - "PODCASTS.ID,"+ // 14 - "FEEDS.BASE_URL,"+ // 15 - "FEEDS.CHANNEL_TITLE,"+ // 16 - "FEEDS.CHANNEL_DESCRIPTION,"+ // 17 - "FEED_IMAGES.ID,"+ // 18 - "FEED_IMAGES.WIDTH,"+ // 19 - "FEED_IMAGES.HEIGHT,"+ // 20 - "FEED_IMAGES.DESCRIPTION,"+ // 21 - "FEED_IMAGES.FILE_EXTENSION "+ // 22 - "from PODCASTS left join FEEDS "+ - "on PODCASTS.FEED_ID=FEEDS.ID "+ - "left join FEED_IMAGES "+ - "on PODCASTS.ITEM_IMAGE_ID=FEED_IMAGES.ID where "+ + "`PODCASTS`.`FEED_ID`,"+ // 00 + "`PODCASTS`.`ITEM_TITLE`,"+ // 01 + "`PODCASTS`.`ITEM_DESCRIPTION`,"+ // 02 + "`PODCASTS`.`ITEM_CATEGORY`,"+ // 03 + "`PODCASTS`.`ITEM_LINK`,"+ // 04 + "`PODCASTS`.`ITEM_AUTHOR`,"+ // 05 + "`PODCASTS`.`ITEM_SOURCE_TEXT`,"+ // 06 + "`PODCASTS`.`ITEM_SOURCE_URL`,"+ // 07 + "`PODCASTS`.`ITEM_COMMENTS`,"+ // 08 + "`PODCASTS`.`ITEM_EXPLICIT`,"+ // 09 + "`PODCASTS`.`AUDIO_FILENAME`,"+ // 10 + "`PODCASTS`.`AUDIO_LENGTH`,"+ // 11 + "`PODCASTS`.`AUDIO_TIME`,"+ // 12 + "`PODCASTS`.`EFFECTIVE_DATETIME`,"+ // 13 + "`PODCASTS`.`ID`,"+ // 14 + "`FEEDS`.`BASE_URL`,"+ // 15 + "`FEEDS`.`CHANNEL_TITLE`,"+ // 16 + "`FEEDS`.`CHANNEL_DESCRIPTION`,"+ // 17 + "`FEED_IMAGES`.`ID`,"+ // 18 + "`FEED_IMAGES`.`WIDTH`,"+ // 19 + "`FEED_IMAGES`.`HEIGHT`,"+ // 20 + "`FEED_IMAGES`.`DESCRIPTION`,"+ // 21 + "`FEED_IMAGES`.`FILE_EXTENSION` "+ // 22 + "from `PODCASTS` left join `FEEDS` "+ + "on `PODCASTS`.`FEED_ID`=`FEEDS`.`ID` "+ + "left join `FEED_IMAGES` "+ + "on `PODCASTS`.`ITEM_IMAGE_ID`=`FEED_IMAGES`.`ID` where "+ where+ - QString().sprintf("(PODCASTS.STATUS=%d) && ",RDPodcast::StatusActive)+ - "(PODCASTS.EFFECTIVE_DATETIME<=now()) && "+ - "((PODCASTS.EXPIRATION_DATETIME is null)||"+ - "(PODCASTS.EXPIRATION_DATETIME>now())) "+ - "order by PODCASTS.ORIGIN_DATETIME"; + QString().sprintf("(`PODCASTS`.`STATUS`=%d) && ",RDPodcast::StatusActive)+ + "(`PODCASTS`.`EFFECTIVE_DATETIME`<=now()) && "+ + "((`PODCASTS`.`EXPIRATION_DATETIME` is null)||"+ + "(`PODCASTS`.`EXPIRATION_DATETIME`>now())) "+ + "order by `PODCASTS`.`ORIGIN_DATETIME`"; if(chan_q->value(20).toString()=="N") { sql+=" desc"; } @@ -1700,8 +1697,8 @@ unsigned RDFeed::create(const QString &keyname,bool enable_users, // // Sanity Checks // - sql=QString("select KEY_NAME from FEEDS where ")+ - "KEY_NAME=\""+RDEscapeString(keyname)+"\""; + sql=QString("select `KEY_NAME` from `FEEDS` where ")+ + "`KEY_NAME`='"+RDEscapeString(keyname)+"'"; q=new RDSqlQuery(sql); if(q->first()) { *err_msg=tr("A feed with that key name already exists!"); @@ -1713,12 +1710,12 @@ unsigned RDFeed::create(const QString &keyname,bool enable_users, // // Create Feed // - sql=QString("insert into FEEDS set ")+ - "KEY_NAME=\""+RDEscapeString(keyname)+"\","+ - "ORIGIN_DATETIME=now(),"+ - "HEADER_XML=\"\","+ - "CHANNEL_XML=\"\","+ - "ITEM_XML=\"\""; + sql=QString("insert into `FEEDS` set ")+ + "`KEY_NAME`='"+RDEscapeString(keyname)+"',"+ + "`ORIGIN_DATETIME`=now(),"+ + "`HEADER_XML`='',"+ + "`CHANNEL_XML`='',"+ + "`ITEM_XML`=''"; q=new RDSqlQuery(sql); feed_id=q->lastInsertId().toUInt(); delete q; @@ -1727,13 +1724,13 @@ unsigned RDFeed::create(const QString &keyname,bool enable_users, // Create Default Feed Perms // if(enable_users) { - sql=QString("select LOGIN_NAME from USERS where ")+ - "(ADMIN_RSS_PRIV='N')&&(ADMIN_CONFIG_PRIV='N')"; + sql=QString("select `LOGIN_NAME` from `USERS` where ")+ + "(`ADMIN_RSS_PRIV`='N')&&(`ADMIN_CONFIG_PRIV`='N')"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into FEED_PERMS set ")+ - "USER_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - "KEY_NAME=\""+RDEscapeString(keyname)+"\""; + sql=QString("insert into `FEED_PERMS` set ")+ + "`USER_NAME`='"+RDEscapeString(q->value(0).toString())+"',"+ + "`KEY_NAME`='"+RDEscapeString(keyname)+"'"; q1=new RDSqlQuery(sql); delete q1; } @@ -1916,18 +1913,18 @@ unsigned RDFeed::CreateCast(QString *filename,int bytes,int msecs) const unsigned cast_id=0; sql=QString("select ")+ - "CHANNEL_TITLE,"+ // 00 - "CHANNEL_DESCRIPTION,"+ // 01 - "CHANNEL_CATEGORY,"+ // 02 - "CHANNEL_LINK,"+ // 03 - "MAX_SHELF_LIFE,"+ // 04 - "UPLOAD_FORMAT,"+ // 05 - "UPLOAD_EXTENSION,"+ // 06 - "ENABLE_AUTOPOST,"+ // 07 - "CHANNEL_AUTHOR,"+ // 08 - "CHANNEL_AUTHOR_IS_DEFAULT "+ // 09 - "from FEEDS where "+ - QString().sprintf("ID=%u",feed_id); + "`CHANNEL_TITLE`,"+ // 00 + "`CHANNEL_DESCRIPTION`,"+ // 01 + "`CHANNEL_CATEGORY`,"+ // 02 + "`CHANNEL_LINK`,"+ // 03 + "`MAX_SHELF_LIFE`,"+ // 04 + "`UPLOAD_FORMAT`,"+ // 05 + "`UPLOAD_EXTENSION`,"+ // 06 + "`ENABLE_AUTOPOST`,"+ // 07 + "`CHANNEL_AUTHOR`,"+ // 08 + "`CHANNEL_AUTHOR_IS_DEFAULT` "+ // 09 + "from `FEEDS` where "+ + QString().sprintf("`ID`=%u",feed_id); q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -1941,30 +1938,30 @@ unsigned RDFeed::CreateCast(QString *filename,int bytes,int msecs) const // // Create Entry // - 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())+"\","+ - "ITEM_AUTHOR=\""+RDEscapeString(item_author)+"\","+ - "EFFECTIVE_DATETIME=now(),"+ - "ORIGIN_LOGIN_NAME=\""+RDEscapeString(rda->user()->name())+"\","+ - "ORIGIN_STATION=\""+RDEscapeString(rda->station()->name())+"\","+ - "ORIGIN_DATETIME=now(),"; + 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())+"',"+ + "`ITEM_AUTHOR`='"+RDEscapeString(item_author)+"',"+ + "`EFFECTIVE_DATETIME`=now(),"+ + "`ORIGIN_LOGIN_NAME`='"+RDEscapeString(rda->user()->name())+"',"+ + "`ORIGIN_STATION`='"+RDEscapeString(rda->station()->name())+"',"+ + "`ORIGIN_DATETIME`=now(),"; if(RDBool(q->value(7).toString())) { - sql+=QString().sprintf("STATUS=%d,",RDPodcast::StatusActive); + sql+=QString().sprintf("`STATUS`=%d,",RDPodcast::StatusActive); } else { - sql+=QString().sprintf("STATUS=%d,",RDPodcast::StatusPending); + sql+=QString().sprintf("`STATUS`=%d,",RDPodcast::StatusPending); } if(q->value(4).toInt()==0) { - sql+="EXPIRATION_DATETIME=NULL"; + sql+="`EXPIRATION_DATETIME`=NULL"; } else { - sql+="EXPIRATION_DATETIME=\""+ + sql+="`EXPIRATION_DATETIME`='"+ QDateTime::currentDateTime().addDays(q->value(4).toInt()). - toString("yyyy-MM-dd hh:mm:ss")+"\""; + toString("yyyy-MM-dd hh:mm:ss")+"'"; } q1=new RDSqlQuery(sql); delete q1; @@ -1972,7 +1969,7 @@ unsigned RDFeed::CreateCast(QString *filename,int bytes,int msecs) const // // Get The Cast ID // - sql="select LAST_INSERT_ID() from PODCASTS"; + sql="select LAST_INSERT_ID() from `PODCASTS`"; q1=new RDSqlQuery(sql); if(q1->first()) { cast_id=q1->value(0).toUInt(); @@ -1984,11 +1981,11 @@ unsigned RDFeed::CreateCast(QString *filename,int bytes,int msecs) const // *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); + 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; @@ -2111,9 +2108,9 @@ void RDFeed::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString("update FEEDS set ")+ - param+QString().sprintf("=%d where ",value)+ - "KEY_NAME=\""+RDEscapeString(feed_keyname)+"\""; + sql=QString("update `FEEDS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`KEY_NAME`='"+RDEscapeString(feed_keyname)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -2124,9 +2121,9 @@ void RDFeed::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString("update FEEDS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "KEY_NAME=\""+RDEscapeString(feed_keyname)+"\""; + sql=QString("update `FEEDS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`KEY_NAME`='"+RDEscapeString(feed_keyname)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -2137,9 +2134,9 @@ void RDFeed::SetRow(const QString ¶m,const QDateTime &value, RDSqlQuery *q; QString sql; - sql=QString().sprintf("update FEEDS set ")+ - param+"="+RDCheckDateTime(value,format)+" where "+ - "KEY_NAME=\""+RDEscapeString(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/rdfeedlistmodel.cpp b/lib/rdfeedlistmodel.cpp index 004ad088..55443f79 100644 --- a/lib/rdfeedlistmodel.cpp +++ b/lib/rdfeedlistmodel.cpp @@ -359,7 +359,7 @@ QModelIndex RDFeedListModel::addFeed(const QString &keyname) QString sql=sqlFields()+ "where "+ - "FEEDS.KEY_NAME=\""+RDEscapeString(keyname)+"\" "; + "`FEEDS`.`KEY_NAME`='"+RDEscapeString(keyname)+"' "; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { updateRow(offset,q); @@ -422,18 +422,18 @@ void RDFeedListModel::changeUser() if(d_is_admin) { sql=QString("select ")+ - "KEY_NAME "+ // 00 - "from FEEDS"; + "`KEY_NAME` "+ // 00 + "from `FEEDS`"; } else { sql=QString("select ")+ - "KEY_NAME "+ // 00 - "from FEED_PERMS where "+ - "USER_NAME=\""+RDEscapeString(rda->user()->name())+"\""; + "`KEY_NAME` "+ // 00 + "from `FEED_PERMS` where "+ + "`USER_NAME`='"+RDEscapeString(rda->user()->name())+"'"; } q=new RDSqlQuery(sql); while(q->next()) { - filter_sql+="(KEY_NAME=\""+RDEscapeString(q->value(0).toString())+"\")||"; + filter_sql+="(`KEY_NAME`='"+RDEscapeString(q->value(0).toString())+"')||"; } delete q; filter_sql=filter_sql.left(filter_sql.length()-2); @@ -484,7 +484,7 @@ void RDFeedListModel::updateModel(const QString &filter_sql) sql=sqlFields()+ filter_sql+ - "order by FEEDS.KEY_NAME asc, PODCASTS.ORIGIN_DATETIME desc"; + "order by `FEEDS`.`KEY_NAME` asc, `PODCASTS`.`ORIGIN_DATETIME` desc"; // printf("SQL: %s\n",sql.toUtf8().constData()); beginResetModel(); d_texts.clear(); @@ -618,23 +618,22 @@ void RDFeedListModel::updateRow(int row,RDSqlQuery *q) QString RDFeedListModel::sqlFields() const { QString sql=QString("select ")+ - "FEEDS.ID,"+ // 00 - "FEEDS.KEY_NAME,"+ // 01 - "FEEDS.CHANNEL_TITLE,"+ // 02 - "FEEDS.ENABLE_AUTOPOST,"+ // 03 - - "FEEDS.IS_SUPERFEED,"+ // 04 - "FEEDS.ID,"+ // 05 - "FEEDS.BASE_URL,"+ // 06 - "FEEDS.ORIGIN_DATETIME,"+ // 07 - "PODCASTS.ID,"+ // 08 - "PODCASTS.ITEM_TITLE,"+ // 09 - "PODCASTS.STATUS,"+ // 10 - "PODCASTS.ORIGIN_DATETIME,"+ // 11 - "FEED_IMAGES.DATA "+ // 12 - "from FEEDS left join FEED_IMAGES "+ - "on FEEDS.CHANNEL_IMAGE_ID=FEED_IMAGES.ID left join PODCASTS "+ - "on FEEDS.ID=PODCASTS.FEED_ID "; + "`FEEDS`.`ID`,"+ // 00 + "`FEEDS`.`KEY_NAME`,"+ // 01 + "`FEEDS`.`CHANNEL_TITLE`,"+ // 02 + "`FEEDS`.`ENABLE_AUTOPOST`,"+ // 03 + "`FEEDS`.`IS_SUPERFEED`,"+ // 04 + "`FEEDS`.`ID`,"+ // 05 + "`FEEDS`.`BASE_URL`,"+ // 06 + "`FEEDS`.`ORIGIN_DATETIME`,"+ // 07 + "`PODCASTS`.`ID`,"+ // 08 + "`PODCASTS`.`ITEM_TITLE`,"+ // 09 + "`PODCASTS`.`STATUS`,"+ // 10 + "`PODCASTS`.`ORIGIN_DATETIME`,"+ // 11 + "`FEED_IMAGES`.`DATA` "+ // 12 + "from `FEEDS` left join `FEED_IMAGES` "+ + "on `FEEDS`.`CHANNEL_IMAGE_ID`=`FEED_IMAGES`.`ID` left join `PODCASTS` "+ + "on `FEEDS`.`ID`=`PODCASTS`.`FEED_ID` "; return sql; } diff --git a/lib/rdformpost.cpp b/lib/rdformpost.cpp index 77cd34e2..7274bb5e 100644 --- a/lib/rdformpost.cpp +++ b/lib/rdformpost.cpp @@ -362,8 +362,8 @@ bool RDFormPost::authenticate(bool *used_ticket) if((clientAddress().toIPv4Address()>>24)==127) { // Localhost return true; } - sql=QString("select NAME from STATIONS where ")+ - "IPV4_ADDRESS=\""+clientAddress().toString()+"\""; + sql=QString("select `NAME` from `STATIONS` where ")+ + "`IPV4_ADDRESS`='"+clientAddress().toString()+"'"; q=new RDSqlQuery(sql); if(q->first()) { delete q; diff --git a/lib/rdgpiolistmodel.cpp b/lib/rdgpiolistmodel.cpp index b60e6639..b0ce4310 100644 --- a/lib/rdgpiolistmodel.cpp +++ b/lib/rdgpiolistmodel.cpp @@ -37,13 +37,13 @@ RDGpioListModel::RDGpioListModel(RDMatrix *mtx,RDMatrix::GpioType type, unsigned right=Qt::AlignRight|Qt::AlignVCenter; if(type==RDMatrix::GpioInput) { - d_table="GPIS"; + d_table="`GPIS`"; d_headers.push_back(tr("Gpi")); d_alignments.push_back(right); } else { - d_table="GPOS"; + d_table="`GPOS`"; d_headers.push_back(tr("Gpo")); d_alignments.push_back(right); @@ -225,9 +225,9 @@ void RDGpioListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields(true)+ "where "+ - d_table+".STATION_NAME=\""+RDEscapeString(d_mtx->station())+"\" && "+ - d_table+QString().sprintf(".MATRIX=%d ",d_mtx->matrix())+ - "order by "+d_table+".NUMBER "; + d_table+".`STATION_NAME`='"+RDEscapeString(d_mtx->station())+"' && "+ + d_table+QString().sprintf(".`MATRIX`=%d ",d_mtx->matrix())+ + "order by "+d_table+".`NUMBER` "; q=new RDSqlQuery(sql); while(q->next()) { updateRow(true,q->value(1).toInt()-1,q); @@ -239,9 +239,9 @@ void RDGpioListModel::updateModel() // sql=sqlFields(false)+ "where "+ - d_table+".STATION_NAME=\""+RDEscapeString(d_mtx->station())+"\" && "+ - d_table+QString().sprintf(".MATRIX=%d ",d_mtx->matrix())+ - "order by "+d_table+".NUMBER "; + d_table+".`STATION_NAME`='"+RDEscapeString(d_mtx->station())+"' && "+ + d_table+QString().sprintf(".`MATRIX`=%d ",d_mtx->matrix())+ + "order by "+d_table+".`NUMBER` "; q=new RDSqlQuery(sql); while(q->next()) { updateRow(false,q->value(1).toInt()-1,q); @@ -259,7 +259,7 @@ void RDGpioListModel::updateRowLine(int line) // The ON Values // QString sql=sqlFields(true)+ - QString().sprintf("where ID=%u",d_ids.at(line)); + QString().sprintf("where `ID`=%u",d_ids.at(line)); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { updateRow(true,line,q); @@ -270,7 +270,7 @@ void RDGpioListModel::updateRowLine(int line) // The OFF Values // sql=sqlFields(false)+ - QString().sprintf("where ID=%u",d_ids.at(line)); + QString().sprintf("where `ID`=%u",d_ids.at(line)); q=new RDSqlQuery(sql); if(q->first()) { updateRow(false,line,q); @@ -328,17 +328,17 @@ void RDGpioListModel::updateRow(bool on_values,int row,RDSqlQuery *q) QString RDGpioListModel::sqlFields(bool on_fields) const { - QString cart_field=".OFF_MACRO_CART"; + QString cart_field=".`OFF_MACRO_CART`"; if(on_fields) { - cart_field=".MACRO_CART"; + cart_field=".`MACRO_CART`"; } QString sql=QString("select ")+ - d_table+".ID,"+ // 00 - d_table+".NUMBER,"+ // 01 + d_table+".`ID`,"+ // 00 + d_table+".`NUMBER`,"+ // 01 d_table+cart_field+"," // 02 - "CART.TITLE "+ // 03 - "from "+d_table+" left join CART "+ - "on "+d_table+cart_field+"=CART.NUMBER "; + "`CART`.`TITLE` "+ // 03 + "from "+d_table+" left join `CART` "+ + "on "+d_table+cart_field+"=`CART`.`NUMBER` "; return sql; } diff --git a/lib/rdgroup.cpp b/lib/rdgroup.cpp index 9acc62c0..95eababb 100644 --- a/lib/rdgroup.cpp +++ b/lib/rdgroup.cpp @@ -21,8 +21,6 @@ #include #include -#include - #include #include #include @@ -40,8 +38,8 @@ RDGroup::RDGroup(QString name,bool create) group_name=name; if(create) { - sql=QString("insert into GROUPS set ")+ - "NAME=\""+RDEscapeString(group_name)+"\""; + sql=QString("insert into `GROUPS` set ")+ + "`NAME`='"+RDEscapeString(group_name)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -49,8 +47,8 @@ RDGroup::RDGroup(QString name,bool create) // // Normalize case // - sql=QString("select NAME from GROUPS where ")+ - "NAME=\""+RDEscapeString(name)+"\""; + sql=QString("select `NAME` from `GROUPS`` where ")+ + "`NAME`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); if(q->first()) { group_name=q->value(0).toString(); @@ -266,10 +264,10 @@ int RDGroup::freeCartQuantity() const RDSqlQuery *q; sql=QString("select ")+ - "DEFAULT_LOW_CART,"+ // 00 - "DEFAULT_HIGH_CART "+ // 01 - "from GROUPS where "+ - "NAME=\""+RDEscapeString(group_name)+"\""; + "`DEFAULT_LOW_CART`,"+ // 00 + "`DEFAULT_HIGH_CART` "+ // 01 + "from `GROUPS` where "+ + "`NAME`='"+RDEscapeString(group_name)+"'"; q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -281,8 +279,8 @@ int RDGroup::freeCartQuantity() const } int low=q->value(0).toInt(); int high=q->value(1).toInt(); - sql=QString("select NUMBER from CART where ")+ - QString().sprintf("NUMBER>=%d)&&(NUMBER<=%d)", + 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); @@ -311,7 +309,7 @@ bool RDGroup::reserveCarts(QList *cart_nums, } else { for(int i=0;isize();i++) { - sql=QString().sprintf("delete from CART where NUMBER=%u", + sql=QString().sprintf("delete from `CART` where `NUMBER`=%u", cart_nums->at(i)); q=new RDSqlQuery(sql); delete q; @@ -335,11 +333,11 @@ bool RDGroup::cartNumberValid(unsigned cartnum) const } bool ret=false; QString sql=QString("select ")+ - "DEFAULT_LOW_CART,"+ // 00 - "DEFAULT_HIGH_CART,"+ // 01 - "ENFORCE_CART_RANGE "+ // 02 - "from GROUPS where "+ - "NAME=\""+RDEscapeString(group_name)+"\""; + "`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())) { @@ -363,19 +361,19 @@ QString RDGroup::xml() const QString ret=""; 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)+"\""; + "`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"; @@ -417,10 +415,10 @@ unsigned RDGroup::GetNextFreeCart(unsigned startcart) const unsigned cart_high_limit; sql=QString("select ")+ - "DEFAULT_LOW_CART,"+ // 00 - "DEFAULT_HIGH_CART "+ // 01 - "from GROUPS where "+ - "NAME=\""+RDEscapeString(group_name)+"\""; + "`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()) { @@ -434,9 +432,9 @@ unsigned RDGroup::GetNextFreeCart(unsigned startcart) const if((cart_low_limit<1)||(startcart>cart_high_limit)) { return 0; } - sql=QString().sprintf("select NUMBER from CART where \ - (NUMBER>=%u)&&(NUMBER<=%u) order by NUMBER", - cart_low_limit,cart_high_limit); + sql=QString("select `NUMBER` from `CART` where ")+ + QString().sprintf("(`NUMBER`>=%u)&&(`NUMBER`<=%u) order by `NUMBER`", + cart_low_limit,cart_high_limit); q=new RDSqlQuery(sql); if(q->size()<1) { delete q; @@ -473,13 +471,13 @@ bool RDGroup::ReserveCart(const QString &station_name,RDCart::Type type, bool ret=false; if((cart_num>=defaultLowCart())&&(cart_num<=defaultHighCart())) { - sql=QString().sprintf("insert into CART set NUMBER=%u,",cart_num)+ - "GROUP_NAME=\""+RDEscapeString(group_name)+"\","+ - QString().sprintf("TYPE=%d,",type)+ - "TITLE=\"["+RDEscapeString(QObject::tr("reserved"))+"]\","+ - "PENDING_STATION=\""+RDEscapeString(station_name)+"\","+ - QString().sprintf("PENDING_PID=%d,",getpid())+ - "PENDING_DATETIME=now()"; + sql=QString().sprintf("insert into `CART` set `NUMBER`=%u,",cart_num)+ + "`GROUP_NAME`='"+RDEscapeString(group_name)+"',"+ + QString().sprintf("`TYPE`=%d,",type)+ + "`TITLE`='["+RDEscapeString(QObject::tr("reserved"))+"]',"+ + "`PENDING_STATION`='"+RDEscapeString(station_name)+"',"+ + QString().sprintf("`PENDING_PID`=%d,",getpid())+ + "`PENDING_DATETIME`=now()"; q=new QSqlQuery(sql); ret=q->isActive(); delete q; @@ -493,9 +491,9 @@ void RDGroup::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update GROUPS set ")+ - param+QString().sprintf("=%d where ",value)+ - "NAME=\""+RDEscapeString(group_name)+"\""; + sql=QString().sprintf("update `GROUPS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`NAME`='"+RDEscapeString(group_name)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -506,9 +504,9 @@ void RDGroup::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString("update GROUPS set ")+ - param+QString().sprintf("=%u where ",value)+ - "NAME=\""+RDEscapeString(group_name)+"\""; + sql=QString("update `GROUPS` set `")+ + param+QString().sprintf("`=%u where ",value)+ + "`NAME`='"+RDEscapeString(group_name)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -519,9 +517,9 @@ void RDGroup::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString("update GROUPS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "NAME=\""+RDEscapeString(group_name)+"\""; + sql=QString("update `GROUPS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`NAME`='"+RDEscapeString(group_name)+"'"; q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdgroup_list.cpp b/lib/rdgroup_list.cpp index 3b7d8e25..f4946693 100644 --- a/lib/rdgroup_list.cpp +++ b/lib/rdgroup_list.cpp @@ -2,7 +2,7 @@ // // A list container for Rivendell Groups // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -42,9 +42,9 @@ void RDGroupList::setServiceName(const QString &str) clear(); sql=QString("select ")+ - "GROUP_NAME "+ // 00 - "from AUDIO_PERMS where "+ - "SERVICE_NAME=\""+RDEscapeString(str)+"\""; + "`GROUP_NAME` "+ // 00 + "from `AUDIO_PERMS` where "+ + "`SERVICE_NAME`='"+RDEscapeString(str)+"'"; q=new RDSqlQuery(sql); while(q->next()) { d_groups.push_back(QString(q->value(0).toString())); diff --git a/lib/rdgrouplistmodel.cpp b/lib/rdgrouplistmodel.cpp index 314fdcaa..78e5e91e 100644 --- a/lib/rdgrouplistmodel.cpp +++ b/lib/rdgrouplistmodel.cpp @@ -290,16 +290,16 @@ void RDGroupListModel::changeUser() d_visible_groups.push_back(tr("ALL")); if(d_user_is_admin) { sql=QString("select ")+ - "NAME "+ // 00 - "from GROUPS "+ - "order by NAME"; + "`NAME` "+ // 00 + "from `GROUPS` "+ + "order by `NAME`"; } else { sql=QString("select ")+ - "GROUP_NAME "+ // 00 - "from USER_PERMS where "+ - "USER_NAME=\""+RDEscapeString(rda->user()->name())+"\" "+ - "order by GROUP_NAME"; + "`GROUP_NAME` "+ // 00 + "from `USER_PERMS` where "+ + "`USER_NAME`='"+RDEscapeString(rda->user()->name())+"' "+ + "order by `GROUP_NAME`"; } q=new RDSqlQuery(sql); while(q->next()) { @@ -320,7 +320,7 @@ void RDGroupListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields()+filterSql(); - sql+="order by NAME "; + sql+="order by `NAME` "; beginResetModel(); d_texts.clear(); d_colors.clear(); @@ -349,7 +349,7 @@ void RDGroupListModel::updateRowLine(int line) { if(linefirst()) { updateRow(line,q); @@ -414,18 +414,18 @@ void RDGroupListModel::updateRow(int row,RDSqlQuery *q) QString RDGroupListModel::sqlFields() const { QString sql=QString("select ")+ - "NAME,"+ // 00 - "DESCRIPTION,"+ // 01 - "DEFAULT_LOW_CART,"+ // 02 - "DEFAULT_HIGH_CART,"+ // 03 - "ENFORCE_CART_RANGE,"+ // 04 - "DEFAULT_CART_TYPE,"+ // 05 - "NOTIFY_EMAIL_ADDRESS," // 06 - "REPORT_TFC,"+ // 07 - "REPORT_MUS,"+ // 08 - "ENABLE_NOW_NEXT,"+ // 09 - "COLOR "+ // 10 - "from GROUPS "; + "`NAME`,"+ // 00 + "`DESCRIPTION`,"+ // 01 + "`DEFAULT_LOW_CART`,"+ // 02 + "`DEFAULT_HIGH_CART`,"+ // 03 + "`ENFORCE_CART_RANGE`,"+ // 04 + "`DEFAULT_CART_TYPE`,"+ // 05 + "`NOTIFY_EMAIL_ADDRESS`," // 06 + "`REPORT_TFC`,"+ // 07 + "`REPORT_MUS`,"+ // 08 + "`ENABLE_NOW_NEXT`,"+ // 09 + "`COLOR` "+ // 10 + "from `GROUPS` "; return sql; } @@ -436,7 +436,7 @@ QString RDGroupListModel::filterSql() const QString sql=QString(" where ("); for(int i=0;ifirst()) { updateRow(row.row(),q); @@ -223,8 +223,8 @@ void RDHostvarListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields()+ - " where STATION_NAME=\""+RDEscapeString(d_station_name)+"\" "; - sql+="order by NAME "; + " where `STATION_NAME`='"+RDEscapeString(d_station_name)+"' "; + sql+="order by `NAME` "; beginResetModel(); d_ids.clear(); d_texts.clear(); @@ -243,7 +243,7 @@ void RDHostvarListModel::updateRowLine(int line) { if(linefirst()) { updateRow(line,q); @@ -274,11 +274,11 @@ void RDHostvarListModel::updateRow(int row,RDSqlQuery *q) QString RDHostvarListModel::sqlFields() const { QString sql=QString("select ")+ - "ID,"+ // 00 - "NAME,"+ // 01 - "VARVALUE,"+ // 02 - "REMARK "+ // 03 - "from HOSTVARS "; + "`ID`,"+ // 00 + "`NAME`,"+ // 01 + "`VARVALUE`,"+ // 02 + "`REMARK` "+ // 03 + "from `HOSTVARS` "; return sql; } diff --git a/lib/rdhotkeys.cpp b/lib/rdhotkeys.cpp index 037b698e..2f8adcba 100644 --- a/lib/rdhotkeys.cpp +++ b/lib/rdhotkeys.cpp @@ -2,7 +2,7 @@ // // Abstract an RDHotKeys Configuration. // -// (C) Copyright 2002-2004,2010,2016 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,10 +18,10 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include +#include "rdconf.h" +#include "rddb.h" +#include "rdescape_string.h" +#include "rdhotkeys.h" RDHotkeys::RDHotkeys(const QString &station,const QString &module) { @@ -31,9 +31,9 @@ RDHotkeys::RDHotkeys(const QString &station,const QString &module) station_hotkeys=station; module_name=module; - sql=QString("select STATION_NAME from RDHOTKEYS where ")+ - "STATION_NAME=\""+RDEscapeString(station_hotkeys)+"\" && "+ - "MODULE_NAME=\""+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()) { InsertHotkeys(); @@ -54,10 +54,10 @@ 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=\""+RDEscapeString(station)+"\" && "+ - "MODULE_NAME=\""+RDEscapeString(module)+"\" && "+ - "KEY_VALUE=\""+RDEscapeString(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(""); @@ -106,11 +106,11 @@ void RDHotkeys::InsertHotkeys() const labels.push_back(QObject::tr("Aux Log 2")); for(int i=0;i +// (C) Copyright 2020-2021 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 @@ -21,11 +21,10 @@ #include "rdimagepickerbox.h" RDImagePickerBox::RDImagePickerBox(const QString &tbl_name, - const QString &cat_id_col, - const QString &img_id_col,QWidget *parent) + const QString &cat_id_col,QWidget *parent) : QComboBox(parent) { - c_model=new RDImagePickerModel(tbl_name,cat_id_col,img_id_col,this); + c_model=new RDImagePickerModel(tbl_name,cat_id_col,this); setModel(c_model); setCurrentIndex(0); diff --git a/lib/rdimagepickerbox.h b/lib/rdimagepickerbox.h index 0b6f78a8..47f10c9e 100644 --- a/lib/rdimagepickerbox.h +++ b/lib/rdimagepickerbox.h @@ -2,7 +2,7 @@ // // ComboBox for selecting images // -// (C) Copyright 2020 Fred Gleason +// (C) Copyright 2020-2021 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 @@ -30,7 +30,7 @@ class RDImagePickerBox : public QComboBox Q_OBJECT; public: RDImagePickerBox(const QString &tbl_name,const QString &cat_id_col, - const QString &img_id_col,QWidget *parent=0); + QWidget *parent=0); ~RDImagePickerBox(); int currentImageId() const; void refresh(); diff --git a/lib/rdimagepickermodel.cpp b/lib/rdimagepickermodel.cpp index d85183b4..dfe9e0b4 100644 --- a/lib/rdimagepickermodel.cpp +++ b/lib/rdimagepickermodel.cpp @@ -2,7 +2,7 @@ // // One-dimensional model for picking images // -// (C) Copyright 2020 Fred Gleason +// (C) Copyright 2020-2021 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 @@ -25,13 +25,11 @@ RDImagePickerModel::RDImagePickerModel(const QString &tbl_name, const QString &cat_id_col, - const QString &img_id_col, QObject *parent) : QAbstractListModel(parent) { - c_table_name=tbl_name; - c_category_column=cat_id_col; - c_image_column=img_id_col; + c_table_name="`"+tbl_name+"`"; + c_category_column="`"+cat_id_col+"`"; c_category_id=-1;; c_image_size=QSize(100,100); } @@ -85,12 +83,12 @@ void RDImagePickerModel::update(int row) RDSqlQuery *q=NULL; sql=QString("select ")+ - "DESCRIPTION,"+ // 00 - "FILE_EXTENSION,"+ // 01 - "WIDTH,"+ // 02 - "HEIGHT "+ // 03 - "from FEED_IMAGES where "+ - QString().sprintf("ID=%d",c_image_ids.at(row)); + "`DESCRIPTION`,"+ // 00 + "`FILE_EXTENSION`,"+ // 01 + "`WIDTH`,"+ // 02 + "`HEIGHT` "+ // 03 + "from `FEED_IMAGES` where "+ + QString().sprintf("`ID`=%d",c_image_ids.at(row)); q=new RDSqlQuery(sql); if(q->first()) { c_descriptions[row]=q->value(0).toString()+"\n"+ @@ -180,15 +178,15 @@ void RDImagePickerModel::LoadRows(int cat_id,const QSize &img_size) // Load new data // sql=QString("select ")+ - "ID,"+ // 00 - "DESCRIPTION,"+ // 01 - "FILE_EXTENSION,"+ // 02 - "WIDTH,"+ // 02 - "HEIGHT,"+ // 03 - "DATA "+ // 04 + "`ID`,"+ // 00 + "`DESCRIPTION`,"+ // 01 + "`FILE_EXTENSION`,"+ // 02 + "`WIDTH`,"+ // 02 + "`HEIGHT`,"+ // 03 + "`DATA` "+ // 04 "from "+c_table_name+" where "+ c_category_column+QString().sprintf("=%d ",cat_id)+ - "order by DESCRIPTION"; + "order by `DESCRIPTION`"; q=new RDSqlQuery(sql); if(q->size()>0) { beginInsertRows(QModelIndex(),0,q->size()-1); diff --git a/lib/rdimagepickermodel.h b/lib/rdimagepickermodel.h index 137fe154..c9a282da 100644 --- a/lib/rdimagepickermodel.h +++ b/lib/rdimagepickermodel.h @@ -2,7 +2,7 @@ // // One-dimensional model for picking images // -// (C) Copyright 2020 Fred Gleason +// (C) Copyright 2020-2021 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 @@ -31,7 +31,7 @@ class RDImagePickerModel : public QAbstractListModel Q_OBJECT; public: RDImagePickerModel(const QString &tbl_name,const QString &cat_id_col, - const QString &img_id_col,QObject *parent=0); + QObject *parent=0); ~RDImagePickerModel(); int categoryId() const; int imageId(int row) const; @@ -52,7 +52,6 @@ class RDImagePickerModel : public QAbstractListModel void LoadRows(int cat_id,const QSize &img_size); QString c_table_name; QString c_category_column; - QString c_image_column; int c_category_id; QSize c_image_size; QList c_images; diff --git a/lib/rdjackclientlistmodel.cpp b/lib/rdjackclientlistmodel.cpp index 1a4b60d3..0915a073 100644 --- a/lib/rdjackclientlistmodel.cpp +++ b/lib/rdjackclientlistmodel.cpp @@ -188,7 +188,7 @@ void RDJackClientListModel::refresh(const QModelIndex &row) if(row.row()first()) { updateRow(row.row(),q); @@ -218,8 +218,8 @@ void RDJackClientListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields()+ "where "+ - "JACK_CLIENTS.STATION_NAME=\""+RDEscapeString(d_station_name)+"\" "+ - "order by JACK_CLIENTS.ID "; + "`JACK_CLIENTS`.`STATION_NAME`='"+RDEscapeString(d_station_name)+"' "+ + "order by `JACK_CLIENTS`.`ID` "; beginResetModel(); d_texts.clear(); q=new RDSqlQuery(sql); @@ -238,7 +238,7 @@ void RDJackClientListModel::updateRowLine(int line) if(linefirst()) { updateRow(line,q); @@ -266,10 +266,10 @@ void RDJackClientListModel::updateRow(int row,RDSqlQuery *q) QString RDJackClientListModel::sqlFields() const { QString sql=QString("select ")+ - "JACK_CLIENTS.ID," // 00 - "JACK_CLIENTS.DESCRIPTION,"+ // 01 - "JACK_CLIENTS.COMMAND_LINE " // 02 - "from JACK_CLIENTS "; + "`JACK_CLIENTS`.`ID`," // 00 + "`JACK_CLIENTS`.`DESCRIPTION`,"+ // 01 + "`JACK_CLIENTS`.`COMMAND_LINE` " // 02 + "from `JACK_CLIENTS` "; return sql; } diff --git a/lib/rdlibrary_conf.cpp b/lib/rdlibrary_conf.cpp index 0594a0b2..3eae3f36 100644 --- a/lib/rdlibrary_conf.cpp +++ b/lib/rdlibrary_conf.cpp @@ -2,7 +2,7 @@ // // Abstract an RDLibrary Configuration. // -// (C) Copyright 2002-2003,2016-2018 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,10 +18,10 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include +#include "rdconf.h" +#include "rddb.h" +#include "rdescape_string.h" +#include "rdlibrary_conf.h" // // Global Classes @@ -33,16 +33,16 @@ RDLibraryConf::RDLibraryConf(const QString &station) lib_station=station; - sql=QString("select ID from RDLIBRARY where ")+ - "STATION=\""+RDEscapeString(lib_station)+"\""; + sql=QString("select `ID` from `RDLIBRARY` where ")+ + "`STATION`='"+RDEscapeString(lib_station)+"'"; q=new RDSqlQuery(sql); if(!q->first()) { delete q; - sql=QString("insert into RDLIBRARY set ")+ - "STATION=\""+RDEscapeString(lib_station)+"\""; + sql=QString("insert into `RDLIBRARY` set ")+ + "`STATION`='"+RDEscapeString(lib_station)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("select LAST_INSERT_ID() from RDLIBRARY"); + sql=QString("select LAST_INSERT_ID() from `RDLIBRARY`"); q=new RDSqlQuery(sql); q->first(); } @@ -370,13 +370,13 @@ void RDLibraryConf::getSettings(RDSettings *s) const RDSqlQuery *q; sql=QString("select ")+ - "DEFAULT_CHANNELS,"+ // 00 - "DEFAULT_FORMAT,"+ // 01 - "DEFAULT_BITRATE,"+ // 02 - "RIPPER_LEVEL,"+ // 03 - "TRIM_THRESHOLD "+ // 04 - "from RDLIBRARY where "+ - "STATION=\""+RDEscapeString(lib_station)+"\""; + "`DEFAULT_CHANNELS`,"+ // 00 + "`DEFAULT_FORMAT`,"+ // 01 + "`DEFAULT_BITRATE`,"+ // 02 + "`RIPPER_LEVEL`,"+ // 03 + "`TRIM_THRESHOLD` "+ // 04 + "from `RDLIBRARY` where "+ + "`STATION`='"+RDEscapeString(lib_station)+"'"; q=new RDSqlQuery(sql); s->clear(); if(q->first()) { @@ -395,7 +395,7 @@ void RDLibraryConf::getSettings(RDSettings *s) const s->setAutotrimLevel(q->value(4).toUInt()); } delete q; - sql=QString("select SAMPLE_RATE from SYSTEM"); + sql=QString("select `SAMPLE_RATE` from `SYSTEM`"); q=new RDSqlQuery(sql); if(q->first()) { s->setSampleRate(q->value(0).toUInt()); @@ -433,9 +433,9 @@ void RDLibraryConf::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString("update RDLIBRARY set ")+ - param+QString().sprintf("=%d where ",value)+ - "STATION=\""+RDEscapeString(lib_station)+"\""; + sql=QString("update `RDLIBRARY` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`STATION`='"+RDEscapeString(lib_station)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -446,9 +446,9 @@ void RDLibraryConf::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString("update RDLIBRARY set ")+ - param+QString().sprintf("=%u where ",value)+ - "STATION=\""+RDEscapeString(lib_station)+"\""; + sql=QString("update `RDLIBRARY` set `")+ + param+QString().sprintf("`=%u where ",value)+ + "`STATION`='"+RDEscapeString(lib_station)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -459,9 +459,9 @@ void RDLibraryConf::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString("update RDLIBRARY set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "STATION=\""+RDEscapeString(lib_station)+"\""; + sql=QString("update `RDLIBRARY` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`STATION`='"+RDEscapeString(lib_station)+"'"; q=new RDSqlQuery(sql); delete q; } diff --git a/lib/rdlibrarymodel.cpp b/lib/rdlibrarymodel.cpp index 937f7a4f..99a1cc35 100644 --- a/lib/rdlibrarymodel.cpp +++ b/lib/rdlibrarymodel.cpp @@ -355,17 +355,6 @@ RDCart::Type RDLibraryModel::cartType(const QModelIndex &index) const return d_cart_types.at(index.internalId()-1); } -/* -QString RDLibraryModel::cutName(const QModelIndex &index) const -{ - if(isCart(index)) { - return QString(); - } - return RDCut::cutName(d_cart_numbers.at(index.internalId()-1), - d_cut_texts.at(index.internalId()-1).at(index.row()). - at(0).toString().right(3).toInt()); -} -*/ QString RDLibraryModel::cartOwnedBy(const QModelIndex &index) { @@ -524,9 +513,9 @@ void RDLibraryModel::updateModel(const QString &filter_sql) // d_group_colors.clear(); sql=QString("select ")+ - "NAME,"+ // 00 - "COLOR "+ // 01 - "from GROUPS order by NAME"; + "`NAME`,"+ // 00 + "`COLOR` "+ // 01 + "from `GROUPS` order by `NAME`"; q=new RDSqlQuery(sql); while(q->next()) { d_group_colors[q->value(0).toString()]=QColor(q->value(1).toString()); @@ -535,7 +524,6 @@ void RDLibraryModel::updateModel(const QString &filter_sql) sql=sqlFields()+ filter_sql; - // printf("SQL: %s\n",sql.toUtf8().constData()); beginResetModel(); d_texts.clear(); d_notes.clear(); @@ -571,7 +559,7 @@ void RDLibraryModel::updateCartLine(int cartline) { QString sql=sqlFields()+ "where "+ - "CART.NUMBER="+d_texts.at(cartline).at(0).toString(); + "`CART`.`NUMBER`="+d_texts.at(cartline).at(0).toString(); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { updateRow(cartline,q); @@ -719,40 +707,40 @@ void RDLibraryModel::updateRow(int row,RDSqlQuery *q) QString RDLibraryModel::sqlFields() const { QString sql=QString("select ")+ - "CART.NUMBER,"+ // 00 - "CART.FORCED_LENGTH,"+ // 01 - "CART.TITLE,"+ // 02 - "CART.ARTIST,"+ // 03 - "CART.ALBUM,"+ // 04 - "CART.LABEL,"+ // 05 - "CART.CLIENT,"+ // 06 - "CART.AGENCY,"+ // 07 - "CART.USER_DEFINED,"+ // 08 - "CART.COMPOSER,"+ // 09 - "CART.PUBLISHER,"+ // 10 - "CART.CONDUCTOR,"+ // 11 - "CART.GROUP_NAME,"+ // 12 - "CART.START_DATETIME,"+ // 13 - "CART.END_DATETIME,"+ // 14 - "CART.TYPE,"+ // 15 - "CART.CUT_QUANTITY,"+ // 16 - "CART.LAST_CUT_PLAYED,"+ // 17 - "CART.ENFORCE_LENGTH,"+ // 18 - "CART.PRESERVE_PITCH,"+ // 19 - "CART.LENGTH_DEVIATION,"+ // 20 - "CART.OWNER,"+ // 21 - "CART.VALIDITY,"+ // 22 - "GROUPS.COLOR,"+ // 23 - "CUTS.CUT_NAME,"+ // 24 - "CUTS.START_POINT,"+ // 25 - "CUTS.END_POINT,"+ // 26 - "CUTS.TALK_START_POINT,"+ // 27 - "CUTS.TALK_END_POINT,"+ // 28 - "CUTS.DESCRIPTION,"+ // 29 - "CART.NOTES "+ // 30 - "from CART "+ - "left join GROUPS on CART.GROUP_NAME=GROUPS.NAME "+ - "left join CUTS on CART.NUMBER=CUTS.CART_NUMBER "; + "`CART`.`NUMBER`,"+ // 00 + "`CART`.`FORCED_LENGTH`,"+ // 01 + "`CART`.`TITLE`,"+ // 02 + "`CART`.`ARTIST`,"+ // 03 + "`CART`.`ALBUM`,"+ // 04 + "`CART`.`LABEL`,"+ // 05 + "`CART`.`CLIENT`,"+ // 06 + "`CART`.`AGENCY`,"+ // 07 + "`CART`.`USER_DEFINED`,"+ // 08 + "`CART`.`COMPOSER`,"+ // 09 + "`CART`.`PUBLISHER`,"+ // 10 + "`CART`.`CONDUCTOR`,"+ // 11 + "`CART`.`GROUP_NAME`,"+ // 12 + "`CART`.`START_DATETIME`,"+ // 13 + "`CART`.`END_DATETIME`,"+ // 14 + "`CART`.`TYPE`,"+ // 15 + "`CART`.`CUT_QUANTITY`,"+ // 16 + "`CART`.`LAST_CUT_PLAYED`,"+ // 17 + "`CART`.`ENFORCE_LENGTH`,"+ // 18 + "`CART`.`PRESERVE_PITCH`,"+ // 19 + "`CART`.`LENGTH_DEVIATION`,"+ // 20 + "`CART`.`OWNER`,"+ // 21 + "`CART`.`VALIDITY`,"+ // 22 + "`GROUPS`.`COLOR`,"+ // 23 + "`CUTS`.`CUT_NAME`,"+ // 24 + "`CUTS`.`START_POINT`,"+ // 25 + "`CUTS`.`END_POINT`,"+ // 26 + "`CUTS`.`TALK_START_POINT`,"+ // 27 + "`CUTS`.`TALK_END_POINT`,"+ // 28 + "`CUTS`.`DESCRIPTION`,"+ // 29 + "`CART`.`NOTES` "+ // 30 + "from `CART` "+ + "left join `GROUPS` on `CART`.`GROUP_NAME`=`GROUPS`.`NAME` "+ + "left join `CUTS` on `CART`.`NUMBER`=`CUTS`.`CART_NUMBER` "; return sql; } diff --git a/lib/rdlog.cpp b/lib/rdlog.cpp index dbaf4337..b5e2b2f2 100644 --- a/lib/rdlog.cpp +++ b/lib/rdlog.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Log. // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,8 +18,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - #include "rdapplication.h" #include "rddb.h" #include "rdconf.h" @@ -36,8 +34,8 @@ RDLog::RDLog(const QString &name) // // Normalize case // - QString sql=QString("select NAME from LOGS where ")+ - "NAME=\""+RDEscapeString(name)+"\""; + QString sql=QString("select `NAME` from `LOGS` where ")+ + "`NAME`='"+RDEscapeString(name)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { log_name=q->value(0).toString(); @@ -54,8 +52,8 @@ QString RDLog::name() const bool RDLog::exists() const { - QString sql=QString("select NAME from LOGS where ")+ - "NAME=\""+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; @@ -279,24 +277,24 @@ void RDLog::updateLinkQuantity(RDLog::Source src) const RDSqlQuery *q; switch(src) { case RDLog::SourceMusic: - sql=QString("select LINE_ID from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(log_name)+"\" && "+ - QString().sprintf("TYPE=%d",RDLogLine::MusicLink); + sql=QString("select `LINE_ID` from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(log_name)+"' && "+ + QString().sprintf("`TYPE`=%d",RDLogLine::MusicLink); q=new RDSqlQuery(sql); - sql=QString("update LOGS set ")+ - QString().sprintf("MUSIC_LINKS=%d ",q->size())+ - "where NAME=\""+RDEscapeString(log_name)+"\""; + sql=QString("update `LOGS` set ")+ + QString().sprintf("`MUSIC_LINKS`=%d ",q->size())+ + "where `NAME`='"+RDEscapeString(log_name)+"'"; break; case RDLog::SourceTraffic: - sql=QString("select LINE_ID from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(log_name)+"\" && "+ - QString().sprintf("TYPE=%d",RDLogLine::TrafficLink); + sql=QString("select `LINE_ID` from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(log_name)+"' && "+ + QString().sprintf("`TYPE`=%d",RDLogLine::TrafficLink); q=new RDSqlQuery(sql); - sql=QString("update LOGS set ")+ - QString().sprintf("TRAFFIC_LINKS=%d ",q->size())+ - "where NAME=\""+RDEscapeString(log_name)+"\""; + sql=QString("update `LOGS` set ")+ + QString().sprintf("`TRAFFIC_LINKS`=%d ",q->size())+ + "where `NAME`='"+RDEscapeString(log_name)+"'"; break; default: @@ -357,14 +355,14 @@ bool RDLog::isReady() const bool ret=false; 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)+"\""; + "`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"))&& @@ -385,13 +383,13 @@ bool RDLog::remove(RDStation *station,RDUser *user,RDConfig *config) const return false; } - sql=QString("delete from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(log_name)+"\""; + sql=QString("delete from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(log_name)+"'"; RDSqlQuery::apply(sql); - sql=QString("delete from LOGS where ")+ - "NAME=\""+RDEscapeString(log_name)+"\" && "+ - "TYPE=0"; + sql=QString("delete from `LOGS` where ")+ + "`NAME`='"+RDEscapeString(log_name)+"' && "+ + "`TYPE`=0"; q=new RDSqlQuery(sql); delete q; return true; @@ -405,25 +403,25 @@ void RDLog::updateTracks() unsigned scheduled=0; unsigned completed=0; - sql=QString("select LOG_LINES.LINE_ID from ")+ - "LOG_LINES left join CART "+ - "on LOG_LINES.CART_NUMBER=CART.NUMBER where "+ - "LOG_NAME=\""+RDEscapeString(log_name)+"\" && "+ - "CART.OWNER is not null"; + sql=QString("select `LOG_LINES`.`LINE_ID` from ")+ + "`LOG_LINES` left join `CART` "+ + "on `LOG_LINES`.`CART_NUMBER`=`CART`.`NUMBER` where "+ + "`LOG_NAME`='"+RDEscapeString(log_name)+"' && "+ + "`CART`.`OWNER` is not null"; q=new RDSqlQuery(sql); completed=q->size(); delete q; - sql=QString("select LINE_ID from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(log_name)+"\" && "+ - QString().sprintf("TYPE=%d",RDLogLine::Track); + sql=QString("select `LINE_ID` from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(log_name)+"' && "+ + QString().sprintf("`TYPE`=%d",RDLogLine::Track); q=new RDSqlQuery(sql); scheduled=q->size()+completed; delete q; - sql=QString("update LOGS set ")+ - QString().sprintf("SCHEDULED_TRACKS=%d,",scheduled)+ - QString().sprintf("COMPLETED_TRACKS=%u where ",completed)+ + 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; @@ -439,8 +437,8 @@ int RDLog::removeTracks(RDStation *station,RDUser *user,RDConfig *config) const QString owner=log_name; owner.replace(" ","_"); - sql=QString("select NUMBER from CART where ")+ - "OWNER=\""+RDEscapeString(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()); @@ -471,25 +469,25 @@ QString RDLog::xml() const QString ret; sql=QString("select ")+ - "NAME,"+ // 00 - "SERVICE,"+ // 01 - "DESCRIPTION,"+ // 02 - "ORIGIN_USER,"+ // 03 - "ORIGIN_DATETIME,"+ // 04 - "LINK_DATETIME,"+ // 05 - "MODIFIED_DATETIME,"+ // 06 - "PURGE_DATE,"+ // 07 - "AUTO_REFRESH,"+ // 08 - "START_DATE,"+ // 09 - "END_DATE,"+ // 10 - "SCHEDULED_TRACKS,"+ // 11 - "COMPLETED_TRACKS,"+ // 12 - "MUSIC_LINKS,"+ // 13 - "MUSIC_LINKED,"+ // 14 - "TRAFFIC_LINKS,"+ // 15 - "TRAFFIC_LINKED,"+ // 16 - "NEXT_ID "+ // 17 - "from LOGS where NAME=\""+RDEscapeString(log_name)+"\""; + "`NAME`,"+ // 00 + "`SERVICE`,"+ // 01 + "`DESCRIPTION`,"+ // 02 + "`ORIGIN_USER`,"+ // 03 + "`ORIGIN_DATETIME`,"+ // 04 + "`LINK_DATETIME`,"+ // 05 + "`MODIFIED_DATETIME`,"+ // 06 + "`PURGE_DATE`,"+ // 07 + "`AUTO_REFRESH`,"+ // 08 + "`START_DATE`,"+ // 09 + "`END_DATE`,"+ // 10 + "`SCHEDULED_TRACKS`,"+ // 11 + "`COMPLETED_TRACKS`,"+ // 12 + "`MUSIC_LINKS`,"+ // 13 + "`MUSIC_LINKED`,"+ // 14 + "`TRAFFIC_LINKS`,"+ // 15 + "`TRAFFIC_LINKED`,"+ // 16 + "`NEXT_ID` "+ // 17 + "from `LOGS` where `NAME`='"+RDEscapeString(log_name)+"'"; q=new RDSqlQuery(sql); if(q->first()) { @@ -529,11 +527,11 @@ bool RDLog::create(const QString &name,const QString &svc_name, QString desc_tmpl; sql=QString("select ")+ - "DEFAULT_LOG_SHELFLIFE,"+ // 00 - "LOG_SHELFLIFE_ORIGIN,"+ // 01 - "DESCRIPTION_TEMPLATE "+ // 02 - "from SERVICES where "+ - "NAME=\""+RDEscapeString(svc_name)+"\""; + "`DEFAULT_LOG_SHELFLIFE`,"+ // 00 + "`LOG_SHELFLIFE_ORIGIN`,"+ // 01 + "`DESCRIPTION_TEMPLATE` "+ // 02 + "from `SERVICES` where "+ + "`NAME`='"+RDEscapeString(svc_name)+"'"; q=new RDSqlQuery(sql); if(q->first()) { shelflife=q->value(0).toInt(); @@ -546,26 +544,26 @@ bool RDLog::create(const QString &name,const QString &svc_name, return false; } delete q; - sql=QString("insert into LOGS set ")+ - "NAME=\""+RDEscapeString(name)+"\","+ - "TYPE=0,"+ - "DESCRIPTION=\""+RDEscapeString(name)+" log \","+ - "ORIGIN_USER=\""+RDEscapeString(user_name)+"\","+ - "ORIGIN_DATETIME=now(),"+ - "MODIFIED_DATETIME=now(),"+ - "LINK_DATETIME=now(),"+ - "SERVICE=\""+RDEscapeString(svc_name)+"\""; + sql=QString("insert into `LOGS` set ")+ + "`NAME=\""+RDEscapeString(name)+"\","+ + "`TYPE=0,"+ + "`DESCRIPTION`='"+RDEscapeString(name)+" log ',"+ + "`ORIGIN_USER`='"+RDEscapeString(user_name)+"',"+ + "`ORIGIN_DATETIME`=now(),"+ + "`MODIFIED_DATETIME`=now(),"+ + "`LINK_DATETIME`=now(),"+ + "`SERVICE`='"+RDEscapeString(svc_name)+"'"; if(shelflife>=0) { switch(shelforigin) { case RDSvc::OriginCreationDate: - sql+=",PURGE_DATE=\""+ - QDate::currentDate().addDays(shelflife).toString("yyyy-MM-dd")+"\""; + sql+=",`PURGE_DATE`='"+ + QDate::currentDate().addDays(shelflife).toString("yyyy-MM-dd")+"'"; break; case RDSvc::OriginAirDate: if(air_date.isValid()) { - sql+=",PURGE_DATE=\""+ - air_date.addDays(shelflife).toString("yyyy-MM-dd")+"\""; + sql+=",`PURGE_DATE`='"+ + air_date.addDays(shelflife).toString("yyyy-MM-dd")+"'"; } break; } @@ -588,8 +586,8 @@ bool RDLog::exists(const QString &name) RDSqlQuery *q; bool ret=false; - sql=QString("select NAME from LOGS where NAME=\"")+ - RDEscapeString(name)+"\""; + sql=QString("select `NAME` from `LOGS` where `NAME`='")+ + RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); ret=q->first(); delete q; @@ -616,8 +614,8 @@ int RDLog::GetIntValue(const QString &field) const RDSqlQuery *q; int accum; - sql=QString("select ")+field+" from LOGS where "+ - "NAME=\""+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(); @@ -635,9 +633,9 @@ unsigned RDLog::GetUnsignedValue(const QString &field) const RDSqlQuery *q; unsigned accum; - sql=QString("select ")+ - field+" from LOGS where "+ - "NAME=\""+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(); @@ -655,9 +653,9 @@ QString RDLog::GetStringValue(const QString &field) const RDSqlQuery *q; QString accum; - sql=QString("select ")+ - field+" from LOGS where "+ - "NAME=\""+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(); @@ -673,9 +671,9 @@ QDate RDLog::GetDateValue(const QString &field) const RDSqlQuery *q; QDate accum; - sql=QString("select ")+ - field+" from LOGS where "+ - "NAME=\""+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(); @@ -693,9 +691,9 @@ QDateTime RDLog::GetDatetimeValue(const QString &field) const RDSqlQuery *q; QDateTime accum; - sql=QString("select ")+ - field+" from LOGS where "+ - "NAME=\""+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(); @@ -712,9 +710,9 @@ void RDLog::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString("update LOGS set ")+ - param+QString().sprintf("=%d where ",value)+ - "NAME=\""+RDEscapeString(log_name)+"\""; + sql=QString("update LOGS set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`NAME`='"+RDEscapeString(log_name)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -725,9 +723,9 @@ void RDLog::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString("update LOGS set ")+ - param+QString().sprintf("=%u where ",value)+ - "NAME=\""+RDEscapeString(log_name)+"\""; + sql=QString("update LOGS set `")+ + param+QString().sprintf("`=%u where ",value)+ + "`NAME`='"+RDEscapeString(log_name)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -738,9 +736,9 @@ void RDLog::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString("update LOGS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "NAME=\""+RDEscapeString(log_name)+"\""; + sql=QString("update LOGS set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`NAME`='"+RDEscapeString(log_name)+"'"; q=new RDSqlQuery(sql); delete q; } @@ -751,9 +749,9 @@ void RDLog::SetRow(const QString ¶m,const QDate &value) const RDSqlQuery *q; QString sql; - sql=QString("update LOGS set ")+ - param+"="+RDCheckDateTime(value,"yyyy/MM/dd")+" where "+ - "NAME=\""+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; } @@ -764,9 +762,9 @@ void RDLog::SetRow(const QString ¶m,const QDateTime &value) const RDSqlQuery *q; QString sql; - sql=QString("update LOGS set ")+ - param+"="+RDCheckDateTime(value,"yyyy-MM-dd hh:mm:ss")+" where "+ - "NAME=\""+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_line.cpp b/lib/rdlog_line.cpp index d94e82d7..90242150 100644 --- a/lib/rdlog_line.cpp +++ b/lib/rdlog_line.cpp @@ -18,8 +18,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - #include "rdapplication.h" #include "rddb.h" #include "rdconf.h" @@ -44,20 +42,20 @@ RDLogLine::RDLogLine(unsigned cartnum,int cutnum) clear(); log_cart_number=cartnum; sql=QString("select ")+ - "GROUP_NAME,"+ // 00 - "TITLE,"+ // 01 - "ARTIST,"+ // 02 - "ALBUM,"+ // 03 - "YEAR,"+ // 04 - "LABEL," // 05 - "CLIENT,"+ // 06 - "AGENCY,"+ // 07 - "COMPOSER,"+ // 08 - "PUBLISHER,"+ // 09 - "USER_DEFINED,"+ // 10 - "NOTES "+ // 11 - "from CART where "+ - QString().sprintf("NUMBER=%u",log_cart_number); + "`GROUP_NAME`,"+ // 00 + "`TITLE`,"+ // 01 + "`ARTIST`,"+ // 02 + "`ALBUM`,"+ // 03 + "`YEAR`,"+ // 04 + "`LABEL`," // 05 + "`CLIENT`,"+ // 06 + "`AGENCY`,"+ // 07 + "`COMPOSER`,"+ // 08 + "`PUBLISHER`,"+ // 09 + "`USER_DEFINED`,"+ // 10 + "`NOTES` "+ // 11 + "from `CART` where "+ + QString().sprintf("`NUMBER`=%u",log_cart_number); q=new RDSqlQuery(sql); if(q->first()) { log_group_name=q->value(0).toString(); @@ -78,16 +76,16 @@ RDLogLine::RDLogLine(unsigned cartnum,int cutnum) if(cutnum>0) { log_cut_number=cutnum; sql=QString("select ")+ - "DESCRIPTION,"+ // 00 - "START_DATETIME,"+ // 01 - "END_DATETIME,"+ // 02 - "OUTCUE,"+ // 03 - "ISCI,"+ // 04 - "ISRC,"+ // 05 - "RECORDING_MBID,"+ // 06 - "RELEASE_MBID "+ // 07 - "from CUTS where "+ - "CUT_NAME=\""+RDEscapeString(RDCut::cutName(cartnum,cutnum))+"\""; + "`DESCRIPTION`,"+ // 00 + "`START_DATETIME`,"+ // 01 + "`END_DATETIME`,"+ // 02 + "`OUTCUE`,"+ // 03 + "`ISCI`,"+ // 04 + "`ISRC`,"+ // 05 + "`RECORDING_MBID`,"+ // 06 + "`RELEASE_MBID` "+ // 07 + "from `CUTS` where "+ + "`CUT_NAME`='"+RDEscapeString(RDCut::cutName(cartnum,cutnum))+"'"; q=new RDSqlQuery(sql); if(q->first()) { log_description=q->value(0).toString(); @@ -1833,23 +1831,23 @@ RDLogLine::State RDLogLine::setEvent(int mach,RDLogLine::TransType next_type, } log_cut_number=log_cut_name.right(3).toInt(); sql=QString("select ")+ - "LENGTH,"+ // 00 - "START_POINT,"+ // 01 - "END_POINT,"+ // 02 - "SEGUE_START_POINT,"+ // 03 - "SEGUE_END_POINT,"+ // 04 - "SEGUE_GAIN,"+ // 05 - "TALK_START_POINT,"+ // 06 - "TALK_END_POINT,"+ // 07 - "HOOK_START_POINT,"+ // 08 - "HOOK_END_POINT,"+ // 09 - "OUTCUE,"+ // 10 - "ISRC,"+ // 11 - "ISCI,"+ // 12 - "DESCRIPTION,"+ // 13 - "RECORDING_MBID,"+ // 14 - "RELEASE_MBID "+ // 15 - "from CUTS where CUT_NAME=\""+RDEscapeString(log_cut_name)+"\""; + "`LENGTH,"+ // 00 + "`START_POINT`,"+ // 01 + "`END_POINT`,"+ // 02 + "`SEGUE_START_POINT`,"+ // 03 + "`SEGUE_END_POINT`,"+ // 04 + "`SEGUE_GAIN`,"+ // 05 + "`TALK_START_POINT`,"+ // 06 + "`TALK_END_POINT`,"+ // 07 + "`HOOK_START_POINT`,"+ // 08 + "`HOOK_END_POINT`,"+ // 09 + "`OUTCUE`,"+ // 10 + "`ISRC`,"+ // 11 + "`ISCI`,"+ // 12 + "`DESCRIPTION`,"+ // 13 + "`RECORDING_MBID`,"+ // 14 + "`RELEASE_MBID` "+ // 15 + "from `CUTS` where `CUT_NAME`='"+RDEscapeString(log_cut_name)+"'"; q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -2061,37 +2059,37 @@ void RDLogLine::loadCart(int cartnum,RDLogLine::TransType next_type,int mach, void RDLogLine::loadCart(int cartnum,int cutnum) { QString sql=QString("select ")+ - "CART.TYPE,"+ // 00 - "CART.GROUP_NAME,"+ // 01 - "CART.TITLE,"+ // 02 - "CART.ARTIST,"+ // 03 - "CART.ALBUM,"+ // 04 - "CART.YEAR,"+ // 05 - "CART.LABEL,"+ // 06 - "CART.CLIENT,"+ // 07 - "CART.AGENCY,"+ // 08 - "CART.USER_DEFINED,"+ // 09 - "CART.CONDUCTOR,"+ // 10 - "CART.SONG_ID,"+ // 11 - "CART.FORCED_LENGTH,"+ // 12 - "CART.CUT_QUANTITY,"+ // 13 - "CART.LAST_CUT_PLAYED,"+ // 14 - "CART.PLAY_ORDER,"+ // 15 - "CART.START_DATETIME,"+ // 16 - "CART.END_DATETIME,"+ // 17 - "CART.ENFORCE_LENGTH,"+ // 18 - "CART.PRESERVE_PITCH,"+ // 19 - "GROUPS.ENABLE_NOW_NEXT,"+ // 20 - "CART.ASYNCRONOUS,"+ // 21 - "CART.PUBLISHER,"+ // 22 - "CART.COMPOSER,"+ // 23 - "CART.USAGE_CODE,"+ // 24 - "CART.AVERAGE_SEGUE_LENGTH,"+ // 25 - "CART.NOTES,"+ // 26 - "GROUPS.COLOR "+ // 27 - "from CART left join GROUPS "+ - "on CART.GROUP_NAME=GROUPS.NAME where "+ - QString().sprintf("(CART.NUMBER=%d)",cartnum); + "`CART`.`TYPE`,"+ // 00 + "`CART`.`GROUP_NAME`,"+ // 01 + "`CART`.`TITLE`,"+ // 02 + "`CART`.`ARTIST`,"+ // 03 + "`CART`.`ALBUM`,"+ // 04 + "`CART`.`YEAR`,"+ // 05 + "`CART`.`LABEL`,"+ // 06 + "`CART`.`CLIENT`,"+ // 07 + "`CART`.`AGENCY`,"+ // 08 + "`CART`.`USER_DEFINED`,"+ // 09 + "`CART`.`CONDUCTOR`,"+ // 10 + "`CART`.`SONG_ID`,"+ // 11 + "`CART`.`FORCED_LENGTH`,"+ // 12 + "`CART`.`CUT_QUANTITY`,"+ // 13 + "`CART`.`LAST_CUT_PLAYED`,"+ // 14 + "`CART`.`PLAY_ORDER`,"+ // 15 + "`CART`.`START_DATETIME`,"+ // 16 + "`CART`.`END_DATETIME`,"+ // 17 + "`CART`.`ENFORCE_LENGTH`,"+ // 18 + "`CART`.`PRESERVE_PITCH`,"+ // 19 + "`GROUPS`.`ENABLE_NOW_NEXT`,"+ // 20 + "`CART`.`ASYNCRONOUS`,"+ // 21 + "`CART`.`PUBLISHER`,"+ // 22 + "`CART`.`COMPOSER`,"+ // 23 + "`CART`.`USAGE_CODE`,"+ // 24 + "`CART`.`AVERAGE_SEGUE_LENGTH`,"+ // 25 + "`CART`.`NOTES`,"+ // 26 + "`GROUPS`.`COLOR` "+ // 27 + "from `CART` left join `GROUPS` "+ + "on `CART`.`GROUP_NAME`=`GROUPS`.`NAME` where "+ + QString().sprintf("(`CART`.`NUMBER`=%d)",cartnum); RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -2144,23 +2142,23 @@ void RDLogLine::loadCart(int cartnum,int cutnum) if(cutnum>0) { sql=QString("select ")+ - "LENGTH,"+ // 00 - "START_POINT,"+ // 01 - "END_POINT,"+ // 02 - "SEGUE_START_POINT,"+ // 03 - "SEGUE_END_POINT,"+ // 04 - "SEGUE_GAIN,"+ // 05 - "TALK_START_POINT,"+ // 06 - "TALK_END_POINT,"+ // 07 - "HOOK_START_POINT,"+ // 08 - "HOOK_END_POINT,"+ // 09 - "OUTCUE,"+ // 10 - "ISRC,"+ // 11 - "ISCI,"+ // 12 - "DESCRIPTION,"+ // 13 - "RECORDING_MBID,"+ // 14 - "RELEASE_MBID "+ // 15 - "from CUTS where CUT_NAME=\""+RDCut::cutName(cartnum,cutnum)+"\""; + "`LENGTH`,"+ // 00 + "`START_POINT`,"+ // 01 + "`END_POINT`,"+ // 02 + "`SEGUE_START_POINT`,"+ // 03 + "`SEGUE_END_POINT`,"+ // 04 + "`SEGUE_GAIN`,"+ // 05 + "`TALK_START_POINT`,"+ // 06 + "`TALK_END_POINT`,"+ // 07 + "`HOOK_START_POINT`,"+ // 08 + "`HOOK_END_POINT`,"+ // 09 + "`OUTCUE`,"+ // 10 + "`ISRC`,"+ // 11 + "`ISCI`,"+ // 12 + "`DESCRIPTION`,"+ // 13 + "`RECORDING_MBID`,"+ // 14 + "`RELEASE_MBID` "+ // 15 + "from `CUTS` where `CUT_NAME`='"+RDCut::cutName(cartnum,cutnum)+"'"; q=new RDSqlQuery(sql); if(q->first()) { if(log_hook_mode &&(q->value(8).toInt()>=0)&&(q->value(9).toInt()>=0)) { @@ -2234,27 +2232,27 @@ void RDLogLine::refreshCart() if((type()==RDLogLine::Cart)||(type()==RDLogLine::Macro)) { sql=QString("select ")+ - "TITLE,"+ // 00 - "ARTIST,"+ // 01 - "ALBUM,"+ // 02 - "YEAR,"+ // 03 - "CONDUCTOR,"+ // 04 - "LABEL,"+ // 05 - "CLIENT,"+ // 06 - "AGENCY,"+ // 07 - "PUBLISHER,"+ // 08 - "COMPOSER,"+ // 09 - "USER_DEFINED,"+ // 10 - "SONG_ID,"+ // 11 - "USAGE_CODE,"+ // 12 - "FORCED_LENGTH,"+ // 13 - "ENFORCE_LENGTH,"+ // 14 - "VALIDITY,"+ // 15 - "START_DATETIME,"+ // 16 - "END_DATETIME,"+ // 17 - "NOTES "+ // 19 - "from CART where "+ - QString().sprintf("NUMBER=%u",cartNumber()); + "`TITLE`,"+ // 00 + "`ARTIST`,"+ // 01 + "`ALBUM`,"+ // 02 + "`YEAR`,"+ // 03 + "`CONDUCTOR`,"+ // 04 + "`LABEL`,"+ // 05 + "`CLIENT`,"+ // 06 + "`AGENCY`,"+ // 07 + "`PUBLISHER`,"+ // 08 + "`COMPOSER`,"+ // 09 + "`USER_DEFINED`,"+ // 10 + "`SONG_ID`,"+ // 11 + "`USAGE_CODE`,"+ // 12 + "`FORCED_LENGTH`,"+ // 13 + "`ENFORCE_LENGTH`,"+ // 14 + "`VALIDITY`,"+ // 15 + "`START_DATETIME`,"+ // 16 + "`END_DATETIME`,"+ // 17 + "`NOTES` "+ // 19 + "from `CART` where "+ + QString().sprintf("`NUMBER`=%u",cartNumber()); q=new RDSqlQuery(sql); if(q->first()) { log_title=q->value(0).toString(); @@ -2291,18 +2289,18 @@ void RDLogLine::refreshPointers() RDSqlQuery *q; sql=QString("select ")+ - "START_POINT,"+ // 00 - "END_POINT,"+ // 01 - "SEGUE_START_POINT,"+ // 02 - "SEGUE_END_POINT,"+ // 03 - "TALK_START_POINT,"+ // 04 - "TALK_END_POINT,"+ // 05 - "FADEUP_POINT,"+ // 06 - "FADEDOWN_POINT,"+ // 07 - "HOOK_START_POINT,"+ // 08 - "HOOK_END_POINT "+ // 09 - "from CUTS where "+ - "CUT_NAME=\""+RDEscapeString(log_cut_name)+"\""; + "`START_POINT`,"+ // 00 + "`END_POINT`,"+ // 01 + "`SEGUE_START_POINT`,"+ // 02 + "`SEGUE_END_POINT`,"+ // 03 + "`TALK_START_POINT`,"+ // 04 + "`TALK_END_POINT`,"+ // 05 + "`FADEUP_POINT`,"+ // 06 + "`FADEDOWN_POINT`,"+ // 07 + "`HOOK_START_POINT`,"+ // 08 + "`HOOK_END_POINT` "+ // 09 + "from `CUTS` where "+ + "`CUT_NAME`='"+RDEscapeString(log_cut_name)+"'"; q=new RDSqlQuery(sql); if(q->first()) { log_start_point[RDLogLine::CartPointer]=q->value(0).toInt(); diff --git a/lib/rdlogedit_conf.cpp b/lib/rdlogedit_conf.cpp index fe1a4273..351292ff 100644 --- a/lib/rdlogedit_conf.cpp +++ b/lib/rdlogedit_conf.cpp @@ -2,7 +2,7 @@ // // Abstract an RDLogedit Configuration. // -// (C) Copyright 2002-2005,2016-2018 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -17,10 +17,11 @@ // License along with this program; if not, write to the Free Software // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include -#include + +#include "rdconf.h" +#include "rddb.h" +#include "rdescape_string.h" +#include "rdlogedit_conf.h" // // Global Classes @@ -32,13 +33,13 @@ RDLogeditConf::RDLogeditConf(const QString &station) lib_station=station; - sql=QString("select ID from RDLOGEDIT where ")+ - "STATION=\""+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("insert into RDLOGEDIT set ")+ - "STATION=\""+RDEscapeString(lib_station)+"\""; + sql=QString("insert into `RDLOGEDIT` set ")+ + "`STATION`='"+RDEscapeString(lib_station)+"'"; q=new RDSqlQuery(sql); } delete q; @@ -293,13 +294,13 @@ void RDLogeditConf::getSettings(RDSettings *s) const RDSqlQuery *q; sql=QString("select ")+ - "DEFAULT_CHANNELS,"+ // 00 - "FORMAT,"+ // 02 - "BITRATE,"+ // 03 - "RIPPER_LEVEL,"+ // 04 - "TRIM_THRESHOLD "+ // 05 - "from RDLOGEDIT where "+ - "STATION=\""+RDEscapeString(lib_station)+"\""; + "`DEFAULT_CHANNELS`,"+ // 00 + "`FORMAT`,"+ // 02 + "`BITRATE`,"+ // 03 + "`RIPPER_LEVEL`,"+ // 04 + "`TRIM_THRESHOLD` "+ // 05 + "from `RDLOGEDIT` where "+ + "`STATION`='"+RDEscapeString(lib_station)+"'"; q=new RDSqlQuery(sql); s->clear(); if(q->first()) { @@ -318,7 +319,7 @@ void RDLogeditConf::getSettings(RDSettings *s) const s->setAutotrimLevel(q->value(4).toUInt()); } delete q; - sql=QString("select SAMPLE_RATE from SYSTEM"); + sql=QString("select `SAMPLE_RATE` from `SYSTEM`"); q=new RDSqlQuery(sql); if(q->first()) { s->setSampleRate(q->value(0).toUInt()); @@ -332,9 +333,9 @@ void RDLogeditConf::SetRow(const QString ¶m,int value) const RDSqlQuery *q; QString sql; - sql=QString().sprintf("update RDLOGEDIT set ")+ - param+QString().sprintf("=%d where ",value)+ - "STATION=\""+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; } @@ -345,9 +346,9 @@ void RDLogeditConf::SetRow(const QString ¶m,unsigned value) const RDSqlQuery *q; QString sql; - sql=QString("update RDLOGEDIT set ")+ - param+QString().sprintf("=%d where ",value)+ - "STATION=\""+RDEscapeString(lib_station)+"\"", + sql=QString("update `RDLOGEDIT` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`STATION`='"+RDEscapeString(lib_station)+"'", q=new RDSqlQuery(sql); delete q; } @@ -358,9 +359,9 @@ void RDLogeditConf::SetRow(const QString ¶m,const QString &value) const RDSqlQuery *q; QString sql; - sql=QString("update RDLOGEDIT set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "STATION=\""+RDEscapeString(lib_station)+"\"", + sql=QString("update `RDLOGEDIT` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`STATION`='"+RDEscapeString(lib_station)+"'", q=new RDSqlQuery(sql); delete q; } @@ -371,9 +372,9 @@ void RDLogeditConf::SetRow(const QString ¶m,bool value) const RDSqlQuery *q; QString sql; - sql=QString("update RDLOGEDIT set ")+ - param+"=\""+RDYesNo(value)+"\" where "+ - "STATION=\""+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/rdlogfilter.cpp b/lib/rdlogfilter.cpp index 2af7fa09..3c4c369a 100644 --- a/lib/rdlogfilter.cpp +++ b/lib/rdlogfilter.cpp @@ -2,7 +2,7 @@ // // Filter widget for picking Rivendell logs. // -// (C) Copyright 2017-2018 Fred Gleason +// (C) Copyright 2017-2021 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 @@ -24,9 +24,6 @@ #include "rdescape_string.h" #include "rdlogfilter.h" -#include -#include "qlabel.h" - RDLogFilter::RDLogFilter(RDLogFilter::FilterMode mode,QWidget *parent) : QWidget(parent) { @@ -49,7 +46,7 @@ RDLogFilter::RDLogFilter(RDLogFilter::FilterMode mode,QWidget *parent) switch(mode) { case RDLogFilter::NoFilter: filter_service_box->insertItem(filter_service_box->count(),tr("ALL")); - sql=QString("select NAME from SERVICES order by NAME"); + sql=QString("select `NAME` from `SERVICES` order by `NAME`"); q=new RDSqlQuery(sql); while(q->next()) { filter_service_box-> @@ -128,13 +125,13 @@ QString RDLogFilter::whereSql() const QString sql=""; if(filter_service_box->currentIndex()!=0) { - sql+="&&(LOGS.SERVICE=\""+ - RDEscapeString(filter_service_box->currentText())+"\")"; + sql+="&&(`LOGS`.`SERVICE`='"+ + RDEscapeString(filter_service_box->currentText())+"')"; } else { sql+="&&("; for(int i=1;icount();i++) { - sql+="(SERVICE=\""+RDEscapeString(filter_service_box->itemText(i))+"\")||"; + sql+="(`SERVICE`='"+RDEscapeString(filter_service_box->itemText(i))+"')||"; } sql=sql.left(sql.length()-2); sql+=")"; @@ -142,17 +139,17 @@ QString RDLogFilter::whereSql() const QString filter=filter_filter_edit->text(); if(!filter.isEmpty()) { if(filter_service_box->currentIndex()==0) { - sql+="&&((LOGS.NAME like \"%%"+RDEscapeString(filter)+"%%\")||"; - sql+="(LOGS.DESCRIPTION like \"%%"+RDEscapeString(filter)+"%%\")||"; - sql+="(LOGS.SERVICE like \"%%"+RDEscapeString(filter)+"%%\"))"; + sql+="&&((`LOGS`.`NAME` like '%%"+RDEscapeString(filter)+"%%')||"; + sql+="(`LOGS`.`DESCRIPTION` like '%%"+RDEscapeString(filter)+"%%')||"; + sql+="(`LOGS`.`SERVICE` like '%%"+RDEscapeString(filter)+"%%'))"; } else { - sql+="&&((LOGS.NAME like \"%%"+RDEscapeString(filter)+"%%\")||"; - sql+="(LOGS.DESCRIPTION like \"%%"+RDEscapeString(filter)+"%%\"))"; + sql+="&&((`LOGS`.`NAME` like '%%"+RDEscapeString(filter)+"%%')||"; + sql+="(`LOGS`.`DESCRIPTION` like '%%"+RDEscapeString(filter)+"%%'))"; } } if(filter_recent_check->isChecked()) { - sql+=QString().sprintf("order by LOGS.ORIGIN_DATETIME desc limit %d", + sql+=QString().sprintf("order by `LOGS`.`ORIGIN_DATETIME` desc limit %d", RD_LOGFILTER_LIMIT_QUAN); } @@ -165,8 +162,8 @@ void RDLogFilter::changeUser() if(filter_filter_mode==RDLogFilter::UserFilter) { filter_service_box->clear(); filter_service_box->insertItem(filter_service_box->count(),tr("ALL")); - QString sql=QString("select SERVICE_NAME from USER_SERVICE_PERMS where ")+ - "USER_NAME=\""+RDEscapeString(rda->user()->name())+"\""; + QString sql=QString("select `SERVICE_NAME` from `USER_SERVICE_PERMS` where ")+ + "`USER_NAME`='"+RDEscapeString(rda->user()->name())+"'"; RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { filter_service_box-> diff --git a/lib/rdlogimportmodel.cpp b/lib/rdlogimportmodel.cpp index 4455761d..ee0230fc 100644 --- a/lib/rdlogimportmodel.cpp +++ b/lib/rdlogimportmodel.cpp @@ -172,9 +172,9 @@ void RDLogImportModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields()+ "where "+ - "IMPORTER_LINES.STATION_NAME=\""+RDEscapeString(d_station_name)+"\"&&"+ - QString().sprintf("PROCESS_ID=%u ",d_process_id)+ - "order by IMPORTER_LINES.LINE_ID "; + "`IMPORTER_LINES`.`STATION_NAME`='"+RDEscapeString(d_station_name)+"'&&"+ + QString().sprintf("`PROCESS_ID`=%u ",d_process_id)+ + "order by `IMPORTER_LINES`.`LINE_ID` "; beginResetModel(); d_texts.clear(); q=new RDSqlQuery(sql); @@ -262,18 +262,18 @@ void RDLogImportModel::updateRow(int row,RDSqlQuery *q) QString RDLogImportModel::sqlFields() const { QString sql=QString("select ")+ - "ID,"+ // 00 - "START_HOUR,"+ // 01 - "START_SECS,"+ // 02 - "EXT_CART_NAME,"+ // 03 - "LENGTH,"+ // 04 - "EXT_DATA,"+ // 05 - "EXT_EVENT_ID,"+ // 06 - "EXT_ANNC_TYPE,"+ // 07 - "TITLE,"+ // 08 - "TYPE,"+ // 09 - "FILE_LINE "+ // 10 - "from IMPORTER_LINES "; + "`ID`,"+ // 00 + "`START_HOUR`,"+ // 01 + "`START_SECS`,"+ // 02 + "`EXT_CART_NAME`,"+ // 03 + "`LENGTH`,"+ // 04 + "`EXT_DATA`,"+ // 05 + "`EXT_EVENT_ID`,"+ // 06 + "`EXT_ANNC_TYPE`,"+ // 07 + "`TITLE`,"+ // 08 + "`TYPE`,"+ // 09 + "`FILE_LINE` "+ // 10 + "from `IMPORTER_LINES` "; return sql; } diff --git a/lib/rdloglistmodel.cpp b/lib/rdloglistmodel.cpp index fe700ecf..cd697d66 100644 --- a/lib/rdloglistmodel.cpp +++ b/lib/rdloglistmodel.cpp @@ -204,8 +204,8 @@ void RDLogListModel::refresh(const QModelIndex &row) { if(row.row()first()) { updateRow(row.row(),q); @@ -244,10 +244,10 @@ void RDLogListModel::updateModel(const QString &filter_sql) RDSqlQuery *q=NULL; QString sql=sqlFields()+ "where "+ - "(TYPE=0)&&"+ - "(LOG_EXISTS=\"Y\") "+ + "(`TYPE`=0)&&"+ + "(`LOG_EXISTS`='Y') "+ filter_sql+ - "order by NAME "; + "order by `NAME` "; beginResetModel(); d_texts.clear(); d_icons.clear(); @@ -268,7 +268,7 @@ void RDLogListModel::updateRowLine(int line) { if(linefirst()) { updateRow(line,q); @@ -391,22 +391,22 @@ void RDLogListModel::updateRow(int row,RDSqlQuery *q) QString RDLogListModel::sqlFields() const { QString sql=QString("select ")+ - "NAME,"+ // 00 - "DESCRIPTION,"+ // 01 - "SERVICE,"+ // 02 - "START_DATE,"+ // 03 - "END_DATE,"+ // 04 - "ORIGIN_USER,"+ // 05 - "ORIGIN_DATETIME,"+ // 06 - "COMPLETED_TRACKS,"+ // 07 - "SCHEDULED_TRACKS,"+ // 08 - "MUSIC_LINKS,"+ // 09 - "MUSIC_LINKED,"+ // 10 - "TRAFFIC_LINKS,"+ // 11 - "TRAFFIC_LINKED,"+ // 12 - "LINK_DATETIME,"+ // 13 - "MODIFIED_DATETIME,"+ // 14 - "AUTO_REFRESH "+ // 15 + "`NAME`,"+ // 00 + "`DESCRIPTION`,"+ // 01 + "`SERVICE`,"+ // 02 + "`START_DATE`,"+ // 03 + "`END_DATE`,"+ // 04 + "`ORIGIN_USER`,"+ // 05 + "`ORIGIN_DATETIME`,"+ // 06 + "`COMPLETED_TRACKS`,"+ // 07 + "`SCHEDULED_TRACKS`,"+ // 08 + "`MUSIC_LINKS`,"+ // 09 + "`MUSIC_LINKED`,"+ // 10 + "`TRAFFIC_LINKS`,"+ // 11 + "`TRAFFIC_LINKED`,"+ // 12 + "`LINK_DATETIME`,"+ // 13 + "`MODIFIED_DATETIME`,"+ // 14 + "`AUTO_REFRESH` "+ // 15 "from LOGS "; return sql; } diff --git a/lib/rdloglock.cpp b/lib/rdloglock.cpp index b6048e7e..a12dbb8e 100644 --- a/lib/rdloglock.cpp +++ b/lib/rdloglock.cpp @@ -2,7 +2,7 @@ // // Log locking routines for Rivendell // -// (C) Copyright 2017-2019 Fred Gleason +// (C) Copyright 2017-2021 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 @@ -18,10 +18,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - -#include - #include "rdapplication.h" #include "rddb.h" #include "rdescape_string.h" @@ -101,27 +97,26 @@ bool RDLogLock::tryLock(QString *username,QString *stationname, bool ret=false; QDateTime now=QDateTime::currentDateTime(); - sql=QString("update LOGS set ")+ - "LOCK_USER_NAME=\""+RDEscapeString(*username)+"\","+ - "LOCK_STATION_NAME=\""+RDEscapeString(*stationname)+"\","+ - "LOCK_IPV4_ADDRESS=\""+RDEscapeString(addr->toString())+ - "\","+ - "LOCK_GUID=\""+RDEscapeString(guid)+"\","+ - "LOCK_DATETIME=now() where "+ - "(NAME=\""+RDEscapeString(log_name)+"\")&&"+ - "((LOCK_DATETIME is null)||"+ - "(LOCK_DATETIME<\""+RDEscapeString(now.addSecs(-RD_LOG_LOCK_TIMEOUT/1000).toString("yyyy-MM-dd hh:mm:ss"))+"\"))"; + sql=QString("update `LOGS` set ")+ + "`LOCK_USER_NAME`='"+RDEscapeString(*username)+"',"+ + "`LOCK_STATION_NAME`='"+RDEscapeString(*stationname)+"',"+ + "`LOCK_IPV4_ADDRESS`='"+RDEscapeString(addr->toString())+"',"+ + "`LOCK_GUID`='"+RDEscapeString(guid)+"',"+ + "`LOCK_DATETIME`=now() where "+ + "(`NAME`='"+RDEscapeString(log_name)+"')&&"+ + "((`LOCK_DATETIME` is null)||"+ + "(`LOCK_DATETIME`<'"+RDEscapeString(now.addSecs(-RD_LOG_LOCK_TIMEOUT/1000).toString("yyyy-MM-dd hh:mm:ss"))+"'))"; q=new RDSqlQuery(sql); if(q->numRowsAffected()>0) { ret=true; } else { sql=QString("select ")+ - "LOCK_USER_NAME,"+ - "LOCK_STATION_NAME,"+ - "LOCK_IPV4_ADDRESS "+ - "from LOGS where "+ - "NAME=\""+RDEscapeString(log_name)+"\""; + "`LOCK_USER_NAME`,"+ + "`LOCK_STATION_NAME`,"+ + "`LOCK_IPV4_ADDRESS` "+ + "from `LOGS` where "+ + "`NAME`='"+RDEscapeString(log_name)+"'"; q1=new RDSqlQuery(sql); if(q1->first()) { *username=q1->value(0).toString(); @@ -141,9 +136,9 @@ void RDLogLock::updateLock(const QString &log_name,const QString &guid) QString sql; RDSqlQuery *q; - sql=QString("update LOGS set ")+ - "LOCK_DATETIME=now() where "+ - "LOCK_GUID=\""+RDEscapeString(guid)+"\""; + sql=QString("update `LOGS` set ")+ + "`LOCK_DATETIME`=now() where "+ + "`LOCK_GUID`='"+RDEscapeString(guid)+"'"; q=new RDSqlQuery(sql); if(q->numRowsAffected()==0) { rda->syslog(LOG_WARNING,"lock on log \"%s\" has evaporated!", @@ -156,17 +151,15 @@ void RDLogLock::updateLock(const QString &log_name,const QString &guid) void RDLogLock::clearLock(const QString &guid) { QString sql; - RDSqlQuery *q; - sql=QString("update LOGS set ")+ - "LOCK_USER_NAME=null,"+ - "LOCK_STATION_NAME=null,"+ - "LOCK_IPV4_ADDRESS=null,"+ - "LOCK_GUID=null,"+ - "LOCK_DATETIME=null where "+ - "LOCK_GUID=\""+RDEscapeString(guid)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `LOGS` set ")+ + "`LOCK_USER_NAME`=null,"+ + "`LOCK_STATION_NAME`=null,"+ + "`LOCK_IPV4_ADDRESS`=null,"+ + "`LOCK_GUID`=null,"+ + "`LOCK_DATETIME`=null where "+ + "`LOCK_GUID`='"+RDEscapeString(guid)+"'"; + RDSqlQuery::apply(sql); } @@ -177,11 +170,11 @@ bool RDLogLock::validateLock(const QString &log_name,const QString &guid) bool ret=false; QDateTime now=QDateTime::currentDateTime(); - sql=QString("select NAME from LOGS where ")+ - "(NAME=\""+RDEscapeString(log_name)+"\")&&"+ - "(LOCK_GUID=\""+RDEscapeString(guid)+"\")&&"+ - "(LOCK_DATETIME>\""+RDEscapeString(now.addSecs(-RD_LOG_LOCK_TIMEOUT/1000). - toString("yyyy-MM-dd hh:mm:ss"))+"\")"; + sql=QString("select `NAME` from `LOGS` where ")+ + "(`NAME`='"+RDEscapeString(log_name)+"')&&"+ + "(`LOCK_GUID`='"+RDEscapeString(guid)+"')&&"+ + "(`LOCK_DATETIME`>'"+RDEscapeString(now.addSecs(-RD_LOG_LOCK_TIMEOUT/1000). + toString("yyyy-MM-dd hh:mm:ss"))+"')"; q=new RDSqlQuery(sql); ret=q->first(); delete q; diff --git a/lib/rdlogmodel.cpp b/lib/rdlogmodel.cpp index 05d61a05..dea05c33 100644 --- a/lib/rdlogmodel.cpp +++ b/lib/rdlogmodel.cpp @@ -2,7 +2,7 @@ // // Data model for Rivendell logs // -// (C) Copyright 2020 Fred Gleason +// (C) Copyright 2020-2021 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 @@ -18,8 +18,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - #include "rdapplication.h" #include "rdconf.h" #include "rdescape_string.h" @@ -220,8 +218,8 @@ int RDLogModel::load(bool track_ptrs) // // Get the service name // - sql=QString("select SERVICE from LOGS where ")+ - "NAME=\""+RDEscapeString(d_log_name)+"\""; + sql=QString("select `SERVICE` from `LOGS` where ")+ + "`NAME`='"+RDEscapeString(d_log_name)+"'"; q=new RDSqlQuery(sql); if(q->next()) { d_service_name=q->value(0).toString(); @@ -258,8 +256,8 @@ void RDLogModel::save(RDConfig *config,bool update_tracks,int line) } if(line<0) { if(exists()) { - sql=QString("delete from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(d_log_name)+"\""; + sql=QString("delete from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(d_log_name)+"'"; RDSqlQuery::apply(sql); } if (d_log_lines.size() > 0) { @@ -274,9 +272,9 @@ void RDLogModel::save(RDConfig *config,bool update_tracks,int line) } } else { - sql=QString("delete from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(d_log_name)+"\" && "+ - QString().sprintf("COUNT=%d",line); + sql=QString("delete from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(d_log_name)+"' && "+ + QString().sprintf("`COUNT`=%d",line); q=new RDSqlQuery(sql); delete q; SaveLine(line); @@ -339,10 +337,10 @@ int RDLogModel::validate(QString *report,const QDate &date) for(int i=0;icartNumber()>0) { sql=QString("select ")+ - "TYPE,"+ // 00 - "TITLE "+ // 01 - "from CART where "+ - QString().sprintf("NUMBER=%d",logLine(i)->cartNumber()); + "`TYPE`,"+ // 00 + "`TITLE` "+ // 01 + "from `CART` where "+ + QString().sprintf("`NUMBER`=%d",logLine(i)->cartNumber()); q=new RDSqlQuery(sql); if(!q->first()) { *report+=QString(" ")+ @@ -358,33 +356,33 @@ int RDLogModel::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("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)"; + 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("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")+" "+ + 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")+" "+ + "'))&&"+ + "((`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<=\""+ + "'))&&"+ + "((`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")+"\"))&&"+ + 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); @@ -419,32 +417,32 @@ void RDLogModel::update(int line) } if(d_log_lines[line]->cartNumber()>0) { QString sql=QString("select ")+ - "CART.TYPE,"+ // 00 - "CART.GROUP_NAME,"+ // 01 - "CART.TITLE,"+ // 02 - "CART.ARTIST,"+ // 03 - "CART.ALBUM,"+ // 04 - "CART.YEAR,"+ // 05 - "CART.LABEL,"+ // 06 - "CART.CLIENT,"+ // 07 - "CART.AGENCY,"+ // 08 - "CART.USER_DEFINED,"+ // 09 - "CART.FORCED_LENGTH,"+ // 10 - "CART.CUT_QUANTITY,"+ // 11 - "CART.LAST_CUT_PLAYED,"+ // 12 - "CART.PLAY_ORDER,"+ // 13 - "CART.ENFORCE_LENGTH,"+ // 14 - "CART.PRESERVE_PITCH,"+ // 15 - "CART.PUBLISHER,"+ // 16 - "CART.COMPOSER,"+ // 17 - "CART.USAGE_CODE,"+ // 18 - "CART.AVERAGE_SEGUE_LENGTH,"+ // 19 - "CART.VALIDITY,"+ // 20 - "CART.NOTES,"+ // 21 - "GROUPS.COLOR "+ // 22 - "from CART left join GROUPS "+ - "on CART.GROUP_NAME=GROUPS.NAME where "+ - QString().sprintf("CART.NUMBER=%u",d_log_lines[line]->cartNumber()); + "`CART`.`TYPE`,"+ // 00 + "`CART`.`GROUP_NAME`,"+ // 01 + "`CART`.`TITLE`,"+ // 02 + "`CART`.`ARTIST`,"+ // 03 + "`CART`.`ALBUM`,"+ // 04 + "`CART`.`YEAR`,"+ // 05 + "`CART`.`LABEL`,"+ // 06 + "`CART`.`CLIENT`,"+ // 07 + "`CART`.`AGENCY`,"+ // 08 + "`CART`.`USER_DEFINED`,"+ // 09 + "`CART`.`FORCED_LENGTH`,"+ // 10 + "`CART`.`CUT_QUANTITY`,"+ // 11 + "`CART`.`LAST_CUT_PLAYED`,"+ // 12 + "`CART`.`PLAY_ORDER`,"+ // 13 + "`CART`.`ENFORCE_LENGTH`,"+ // 14 + "`CART`.`PRESERVE_PITCH`,"+ // 15 + "`CART`.`PUBLISHER`,"+ // 16 + "`CART`.`COMPOSER`,"+ // 17 + "`CART`.`USAGE_CODE`,"+ // 18 + "`CART`.`AVERAGE_SEGUE_LENGTH`,"+ // 19 + "`CART`.`VALIDITY`,"+ // 20 + "`CART`.`NOTES`,"+ // 21 + "`GROUPS`.`COLOR` "+ // 22 + "from `CART` left join `GROUPS` "+ + "on `CART`.`GROUP_NAME`=`GROUPS`.`NAME` where "+ + QString().sprintf("`CART`.`NUMBER`=%u",d_log_lines[line]->cartNumber()); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { switch((RDCart::Type)q->value(0).toInt()) { @@ -1032,75 +1030,75 @@ int RDLogModel::LoadLines(const QString &logname,int id_offset,bool track_ptrs) // Load log lines // sql=QString("select ")+ - "LOG_LINES.LINE_ID,"+ // 00 - "LOG_LINES.CART_NUMBER,"+ // 01 - "LOG_LINES.START_TIME,"+ // 02 - "LOG_LINES.TIME_TYPE,"+ // 03 - "LOG_LINES.TRANS_TYPE,"+ // 04 - "LOG_LINES.START_POINT,"+ // 05 - "LOG_LINES.END_POINT,"+ // 06 - "LOG_LINES.SEGUE_START_POINT,"+ // 07 - "LOG_LINES.SEGUE_END_POINT,"+ // 08 - "CART.TYPE,"+ // 09 - "CART.GROUP_NAME,"+ // 10 - "CART.TITLE,"+ // 11 - "CART.ARTIST,"+ // 12 - "CART.ALBUM,"+ // 13 - "CART.YEAR,"+ // 14 - "CART.LABEL,"+ // 15 - "CART.CLIENT,"+ // 16 - "CART.AGENCY,"+ // 17 - "CART.USER_DEFINED,"+ // 18 - "CART.CONDUCTOR,"+ // 19 - "CART.SONG_ID,"+ // 20 - "CART.FORCED_LENGTH,"+ // 21 - "CART.CUT_QUANTITY,"+ // 22 - "CART.LAST_CUT_PLAYED,"+ // 23 - "CART.PLAY_ORDER,"+ // 24 - "CART.ENFORCE_LENGTH,"+ // 25 - "CART.PRESERVE_PITCH ,"+ // 26 - "LOG_LINES.TYPE,"+ // 27 - "LOG_LINES.COMMENT,"+ // 28 - "LOG_LINES.LABEL,"+ // 29 - "LOG_LINES.GRACE_TIME,"+ // 30 - "LOG_LINES.SOURCE,"+ // 31 - "LOG_LINES.EXT_START_TIME,"+ // 32 - "LOG_LINES.EXT_LENGTH,"+ // 33 - "LOG_LINES.EXT_DATA,"+ // 34 - "LOG_LINES.EXT_EVENT_ID,"+ // 35 - "LOG_LINES.EXT_ANNC_TYPE,"+ // 36 - "LOG_LINES.EXT_CART_NAME,"+ // 37 - "CART.ASYNCRONOUS,"+ // 38 - "LOG_LINES.FADEUP_POINT,"+ // 39 - "LOG_LINES.FADEUP_GAIN,"+ // 40 - "LOG_LINES.FADEDOWN_POINT,"+ // 41 - "LOG_LINES.FADEDOWN_GAIN,"+ // 42 - "LOG_LINES.SEGUE_GAIN,"+ // 43 - "CART.PUBLISHER,"+ // 44 - "CART.COMPOSER,"+ // 45 - "CART.USAGE_CODE,"+ // 46 - "CART.AVERAGE_SEGUE_LENGTH,"+ // 47 - "LOG_LINES.LINK_EVENT_NAME,"+ // 48 - "LOG_LINES.LINK_START_TIME,"+ // 49 - "LOG_LINES.LINK_LENGTH,"+ // 50 - "LOG_LINES.LINK_ID,"+ // 51 - "LOG_LINES.LINK_EMBEDDED,"+ // 52 - "LOG_LINES.ORIGIN_USER,"+ // 53 - "LOG_LINES.ORIGIN_DATETIME,"+ // 54 - "CART.VALIDITY,"+ // 55 - "LOG_LINES.LINK_START_SLOP,"+ // 56 - "LOG_LINES.LINK_END_SLOP,"+ // 57 - "LOG_LINES.DUCK_UP_GAIN,"+ // 58 - "LOG_LINES.DUCK_DOWN_GAIN,"+ // 59 - "CART.START_DATETIME,"+ // 60 - "CART.END_DATETIME,"+ // 61 - "LOG_LINES.EVENT_LENGTH,"+ // 62 - "CART.USE_EVENT_LENGTH,"+ // 63 - "CART.NOTES "+ // 64 - "from LOG_LINES left join CART "+ - "on LOG_LINES.CART_NUMBER=CART.NUMBER where "+ - "LOG_LINES.LOG_NAME=\""+RDEscapeString(logname)+"\" "+ - "order by COUNT"; + "`LOG_LINES`.`LINE_ID`,"+ // 00 + "`LOG_LINES`.`CART_NUMBER`,"+ // 01 + "`LOG_LINES`.`START_TIME`,"+ // 02 + "`LOG_LINES`.`TIME_TYPE`,"+ // 03 + "`LOG_LINES`.`TRANS_TYPE`,"+ // 04 + "`LOG_LINES`.`START_POINT`,"+ // 05 + "`LOG_LINES`.`END_POINT`,"+ // 06 + "`LOG_LINES`.`SEGUE_START_POINT`,"+ // 07 + "`LOG_LINES`.`SEGUE_END_POINT`,"+ // 08 + "`CART`.`TYPE`,"+ // 09 + "`CART`.`GROUP_NAME`,"+ // 10 + "`CART`.`TITLE`,"+ // 11 + "`CART`.`ARTIST`,"+ // 12 + "`CART`.`ALBUM`,"+ // 13 + "`CART`.`YEAR`,"+ // 14 + "`CART`.`LABEL`,"+ // 15 + "`CART`.`CLIENT`,"+ // 16 + "`CART`.`AGENCY`,"+ // 17 + "`CART`.`USER_DEFINED`,"+ // 18 + "`CART`.`CONDUCTOR`,"+ // 19 + "`CART`.`SONG_ID`,"+ // 20 + "`CART`.`FORCED_LENGTH`,"+ // 21 + "`CART`.`CUT_QUANTITY`,"+ // 22 + "`CART`.`LAST_CUT_PLAYED`,"+ // 23 + "`CART`.`PLAY_ORDER`,"+ // 24 + "`CART`.`ENFORCE_LENGTH`,"+ // 25 + "`CART`.`PRESERVE_PITCH `,"+ // 26 + "`LOG_LINES`.`TYPE`,"+ // 27 + "`LOG_LINES`.`COMMENT`,"+ // 28 + "`LOG_LINES`.`LABEL`,"+ // 29 + "`LOG_LINES`.`GRACE_TIME`,"+ // 30 + "`LOG_LINES`.`SOURCE`,"+ // 31 + "`LOG_LINES`.`EXT_START_TIME`,"+ // 32 + "`LOG_LINES`.`EXT_LENGTH`,"+ // 33 + "`LOG_LINES`.`EXT_DATA`,"+ // 34 + "`LOG_LINES`.`EXT_EVENT_ID`,"+ // 35 + "`LOG_LINES`.`EXT_ANNC_TYPE`,"+ // 36 + "`LOG_LINES`.`EXT_CART_NAME`,"+ // 37 + "`CART`.`ASYNCRONOUS`,"+ // 38 + "`LOG_LINES`.`FADEUP_POINT`,"+ // 39 + "`LOG_LINES`.`FADEUP_GAIN`,"+ // 40 + "`LOG_LINES`.`FADEDOWN_POINT`,"+ // 41 + "`LOG_LINES`.`FADEDOWN_GAIN`,"+ // 42 + "`LOG_LINES`.`SEGUE_GAIN`,"+ // 43 + "`CART`.`PUBLISHER`,"+ // 44 + "`CART`.`COMPOSER`,"+ // 45 + "`CART`.`USAGE_CODE`,"+ // 46 + "`CART`.`AVERAGE_SEGUE_LENGTH`,"+ // 47 + "`LOG_LINES`.`LINK_EVENT_NAME`,"+ // 48 + "`LOG_LINES`.`LINK_START_TIME`,"+ // 49 + "`LOG_LINES`.`LINK_LENGTH`,"+ // 50 + "`LOG_LINES`.`LINK_ID`,"+ // 51 + "`LOG_LINES`.`LINK_EMBEDDED`,"+ // 52 + "`LOG_LINES`.`ORIGIN_USER`,"+ // 53 + "`LOG_LINES`.`ORIGIN_DATETIME`,"+ // 54 + "`CART`.`VALIDITY`,"+ // 55 + "`LOG_LINES`.`LINK_START_SLOP`,"+ // 56 + "`LOG_LINES`.`LINK_END_SLOP`,"+ // 57 + "`LOG_LINES`.`DUCK_UP_GAIN`,"+ // 58 + "`LOG_LINES`.`DUCK_DOWN_GAIN`,"+ // 59 + "`CART`.`START_DATETIME`,"+ // 60 + "`CART`.`END_DATETIME`,"+ // 61 + "`LOG_LINES`.`EVENT_LENGTH`,"+ // 62 + "`CART`.`USE_EVENT_LENGTH',"+ // 63 + "`CART`.`NOTES` "+ // 64 + "from `LOG_LINES` left join `CART` "+ + "on `LOG_LINES`.`CART_NUMBER`=`CART`.`NUMBER` where "+ + "`LOG_LINES`.`LOG_NAME`=\""+RDEscapeString(logname)+"\" "+ + "order by `COUNT`"; q=new RDSqlQuery(sql); if(q->size()<=0) { delete q; @@ -1274,8 +1272,8 @@ int RDLogModel::LoadLines(const QString &logname,int id_offset,bool track_ptrs) break; case RDLogLine::Chain: - sql=QString("select DESCRIPTION from LOGS where ")+ - "NAME=\""+RDEscapeString(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()); @@ -1312,22 +1310,22 @@ int RDLogModel::LoadLines(const QString &logname,int id_offset,bool track_ptrs) RDLogLine *ll=logLine(i); if(ll->cartType()==RDCart::Audio) { sql=QString("select ")+ - "START_POINT,"+ // 00 - "END_POINT,"+ // 01 - "SEGUE_START_POINT,"+ // 02 - "SEGUE_END_POINT,"+ // 03 - "TALK_START_POINT,"+ // 04 - "TALK_END_POINT,"+ // 05 - "HOOK_START_POINT,"+ // 06 - "HOOK_END_POINT,"+ // 07 - "FADEUP_POINT,"+ // 08 - "FADEDOWN_POINT,"+ // 09 - "CUT_NAME,"+ // 10 - "ORIGIN_NAME,"+ // 11 - "ORIGIN_DATETIME "+ // 12 - "from CUTS where "+ - QString().sprintf("CART_NUMBER=%u ",ll->cartNumber())+ - "order by CUT_NAME"; + "`START_POINT`,"+ // 00 + "`END_POINT`,"+ // 01 + "`SEGUE_START_POINT`,"+ // 02 + "`SEGUE_END_POINT`,"+ // 03 + "`TALK_START_POINT`,"+ // 04 + "`TALK_END_POINT`,"+ // 05 + "`HOOK_START_POINT`,"+ // 06 + "`HOOK_END_POINT`,"+ // 07 + "`FADEUP_POINT`,"+ // 08 + "`FADEDOWN_POINT`,"+ // 09 + "`CUT_NAME`,"+ // 10 + "`ORIGIN_NAME`,"+ // 11 + "`ORIGIN_DATETIME` "+ // 12 + "from `CUTS` where "+ + QString().sprintf("`CART_NUMBER`=%u ",ll->cartNumber())+ + "order by `CUT_NAME`"; q=new RDSqlQuery(sql); if(q->first()) { ll->setStartPoint(q->value(0).toInt(),RDLogLine::CartPointer); @@ -1358,45 +1356,45 @@ void RDLogModel::InsertLines(QString values) { RDSqlQuery *q; sql = QString("insert into LOG_LINES (")+ - "LOG_NAME,"+ // 00 - "LINE_ID,"+ // 01 - "COUNT,"+ // 02 - "CART_NUMBER,"+ // 03 - "START_TIME,"+ // 04 - "TIME_TYPE,"+ // 05 - "TRANS_TYPE,"+ // 06 - "START_POINT,"+ // 07 - "END_POINT,"+ // 08 - "SEGUE_START_POINT,"+ // 09 - "SEGUE_END_POINT,"+ // 10 - "TYPE,"+ // 11 - "COMMENT,"+ // 12 - "LABEL,"+ // 13 - "GRACE_TIME,"+ // 14 - "SOURCE,"+ // 15 - "EXT_START_TIME,"+ // 16 - "EXT_LENGTH,"+ // 17 - "EXT_DATA,"+ // 18 - "EXT_EVENT_ID,"+ // 19 - "EXT_ANNC_TYPE,"+ // 20 - "EXT_CART_NAME,"+ // 21 - "FADEUP_POINT,"+ // 22 - "FADEUP_GAIN,"+ // 23 - "FADEDOWN_POINT,"+ // 24 - "FADEDOWN_GAIN,"+ // 25 - "SEGUE_GAIN,"+ // 26 - "LINK_EVENT_NAME,"+ // 27 - "LINK_START_TIME,"+ // 28 - "LINK_LENGTH,"+ // 29 - "LINK_ID,"+ // 30 - "LINK_EMBEDDED,"+ // 31 - "ORIGIN_USER,"+ // 32 - "ORIGIN_DATETIME,"+ // 33 - "LINK_START_SLOP,"+ // 34 - "LINK_END_SLOP,"+ // 35 - "DUCK_UP_GAIN,"+ // 36 - "DUCK_DOWN_GAIN,"+ // 37 - "EVENT_LENGTH) "+ // 38 + "`LOG_NAME`,"+ // 00 + "`LINE_ID`,"+ // 01 + "`COUNT`,"+ // 02 + "`CART_NUMBER`,"+ // 03 + "`START_TIME`,"+ // 04 + "`TIME_TYPE`,"+ // 05 + "`TRANS_TYPE`,"+ // 06 + "`START_POINT`,"+ // 07 + "`END_POINT`,"+ // 08 + "`SEGUE_START_POINT`,"+ // 09 + "`SEGUE_END_POINT`,"+ // 10 + "`TYPE`,"+ // 11 + "`COMMENT`,"+ // 12 + "`LABEL`,"+ // 13 + "`GRACE_TIME`,"+ // 14 + "`SOURCE`,"+ // 15 + "`EXT_START_TIME`,"+ // 16 + "`EXT_LENGTH`,"+ // 17 + "`EXT_DATA`,"+ // 18 + "`EXT_EVENT_ID`,"+ // 19 + "`EXT_ANNC_TYPE`,"+ // 20 + "`EXT_CART_NAME`,"+ // 21 + "`FADEUP_POINT`,"+ // 22 + "`FADEUP_GAIN`,"+ // 23 + "`FADEDOWN_POINT`,"+ // 24 + "`FADEDOWN_GAIN`,"+ // 25 + "`SEGUE_GAIN`,"+ // 26 + "`LINK_EVENT_NAME`,"+ // 27 + "`LINK_START_TIME`,"+ // 28 + "`LINK_LENGTH`,"+ // 29 + "`LINK_ID`,"+ // 30 + "`LINK_EMBEDDED`,"+ // 31 + "`ORIGIN_USER`,"+ // 32 + "`ORIGIN_DATETIME`,"+ // 33 + "`LINK_START_SLOP`,"+ // 34 + "`LINK_END_SLOP`,"+ // 35 + "`DUCK_UP_GAIN`,"+ // 36 + "`DUCK_DOWN_GAIN`,"+ // 37 + "`EVENT_LENGTH`) "+ // 38 "values "+values; q=new RDSqlQuery(sql); delete q; @@ -1408,7 +1406,7 @@ void RDLogModel::InsertLineValues(QString *query, int line) // one line to save query space RDLogLine *ll=d_log_lines[line]; QString sql=QString("(")+ - "\""+RDEscapeString(d_log_name)+"\","+ + "'"+RDEscapeString(d_log_name)+"',"+ QString().sprintf("%d,",ll->id())+ QString().sprintf("%d,",line)+ QString().sprintf("%u,",ll->cartNumber())+ @@ -1420,27 +1418,27 @@ void RDLogModel::InsertLineValues(QString *query, int line) QString().sprintf("%d,",ll->segueStartPoint(RDLogLine::LogPointer))+ QString().sprintf("%d,",ll->segueEndPoint(RDLogLine::LogPointer))+ QString().sprintf("%d,",ll->type())+ - "\""+RDEscapeString(ll->markerComment())+"\","+ - "\""+RDEscapeString(ll->markerLabel())+"\","+ + "'"+RDEscapeString(ll->markerComment())+"',"+ + "'"+RDEscapeString(ll->markerLabel())+"',"+ QString().sprintf("%d,",ll->graceTime())+ QString().sprintf("%d,",ll->source())+ RDCheckDateTime(ll->extStartTime(),"hh:mm:ss")+","+ QString().sprintf("%d,",ll->extLength())+ - "\""+RDEscapeString(ll->extData())+"\","+ - "\""+RDEscapeString(ll->extEventId())+"\","+ - "\""+RDEscapeString(ll->extAnncType())+"\","+ - "\""+RDEscapeString(ll->extCartName())+"\","+ + "'"+RDEscapeString(ll->extData())+"',"+ + "'"+RDEscapeString(ll->extEventId())+"',"+ + "'"+RDEscapeString(ll->extAnncType())+"',"+ + "'"+RDEscapeString(ll->extCartName())+"',"+ QString().sprintf("%d,",ll->fadeupPoint(RDLogLine::LogPointer))+ QString().sprintf("%d,",ll->fadeupGain())+ QString().sprintf("%d,",ll->fadedownPoint(RDLogLine::LogPointer))+ QString().sprintf("%d,",ll->fadedownGain())+ QString().sprintf("%d,",ll->segueGain())+ - "\""+RDEscapeString(ll->linkEventName())+"\","+ + "'"+RDEscapeString(ll->linkEventName())+"',"+ QString().sprintf("%d,",QTime().msecsTo(ll->linkStartTime()))+ QString().sprintf("%d,",ll->linkLength())+ QString().sprintf("%d,",ll->linkId())+ - "\""+RDYesNo(ll->linkEmbedded())+"\","+ - "\""+RDEscapeString(ll->originUser())+"\","+ + "'"+RDYesNo(ll->linkEmbedded())+"',"+ + "'"+RDEscapeString(ll->originUser())+"',"+ RDCheckDateTime(ll->originDateTime(),"yyyy-MM-dd hh:mm:ss")+","+ QString().sprintf("%d,",ll->linkStartSlop())+ QString().sprintf("%d,",ll->linkEndSlop())+ @@ -1466,7 +1464,11 @@ void RDLogModel::LoadNowNext(unsigned from_line) // // Load the Lookup Table // - RDSqlQuery *q=new RDSqlQuery("select NAME,ENABLE_NOW_NEXT from GROUPS"); + QString sql=QString("select ")+ + "`NAME`,"+ // 00 + "`ENABLE_NOW_NEXT` "+ // 01 + "from `GROUPS`"; + RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { groups.push_back(QString(q->value(0).toString())); now_nexts.push_back(RDBool(q->value(1).toString())); diff --git a/lib/rdlogplay.cpp b/lib/rdlogplay.cpp index 487ea0d4..ea0aa593 100644 --- a/lib/rdlogplay.cpp +++ b/lib/rdlogplay.cpp @@ -2,7 +2,7 @@ // // Rivendell Log Playout Machine // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,11 +18,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include - -#include - #include "rdapplication.h" #include "rdconf.h" #include "rddb.h" @@ -2996,8 +2991,8 @@ void RDLogPlay::ClearChannel(int deckid) RDLogLine::TransType RDLogPlay::GetTransType(const QString &logname,int line) { RDLogLine::TransType trans=RDLogLine::Stop; - QString sql=QString("select TRANS_TYPE from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(logname)+"\" && "+ + QString sql=QString("select `TRANS_TYPE` from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(logname)+"' && "+ QString().sprintf("COUNT=%d",line); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { @@ -3336,41 +3331,41 @@ void RDLogPlay::LogTraffic(RDLogLine *logline,RDLogLine::PlaySource src, evt_sql=RDCheckDateTime(QDateTime(datetime.date(), logline->startTime(RDLogLine::Actual)), "yyyy-MM-dd hh:mm:ss"); } - sql=QString("insert into ELR_LINES set ")+ - "SERVICE_NAME=\""+RDEscapeString(serviceName())+"\","+ - QString().sprintf("LENGTH=%d,",length)+ - "LOG_NAME=\""+RDEscapeString(logName())+"\","+ - QString().sprintf("LOG_ID=%d,",logline->id())+ - QString().sprintf("CART_NUMBER=%u,",logline->cartNumber())+ - "STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\","+ - "EVENT_DATETIME="+evt_sql+","+ - QString().sprintf("EVENT_TYPE=%d,",action)+ - QString().sprintf("EVENT_SOURCE=%d,",logline->source())+ - "EXT_START_TIME="+RDCheckDateTime(logline->extStartTime(),"hh:mm:ss")+","+ - QString().sprintf("EXT_LENGTH=%d,",logline->extLength())+ - "EXT_DATA=\""+RDEscapeString(logline->extData())+"\","+ - "EXT_EVENT_ID=\""+RDEscapeString(logline->extEventId())+"\","+ - "EXT_ANNC_TYPE=\""+RDEscapeString(logline->extAnncType())+"\","+ - QString().sprintf("PLAY_SOURCE=%d,",src)+ - QString().sprintf("CUT_NUMBER=%d,",logline->cutNumber())+ - "EXT_CART_NAME=\""+RDEscapeString(logline->extCartName())+"\","+ - "TITLE=\""+RDEscapeString(logline->title())+"\","+ - "ARTIST=\""+RDEscapeString(logline->artist())+"\","+ - "SCHEDULED_TIME="+RDCheckDateTime(logline->startTime(RDLogLine::Logged), + sql=QString("insert into `ELR_LINES` set ")+ + "`SERVICE_NAME`='"+RDEscapeString(serviceName())+"',"+ + QString().sprintf("`LENGTH`=%d,",length)+ + "`LOG_NAME`='"+RDEscapeString(logName())+"',"+ + QString().sprintf("`LOG_ID`=%d,",logline->id())+ + QString().sprintf("`CART_NUMBER`=%u,",logline->cartNumber())+ + "`STATION_NAME`='"+RDEscapeString(rda->station()->name())+"',"+ + "`EVENT_DATETIME`="+evt_sql+","+ + QString().sprintf("`EVENT_TYPE`=%d,",action)+ + QString().sprintf("`EVENT_SOURCE`=%d,",logline->source())+ + "`EXT_START_TIME`="+RDCheckDateTime(logline->extStartTime(),"hh:mm:ss")+","+ + QString().sprintf("`EXT_LENGTH`=%d,",logline->extLength())+ + "`EXT_DATA`='"+RDEscapeString(logline->extData())+"',"+ + "`EXT_EVENT_ID`='"+RDEscapeString(logline->extEventId())+"',"+ + "`EXT_ANNC_TYPE`='"+RDEscapeString(logline->extAnncType())+"',"+ + QString().sprintf("`PLAY_SOURCE`=%d,",src)+ + QString().sprintf("`CUT_NUMBER`=%d,",logline->cutNumber())+ + "`EXT_CART_NAME`='"+RDEscapeString(logline->extCartName())+"',"+ + "`TITLE`='"+RDEscapeString(logline->title())+"',"+ + "`ARTIST`='"+RDEscapeString(logline->artist())+"',"+ + "`SCHEDULED_TIME`="+RDCheckDateTime(logline->startTime(RDLogLine::Logged), "hh:mm:ss")+","+ - "ISRC=\""+RDEscapeString(logline->isrc())+"\","+ - "PUBLISHER=\""+RDEscapeString(logline->publisher())+"\","+ - "COMPOSER=\""+RDEscapeString(logline->composer())+"\","+ - QString().sprintf("USAGE_CODE=%d,",logline->usageCode())+ - QString().sprintf("START_SOURCE=%d,",logline->startSource())+ - "ONAIR_FLAG=\""+RDYesNo(onair_flag)+"\","+ - "ALBUM=\""+RDEscapeString(logline->album())+"\","+ - "LABEL=\""+RDEscapeString(logline->label())+"\","+ - "USER_DEFINED=\""+RDEscapeString(logline->userDefined())+"\","+ - "CONDUCTOR=\""+RDEscapeString(logline->conductor())+"\","+ - "SONG_ID=\""+RDEscapeString(logline->songId())+"\","+ - "DESCRIPTION=\""+RDEscapeString(logline->description())+"\","+ - "OUTCUE=\""+RDEscapeString(logline->outcue())+"\","+ - "ISCI=\""+RDEscapeString(logline->isci())+"\""; + "`ISRC`='"+RDEscapeString(logline->isrc())+"',"+ + "`PUBLISHER`='"+RDEscapeString(logline->publisher())+"',"+ + "`COMPOSER`='"+RDEscapeString(logline->composer())+"',"+ + QString().sprintf("`USAGE_CODE`=%d,",logline->usageCode())+ + QString().sprintf("`START_SOURCE`=%d,",logline->startSource())+ + "`ONAIR_FLAG`='"+RDYesNo(onair_flag)+"',"+ + "`ALBUM`='"+RDEscapeString(logline->album())+"',"+ + "`LABEL`='"+RDEscapeString(logline->label())+"',"+ + "`USER_DEFINED`='"+RDEscapeString(logline->userDefined())+"',"+ + "`CONDUCTOR`='"+RDEscapeString(logline->conductor())+"',"+ + "`SONG_ID`='"+RDEscapeString(logline->songId())+"',"+ + "`DESCRIPTION`='"+RDEscapeString(logline->description())+"',"+ + "`OUTCUE`='"+RDEscapeString(logline->outcue())+"',"+ + "`ISCI`='"+RDEscapeString(logline->isci())+"'"; RDSqlQuery::apply(sql); } diff --git a/lib/rdmacro_event.cpp b/lib/rdmacro_event.cpp index 06d4951f..1b81a9a0 100644 --- a/lib/rdmacro_event.cpp +++ b/lib/rdmacro_event.cpp @@ -18,12 +18,10 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - -#include -#include -#include -#include +#include "rddb.h" +#include "rdescape_string.h" +#include "rdmacro_event.h" +#include "rdstation.h" RDMacroEvent::RDMacroEvent(RDRipc *ripc,QObject *parent) : QObject(parent) @@ -136,7 +134,8 @@ bool RDMacroEvent::load(const QString &str) bool RDMacroEvent::load(unsigned cartnum) { QString sql=QString(). - sprintf("select MACROS from CART where (NUMBER=%d)&&(TYPE=2)",cartnum); + sprintf("select `MACROS` from `CART` where (`NUMBER`=%d)&&(`TYPE`=2)", + cartnum); RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -244,9 +243,9 @@ void RDMacroEvent::exec(int line) rml.setAddress(addr); } else { - sql=QString("select VARVALUE from HOSTVARS where ")+ - "(STATION_NAME=\""+RDEscapeString(event_ripc->station())+"\")&&"+ - "(NAME=\""+RDEscapeString(stationname)+"\")"; + sql=QString("select `VARVALUE` from `HOSTVARS` where ")+ + "(`STATION_NAME`='"+RDEscapeString(event_ripc->station())+"')&&"+ + "(`NAME`='"+RDEscapeString(stationname)+"')"; q=new RDSqlQuery(sql); if(q->first()) { stationname=q->value(0).toString(); @@ -290,7 +289,7 @@ void RDMacroEvent::stop() { // // This will work only for 'Sleep' [SP] macros -- all others are - // assumed to execute 'instaneously', and hence trying to 'stop' + // assumed to execute 'instantaneously', and hence trying to 'stop' // them would make no sense. // if(event_sleep_timer->isActive()) { diff --git a/lib/rdmacrocartmodel.cpp b/lib/rdmacrocartmodel.cpp index 6358869e..9a714118 100644 --- a/lib/rdmacrocartmodel.cpp +++ b/lib/rdmacrocartmodel.cpp @@ -207,9 +207,9 @@ void RDMacroCartModel::refresh(const QModelIndex &row,const QString &rml) void RDMacroCartModel::save() const { - QString sql=QString("update CART set ")+ - "MACROS=\""+RDEscapeString(allCode())+"\" where "+ - QString().sprintf("NUMBER=%u",d_cart_number); + QString sql=QString("update `CART` set ")+ + "`MACROS`=\""+RDEscapeString(allCode())+"\" where "+ + QString().sprintf("`NUMBER`=%u",d_cart_number); RDSqlQuery::apply(sql); } @@ -222,9 +222,9 @@ void RDMacroCartModel::updateModel() } QString sql=QString("select ")+ - "MACROS "+ // 00 - "from CART where "+ - QString().sprintf("NUMBER=%u",d_cart_number); + "`MACROS` "+ // 00 + "from `CART` where "+ + QString().sprintf("`NUMBER`=%u",d_cart_number); beginResetModel(); d_texts.clear(); RDSqlQuery *q=new RDSqlQuery(sql); diff --git a/lib/rdmarkerplayer.cpp b/lib/rdmarkerplayer.cpp index c8d79aa7..02d4f5e5 100644 --- a/lib/rdmarkerplayer.cpp +++ b/lib/rdmarkerplayer.cpp @@ -240,20 +240,20 @@ bool RDMarkerPlayer::setCut(unsigned cartnum,int cutnum) RDSetMixerOutputPort(rda->cae(),d_cards.first(),d_cae_stream,d_port); QString sql=QString("select ")+ - "START_POINT,"+ // 00 - "END_POINT,"+ // 01 - "TALK_START_POINT,"+ // 02 - "TALK_END_POINT,"+ // 03 - "SEGUE_START_POINT,"+ // 04 - "SEGUE_END_POINT,"+ // 05 - "HOOK_START_POINT,"+ // 06 - "HOOK_END_POINT,"+ // 07 - "FADEUP_POINT,"+ // 08 - "FADEDOWN_POINT,"+ // 09 - "SEGUE_GAIN,"+ // 10 - "PLAY_GAIN "+ // 11 - "from CUTS where "+ - "CUT_NAME=\""+RDEscapeString(RDCut::cutName(cartnum,cutnum))+"\""; + "`START_POINT`,"+ // 00 + "`END_POINT`,"+ // 01 + "`TALK_START_POINT`,"+ // 02 + "`TALK_END_POINT`,"+ // 03 + "`SEGUE_START_POINT`,"+ // 04 + "`SEGUE_END_POINT`,"+ // 05 + "`HOOK_START_POINT`,"+ // 06 + "`HOOK_END_POINT`,"+ // 07 + "`FADEUP_POINT`,"+ // 08 + "`FADEDOWN_POINT`,"+ // 09 + "`SEGUE_GAIN`,"+ // 10 + "`PLAY_GAIN` "+ // 11 + "from `CUTS` where "+ + "`CUT_NAME`='"+RDEscapeString(RDCut::cutName(cartnum,cutnum))+"'"; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { for(int i=0;ifirst()) { ret=true; diff --git a/lib/rdmatrix.cpp b/lib/rdmatrix.cpp index 8e46773e..3e28a0fa 100644 --- a/lib/rdmatrix.cpp +++ b/lib/rdmatrix.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Switcher Matrix // -// (C) Copyright 2002-2019 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,9 +18,9 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include +#include "rddb.h" +#include "rdescape_string.h" +#include "rdmatrix.h" // // Control Grids @@ -183,10 +183,10 @@ RDMatrix::RDMatrix(const QString &station,int matrix) RDSqlQuery *q=NULL; sql=QString("select ")+ - "ID "+ // 00 - "from MATRICES where "+ - "STATION_NAME=\""+RDEscapeString(station)+"\" && "+ - QString().sprintf("MATRIX=%d",matrix); + "`ID` "+ // 00 + "from `MATRICES` where "+ + "`STATION_NAME`='"+RDEscapeString(station)+"' && "+ + QString().sprintf("`MATRIX`=%d",matrix); q=new RDSqlQuery(sql); if(q->first()) { mx_id=q->value(0).toInt(); @@ -208,10 +208,10 @@ RDMatrix::RDMatrix(int matrix_id) RDSqlQuery *q=NULL; sql=QString("select ")+ - "STATION_NAME," // 00 - "MATRIX "+ /// 01 - "from MATRICES where "+ - QString().sprintf("ID=%d",matrix_id); + "`STATION_NAME`," // 00 + "`MATRIX` "+ /// 01 + "from `MATRICES` where "+ + QString().sprintf("`ID`=%d",matrix_id); q=new RDSqlQuery(sql); if(q->first()) { mx_station=q->value(0).toString(); @@ -531,10 +531,10 @@ QString RDMatrix::inputName(int input) const RDMatrix::Mode RDMatrix::inputMode(int input) const { - 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); + 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; @@ -888,10 +888,10 @@ int RDMatrix::defaultControlValue(RDMatrix::Type type, QString RDMatrix::GetEndpointName(int pointnum,const QString &table) const { - QString sql=QString("select NAME from ")+table+" where "+ - "STATION_NAME=\""+RDEscapeString(mx_station)+"\" && "+ - QString().sprintf("MATRIX=%d && ",mx_number)+ - QString().sprintf("NUMBER=%d",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; @@ -906,9 +906,9 @@ QString RDMatrix::GetEndpointName(int pointnum,const QString &table) const QVariant RDMatrix::GetRow(const QString ¶m) const { QVariant var; - QString sql=QString("select ")+param+" from MATRICES where "+ - "STATION_NAME=\""+RDEscapeString(mx_station)+"\" && "+ - QString().sprintf("MATRIX=%d",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); @@ -920,41 +920,35 @@ QVariant RDMatrix::GetRow(const QString ¶m) const void RDMatrix::SetRow(const QString ¶m,const QString &value) const { - RDSqlQuery *q; QString sql; - 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; + sql=QString("update `MATRICES` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`STATION_NAME`='"+RDEscapeString(mx_station)+"' && "+ + QString().sprintf("`MATRIX`=%d",mx_number); + RDSqlQuery::apply(sql); } void RDMatrix::SetRow(const QString ¶m,int value) const { - RDSqlQuery *q; QString sql; - 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; + sql=QString("update `MATRICES` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`STATION_NAME`='"+RDEscapeString(mx_station)+"' && "+ + QString().sprintf("`MATRIX`=%d",mx_number); + RDSqlQuery::apply(sql); } void RDMatrix::SetRow(const QString ¶m,unsigned value) const { - RDSqlQuery *q; QString 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; + sql=QString("update `MATRICES` set `")+ + param+QString().sprintf("`=%u where ",value)+ + "`STATION_NAME`='"+RDEscapeString(mx_station)+"' && "+ + QString().sprintf("`MATRIX`=%d",mx_number); + RDSqlQuery::apply(sql); } diff --git a/lib/rdmatrixlistmodel.cpp b/lib/rdmatrixlistmodel.cpp index 0494e1ed..5fb2c7d5 100644 --- a/lib/rdmatrixlistmodel.cpp +++ b/lib/rdmatrixlistmodel.cpp @@ -218,7 +218,7 @@ void RDMatrixListModel::refresh(const QModelIndex &row) if(row.row()first()) { updateRow(row.row(),q); @@ -248,8 +248,8 @@ void RDMatrixListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields()+ "where "+ - "STATION_NAME=\""+RDEscapeString(d_station_name)+"\" "+ - "order by MATRICES.NAME "; + "`STATION_NAME`='"+RDEscapeString(d_station_name)+"' "+ + "order by `MATRICES`.`NAME` "; beginResetModel(); d_ids.clear(); d_texts.clear(); @@ -277,7 +277,7 @@ void RDMatrixListModel::updateRowLine(int line) if(linefirst()) { updateRow(line,q); @@ -321,15 +321,15 @@ void RDMatrixListModel::updateRow(int row,RDSqlQuery *q) QString RDMatrixListModel::sqlFields() const { QString sql=QString("select ")+ - "MATRICES.ID,"+ // 00 - "MATRICES.NAME,"+ // 01 - "MATRICES.MATRIX,"+ // 02 - "MATRICES.TYPE,"+ // 03 - "MATRICES.INPUTS,"+ // 04 - "MATRICES.OUTPUTS,"+ // 05 - "MATRICES.GPIS,"+ // 06 - "MATRICES.GPOS "+ // 07 - "from MATRICES "; + "`MATRICES`.`ID`,"+ // 00 + "`MATRICES`.`NAME`,"+ // 01 + "`MATRICES`.`MATRIX`,"+ // 02 + "`MATRICES`.`TYPE`,"+ // 03 + "`MATRICES`.`INPUTS`,"+ // 04 + "`MATRICES`.`OUTPUTS`,"+ // 05 + "`MATRICES`.`GPIS`,"+ // 06 + "`MATRICES`.`GPOS` "+ // 07 + "from `MATRICES` "; return sql; } diff --git a/lib/rdnodelistmodel.cpp b/lib/rdnodelistmodel.cpp index 31de09c1..2978d763 100644 --- a/lib/rdnodelistmodel.cpp +++ b/lib/rdnodelistmodel.cpp @@ -194,7 +194,7 @@ void RDNodeListModel::refresh(const QModelIndex &row) if(row.row()first()) { updateRow(row.row(),q); @@ -223,9 +223,9 @@ void RDNodeListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields()+ - "where STATION_NAME=\""+RDEscapeString(d_mtx->station())+"\" && "+ - QString().sprintf("MATRIX=%d ",d_mtx->matrix())+ - "order by DESCRIPTION "; + "where `STATION_NAME`='"+RDEscapeString(d_mtx->station())+"' && "+ + QString().sprintf("`MATRIX`=%d ",d_mtx->matrix())+ + "order by `DESCRIPTION` "; beginResetModel(); d_texts.clear(); q=new RDSqlQuery(sql); @@ -244,7 +244,7 @@ void RDNodeListModel::updateRowLine(int line) if(linefirst()) { updateRow(line,q); @@ -275,11 +275,11 @@ void RDNodeListModel::updateRow(int row,RDSqlQuery *q) QString RDNodeListModel::sqlFields() const { QString sql=QString("select ")+ - "ID," // 00 - "DESCRIPTION,"+ // 01 - "HOSTNAME,"+ // 02 - "BASE_OUTPUT " // 03 - "from SWITCHER_NODES "; + "`ID`," // 00 + "`DESCRIPTION`,"+ // 01 + "`HOSTNAME`,"+ // 02 + "`BASE_OUTPUT` " // 03 + "from `SWITCHER_NODES` "; return sql; } diff --git a/lib/rdpodcast.cpp b/lib/rdpodcast.cpp index 87a316f6..124ad662 100644 --- a/lib/rdpodcast.cpp +++ b/lib/rdpodcast.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Podcast // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,12 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - #include -#include - #include "rdapplication.h" #include "rdconf.h" #include "rddb.h" @@ -62,10 +58,11 @@ RDPodcast::RDPodcast(RDConfig *config,unsigned id) QString sql; podcast_id=id; - sql=QString().sprintf("select FEEDS.KEY_NAME from \ - PODCASTS left join FEEDS \ - on (PODCASTS.FEED_ID=FEEDS.ID) \ - where PODCASTS.ID=%u",id); + sql=QString("select ")+ + "`FEEDS`.KEY_NAME "+ + "from `PODCASTS` left join `FEEDS` "+ + "on (`PODCASTS`.`FEED_ID`=`FEEDS`.`ID`) "+ + QString().sprintf("where `PODCASTS`.`ID`=%u",id); q=new RDSqlQuery(sql); if(q->first()) { podcast_keyname=q->value(0).toString(); @@ -533,9 +530,9 @@ void RDPodcast::SetRow(const QString ¶m,int value) const { QString sql; - sql=QString("update PODCASTS set ")+ - param+QString().sprintf("=%d where ",value)+ - QString().sprintf("ID=%u",podcast_id); + sql=QString("update `PODCASTS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + QString().sprintf("`ID`=%u",podcast_id); RDSqlQuery::apply(sql); } @@ -545,14 +542,14 @@ void RDPodcast::SetRow(const QString ¶m,const QString &value) const QString sql; if(value.isNull()) { - sql=QString("update PODCASTS set ")+ - param+"=NULL where "+ - QString().sprintf("ID=%u",podcast_id); + sql=QString("update `PODCASTS` set `")+ + param+"`=NULL where "+ + QString().sprintf("`ID`=%u",podcast_id); } else { - sql=QString("update PODCASTS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - QString().sprintf("ID=%u",podcast_id); + sql=QString("update `PODCASTS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + QString().sprintf("`ID`=%u",podcast_id); } RDSqlQuery::apply(sql); } @@ -564,14 +561,14 @@ void RDPodcast::SetRow(const QString ¶m,const QDateTime &value, QString sql; if(value.isNull()) { - sql=QString("update PODCASTS set ")+ + sql=QString("update `PODCASTS` set ")+ param+"=NULL"+" where "+ - QString().sprintf("ID=%u",podcast_id); + QString().sprintf("`ID`=%u",podcast_id); } else { - sql=QString("update PODCASTS set ")+ - param+"="+RDCheckDateTime(value, format)+" where "+ - QString().sprintf("ID=%u",podcast_id); + sql=QString("update `PODCASTS` set `")+ + param+"`="+RDCheckDateTime(value, format)+" where "+ + QString().sprintf("`ID`=%u",podcast_id); } RDSqlQuery::apply(sql); } diff --git a/lib/rdpodcastlistmodel.cpp b/lib/rdpodcastlistmodel.cpp index 4718d45a..c48c0049 100644 --- a/lib/rdpodcastlistmodel.cpp +++ b/lib/rdpodcastlistmodel.cpp @@ -228,7 +228,7 @@ void RDPodcastListModel::refresh(const QModelIndex &row) if(row.row()first()) { updateRow(row.row(),q); @@ -300,9 +300,9 @@ void RDPodcastListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields()+ "where "+ - QString().sprintf("PODCASTS.FEED_ID=%u ",d_feed_id)+ + QString().sprintf("`PODCASTS`.`FEED_ID`=%u ",d_feed_id)+ d_filter_sql+ - " order by PODCASTS.ORIGIN_DATETIME desc"; + " order by `PODCASTS`.`ORIGIN_DATETIME` desc"; beginResetModel(); d_cast_ids.clear(); d_texts.clear(); @@ -324,7 +324,7 @@ void RDPodcastListModel::updateRowLine(int line) if(linefirst()) { updateRow(line,q); @@ -426,23 +426,23 @@ void RDPodcastListModel::updateRow(int row,RDSqlQuery *q) QString RDPodcastListModel::sqlFields() const { QString sql=QString("select ")+ - "PODCASTS.ID,"+ // 00 - "PODCASTS.STATUS,"+ // 01 - "PODCASTS.ITEM_TITLE,"+ // 02 - "PODCASTS.EFFECTIVE_DATETIME,"+ // 03 - "PODCASTS.EXPIRATION_DATETIME,"+ // 04 - "PODCASTS.AUDIO_TIME,"+ // 05 - "PODCASTS.ITEM_DESCRIPTION,"+ // 06 - "FEEDS.KEY_NAME,"+ // 07 - "PODCASTS.ITEM_CATEGORY,"+ // 08 - "PODCASTS.ORIGIN_LOGIN_NAME,"+ // 09 - "PODCASTS.ORIGIN_STATION,"+ // 10 - "PODCASTS.ORIGIN_DATETIME,"+ // 11 - "PODCASTS.SHA1_HASH,"+ // 12 - "FEED_IMAGES.DATA "+ // 13 - "from PODCASTS left join FEEDS "+ - "on PODCASTS.FEED_ID=FEEDS.ID left join FEED_IMAGES "+ - "on PODCASTS.ITEM_IMAGE_ID=FEED_IMAGES.ID "; + "`PODCASTS`.`ID`,"+ // 00 + "`PODCASTS`.`STATUS`,"+ // 01 + "`PODCASTS`.`ITEM_TITLE`,"+ // 02 + "`PODCASTS`.`EFFECTIVE_DATETIME`,"+ // 03 + "`PODCASTS`.`EXPIRATION_DATETIME`,"+ // 04 + "`PODCASTS`.`AUDIO_TIME`,"+ // 05 + "`PODCASTS`.`ITEM_DESCRIPTION`,"+ // 06 + "`FEEDS`.`KEY_NAME`,"+ // 07 + "`PODCASTS`.`ITEM_CATEGORY`,"+ // 08 + "`PODCASTS`.`ORIGIN_LOGIN_NAME`,"+ // 09 + "`PODCASTS`.`ORIGIN_STATION`,"+ // 10 + "`PODCASTS`.`ORIGIN_DATETIME`,"+ // 11 + "`PODCASTS`.`SHA1_HASH`,"+ // 12 + "`FEED_IMAGES`.`DATA` "+ // 13 + "from `PODCASTS` left join `FEEDS` "+ + "on `PODCASTS`.`FEED_ID`=`FEEDS`.`ID` left join `FEED_IMAGES` "+ + "on `PODCASTS`.`ITEM_IMAGE_ID`=`FEED_IMAGES`.`ID` "; return sql; } diff --git a/lib/rdrecording.cpp b/lib/rdrecording.cpp index 84780c76..c7322102 100644 --- a/lib/rdrecording.cpp +++ b/lib/rdrecording.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Netcatch Recording. // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,16 +18,13 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - -#include - -#include -#include -#include -#include -#include -#include +#include "rd.h" +#include "rdapplication.h" +#include "rdconf.h" +#include "rddb.h" +#include "rddeck.h" +#include "rdescape_string.h" +#include "rdrecording.h" // // Global Classes @@ -46,11 +43,11 @@ RDRecording::RDRecording(int id,bool create) } if(create) { - sql=QString().sprintf("select ID from RECORDINGS where ID=%d",rec_id); + sql=QString().sprintf("select `ID` from `RECORDINGS` where `ID`=%d",rec_id); q=new RDSqlQuery(sql); if(q->size()!=1) { delete q; - sql=QString().sprintf("insert into RECORDINGS set ID=%d",rec_id); + sql=QString().sprintf("insert into `RECORDINGS` set `ID`=%d",rec_id); q=new RDSqlQuery(sql); } delete q; @@ -654,8 +651,8 @@ void RDRecording::setFeedId(int id) const void RDRecording::setFeedId(const QString &keyname) const { - QString sql=QString("select ID from FEEDS where ")+ - "KEY_NAME=\""+RDEscapeString(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()); @@ -670,7 +667,7 @@ void RDRecording::setFeedId(const QString &keyname) const QString RDRecording::feedKeyName() const { QString ret; - QString sql=QString().sprintf("select KEY_NAME from FEEDS where ID=%d", + QString sql=QString().sprintf("select `KEY_NAME` from `FEEDS` where `ID`=%d", feedId()); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { @@ -793,9 +790,9 @@ int RDRecording::GetIntValue(QString field) const RDSqlQuery *q; int accum; - sql=QString("select ")+ - field+" from RECORDINGS where "+ - QString().sprintf("ID=%d",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(); @@ -813,9 +810,9 @@ unsigned RDRecording::GetUIntValue(QString field) const RDSqlQuery *q; int accum; - sql=QString("select ")+ - field+" from RECORDINGS where "+ - QString().sprintf("ID=%d",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(); @@ -833,9 +830,9 @@ bool RDRecording::GetBoolValue(QString field) const RDSqlQuery *q; bool state; - sql=QString("select ")+ - field+" from RECORDINGS where "+ - QString().sprintf("ID=%d",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()); @@ -853,9 +850,9 @@ QString RDRecording::GetStringValue(QString field) const RDSqlQuery *q; QString accum; - sql=QString("select ")+ - field+" from RECORDINGS where "+ - QString().sprintf("ID=%d",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(); @@ -873,9 +870,9 @@ QTime RDRecording::GetTimeValue(QString field) const RDSqlQuery *q; QTime accum; - sql=QString("select ")+ - field+" from RECORDINGS where "+ - QString().sprintf("ID=%d",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(); @@ -890,85 +887,65 @@ QTime RDRecording::GetTimeValue(QString field) const int RDRecording::AddRecord() const { QString sql; - RDSqlQuery *q; - int n; - sql=QString("select ID from RECORDINGS order by ID desc limit 1"); - q=new RDSqlQuery(sql); - if(q->first()) { - n=q->value(0).toInt()+1; - } - else { - n=1; - } - delete q; - sql=QString().sprintf("insert into RECORDINGS set ID=%d",n); - q=new RDSqlQuery(sql); - delete q; - return n; + sql=QString("insert into `RECORDINGS` set ")+ + "`STATION_NAME`='"+RDEscapeString(rda->station()->name())+"',"+ + "`CHANNEL`=0,"+ + "`CUT_NAME`=''"; + return RDSqlQuery::run(sql).toUInt(); } void RDRecording::SetRow(const QString ¶m,int value) const { - RDSqlQuery *q; QString sql; - sql=QString("update RECORDINGS set ")+ - param+QString().sprintf("=%d where ",value)+ - QString().sprintf("ID=%d",rec_id); - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `RECORDINGS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + QString().sprintf("`ID`=%d",rec_id); + RDSqlQuery::apply(sql); } void RDRecording::SetRow(const QString ¶m,unsigned value) const { - RDSqlQuery *q; QString sql; - sql=QString("update RECORDINGS set ")+ - param+QString().sprintf("=%u where ",value)+ - QString().sprintf("ID=%d",rec_id); - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `RECORDINGS` set `")+ + param+QString().sprintf("`=%u where ",value)+ + QString().sprintf("`ID`=%d",rec_id); + RDSqlQuery::apply(sql); } void RDRecording::SetRow(const QString ¶m,bool value) const { - RDSqlQuery *q; QString sql; - sql=QString("update RECORDINGS set ")+ - param+"=\""+RDYesNo(value)+"\" where "+ - QString().sprintf("ID=%d",rec_id); - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `RECORDINGS` set `")+ + param+"`='"+RDYesNo(value)+"' where "+ + QString().sprintf("`ID`=%d",rec_id); + RDSqlQuery::apply(sql); } void RDRecording::SetRow(const QString ¶m,const QString &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update RECORDINGS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - QString().sprintf("ID=%d",rec_id); - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `RECORDINGS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + QString().sprintf("`ID`=%d",rec_id); + RDSqlQuery::apply(sql); } void RDRecording::SetRow(const QString ¶m,const QTime &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update RECORDINGS set ")+ - param+"="+RDCheckDateTime(value,"hh:mm:ss")+" where "+ - QString().sprintf("ID=%d",rec_id); - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `RECORDINGS` set `")+ + param+"`="+RDCheckDateTime(value,"hh:mm:ss")+" where "+ + QString().sprintf("`ID`=%d",rec_id); + RDSqlQuery::apply(sql); } diff --git a/lib/rdreplcartlistmodel.cpp b/lib/rdreplcartlistmodel.cpp index 8af2c114..6bb6a45b 100644 --- a/lib/rdreplcartlistmodel.cpp +++ b/lib/rdreplcartlistmodel.cpp @@ -204,7 +204,7 @@ void RDReplCartListModel::refresh(const QModelIndex &row) { if(row.row()first()) { updateRow(row.row(),q); @@ -251,10 +251,10 @@ void RDReplCartListModel::refreshTimeoutData() int line; sql=QString("select ")+ - "ID,"+ // 00 - "ITEM_DATETIME "+ // 01 - "from REPL_CART_STATE where "+ - "REPLICATOR_NAME=\""+RDEscapeString(d_replicator_name)+"\""; + "`ID`,"+ // 00 + "`ITEM_DATETIME` "+ // 01 + "from `REPL_CART_STATE` where "+ + "`REPLICATOR_NAME`='"+RDEscapeString(d_replicator_name)+"'"; q=new RDSqlQuery(sql); while(q->next()) { if((line=d_ids.indexOf(q->value(0).toUInt()))>=0) { @@ -278,8 +278,8 @@ void RDReplCartListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields()+ "where "+ - "REPLICATOR_NAME=\""+RDEscapeString(d_replicator_name)+"\" "+ - "order by REPL_CART_STATE.CART_NUMBER "; + "`REPLICATOR_NAME`='"+RDEscapeString(d_replicator_name)+"' "+ + "order by `REPL_CART_STATE`.`CART_NUMBER` "; beginResetModel(); d_texts.clear(); q=new RDSqlQuery(sql); @@ -298,7 +298,7 @@ void RDReplCartListModel::updateRowLine(int line) { if(linefirst()) { updateRow(line,q); @@ -345,14 +345,14 @@ void RDReplCartListModel::updateRow(int row,RDSqlQuery *q) QString RDReplCartListModel::sqlFields() const { QString sql=QString("select ")+ - "REPL_CART_STATE.ID,"+ // 00 - "CART.TYPE,"+ // 01 - "REPL_CART_STATE.CART_NUMBER,"+ // 02 - "CART.TITLE,"+ // 03 - "REPL_CART_STATE.ITEM_DATETIME,"+ // 04 - "REPL_CART_STATE.POSTED_FILENAME "+ // 05 - "from REPL_CART_STATE left join CART "+ - "on REPL_CART_STATE.CART_NUMBER=CART.NUMBER "; + "`REPL_CART_STATE`.`ID`,"+ // 00 + "`CART`.`TYPE`,"+ // 01 + "`REPL_CART_STATE`.`CART_NUMBER`,"+ // 02 + "`CART`.`TITLE`,"+ // 03 + "`REPL_CART_STATE`.`ITEM_DATETIME`,"+ // 04 + "`REPL_CART_STATE`.`POSTED_FILENAME` "+ // 05 + "from `REPL_CART_STATE` left join `CART` "+ + "on `REPL_CART_STATE`.`CART_NUMBER`=`CART`.`NUMBER` "; return sql; } diff --git a/lib/rdreplicator.cpp b/lib/rdreplicator.cpp index 21e7da8f..310da1f2 100644 --- a/lib/rdreplicator.cpp +++ b/lib/rdreplicator.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell replicator configuration // -// (C) Copyright 2010,2016 Fred Gleason +// (C) Copyright 2010-2021 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 @@ -18,11 +18,10 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include -#include - -#include +#include "rdconf.h" +#include "rddb.h" +#include "rdescape_string.h" +#include "rdreplicator.h" RDReplicator::RDReplicator(const QString &name) { @@ -216,9 +215,9 @@ QString RDReplicator::typeString(RDReplicator::Type type) QVariant RDReplicator::GetValue(const QString &field) const { QVariant ret; - QString sql=QString("select ")+ - field+" from REPLICATORS where "+ - "NAME=\""+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); @@ -230,39 +229,32 @@ QVariant RDReplicator::GetValue(const QString &field) const void RDReplicator::SetRow(const QString ¶m,QString value) const { - RDSqlQuery *q; QString sql; - // 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; + sql=QString("update `REPLICATORS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`NAME`='"+RDEscapeString(replicator_name)+"'"; + RDSqlQuery::apply(sql); } void RDReplicator::SetRow(const QString ¶m,int value) const { - RDSqlQuery *q; QString sql; - sql=QString("update REPLICATORS set ")+ - param+QString().sprintf("=%d where ",value)+ - "NAME=\""+RDEscapeString(replicator_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `REPLICATORS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`NAME`='"+RDEscapeString(replicator_name)+"'"; + RDSqlQuery::apply(sql); } void RDReplicator::SetRow(const QString ¶m,unsigned value) const { - RDSqlQuery *q; QString sql; - sql=QString("update REPLICATORS set ")+ - param+QString().sprintf("=%u where ",value)+ - "NAME=\""+RDEscapeString(replicator_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `REPLICATORS` set `")+ + param+QString().sprintf("`=%u where ",value)+ + "`NAME`='"+RDEscapeString(replicator_name)+"'"; + RDSqlQuery::apply(sql); } diff --git a/lib/rdreplicatorlistmodel.cpp b/lib/rdreplicatorlistmodel.cpp index 59cbdcb2..ea714fea 100644 --- a/lib/rdreplicatorlistmodel.cpp +++ b/lib/rdreplicatorlistmodel.cpp @@ -194,9 +194,8 @@ void RDReplicatorListModel::refresh(const QModelIndex &row) { if(row.row()first()) { updateRow(row.row(),q); @@ -225,7 +224,7 @@ void RDReplicatorListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields(); - sql+="order by REPLICATORS.NAME "; + sql+="order by `REPLICATORS`.`NAME` "; beginResetModel(); d_texts.clear(); q=new RDSqlQuery(sql); @@ -242,8 +241,8 @@ void RDReplicatorListModel::updateRowLine(int line) { if(linefirst()) { updateRow(line,q); @@ -277,11 +276,11 @@ void RDReplicatorListModel::updateRow(int row,RDSqlQuery *q) QString RDReplicatorListModel::sqlFields() const { QString sql=QString("select ")+ - "REPLICATORS.NAME,"+ // 00 - "REPLICATORS.TYPE_ID,"+ // 01 - "REPLICATORS.DESCRIPTION,"+ // 02 - "REPLICATORS.STATION_NAME "+ // 03 - "from REPLICATORS "; + "`REPLICATORS`.`NAME`,"+ // 00 + "`REPLICATORS`.`TYPE_ID`,"+ // 01 + "`REPLICATORS`.`DESCRIPTION`,"+ // 02 + "`REPLICATORS`.`STATION_NAME` "+ // 03 + "from `REPLICATORS` "; return sql; } diff --git a/lib/rdreport.cpp b/lib/rdreport.cpp index 7bd0793c..5b146721 100644 --- a/lib/rdreport.cpp +++ b/lib/rdreport.cpp @@ -18,8 +18,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - #include #include "rdapplication.h" @@ -47,8 +45,8 @@ QString RDReport::name() const bool RDReport::exists() const { - QString sql=QString("select NAME from REPORTS where ")+ - "NAME=\""+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; @@ -321,9 +319,7 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, QString sql; RDSqlQuery *q; RDSqlQuery *q1; - RDSqlQuery *q2; RDSvc *svc; - // QString rec_name; QString daypart_sql; QString station_sql; QString group_sql; @@ -342,22 +338,21 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, for(int i=0;i<(startdate.daysTo(enddate)+1);i++) { QDate date=startdate.addDays(i); if(startTime()=\"")+ + daypart_sql+=QString("((`EVENT_DATETIME`>='")+ date.toString("yyyy-MM-dd")+ - " "+startTime().toString("hh:mm:ss")+"\")&&"+ - "(EVENT_DATETIME<\""+date.toString("yyyy-MM-dd")+ - " "+endTime().toString("hh:mm:ss")+"\"))||"; + " "+startTime().toString("hh:mm:ss")+"')&&"+ + "(`EVENT_DATETIME`<'"+date.toString("yyyy-MM-dd")+ + " "+endTime().toString("hh:mm:ss")+"'))||"; } else { - daypart_sql+=QString("((EVENT_DATETIME<=\"")+ + daypart_sql+=QString("((`EVENT_DATETIME`<='")+ date.toString("yyyy-MM-dd")+ - " "+endTime().toString("hh:mm:ss")+"\")&&"+ - "(EVENT_DATETIME>\""+date.toString("yyyy-MM-dd")+" 00:00:00))||"+ - "((EVENT_DATETIME>=\""+ + " "+endTime().toString("hh:mm:ss")+"')&&"+ + "(`EVENT_DATETIME`>'"+date.toString("yyyy-MM-dd")+" 00:00:00))||"+ + "((`EVENT_DATETIME`>='"+ date.toString("yyyy-MM-dd")+ - " "+startTime().toString("hh:mm:ss")+"\")&&"+ - "(EVENT_DATETIME<\""+date.toString("yyyy-MM-dd")+" 23:59:59))||"; + " "+startTime().toString("hh:mm:ss")+"')&&"+ + "(`EVENT_DATETIME`<'"+date.toString("yyyy-MM-dd")+" 23:59:59))||"; } } @@ -367,13 +362,13 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, // // Generate the Station List // - sql=QString("select STATION_NAME from REPORT_STATIONS where ")+ - "REPORT_NAME=\""+RDEscapeString(name())+"\""; + sql=QString("select `STATION_NAME` from `REPORT_STATIONS` where ")+ + "`REPORT_NAME`='"+RDEscapeString(name())+"'"; q=new RDSqlQuery(sql); while(q->next()) { station_sql+= - QString("(STATION_NAME=\"")+ - RDEscapeString(q->value(0).toString())+"\")||"; + QString("(`STATION_NAME`='")+ + RDEscapeString(q->value(0).toString())+"')||"; } delete q; station_sql=station_sql.left(station_sql.length()-2); @@ -383,36 +378,36 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, // bool where=false; if(exportTypeEnabled(RDReport::Generic)) { - sql="select NAME from GROUPS "; + sql="select `NAME` from `GROUPS` "; } else { where=true; - sql="select NAME from GROUPS where "; + sql="select `NAME` from `GROUPS` where "; if(exportTypeEnabled(RDReport::Traffic)) { - sql+="(REPORT_TFC=\"Y\")||"; + sql+="(`REPORT_TFC`='Y')||"; } if(exportTypeEnabled(RDReport::Music)) { - sql+="(REPORT_MUS=\"Y\")||"; + sql+="(`REPORT_MUS`='Y')||"; } } if(filterGroups()) { - QString sql2=QString("select GROUP_NAME from REPORT_GROUPS where ")+ - "REPORT_NAME=\""+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("(NAME=\"")+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("(CART.GROUP_NAME=\"")+ - RDEscapeString(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); @@ -428,8 +423,8 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, // // Iterate Selected Services // - sql=QString("select SERVICE_NAME from REPORT_SERVICES where ")+ - "REPORT_NAME=\""+RDEscapeString(name())+"\""; + sql=QString("select `SERVICE_NAME` from `REPORT_SERVICES` where ")+ + "`REPORT_NAME`='"+RDEscapeString(name())+"'"; q=new RDSqlQuery(sql); while(q->next()) { svc=new RDSvc(q->value(0).toString(),report_station,report_config); @@ -441,12 +436,12 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, if(!exportTypeEnabled(RDReport::Generic)) { if(exportTypeForced(RDReport::Traffic)|| exportTypeEnabled(RDReport::Traffic)) { - force_sql+=QString().sprintf("(ELR_LINES.EVENT_SOURCE=%d)||", + force_sql+=QString().sprintf("(`ELR_LINES`.`EVENT_SOURCE`=%d)||", RDLogLine::Traffic); } if(exportTypeForced(RDReport::Music)|| exportTypeEnabled(RDReport::Music)) { - force_sql+=QString().sprintf("(ELR_LINES.EVENT_SOURCE=%d)||", + force_sql+=QString().sprintf("(`ELR_LINES`.`EVENT_SOURCE`=%d)||", RDLogLine::Music); } force_sql=force_sql.left(force_sql.length()-2); @@ -456,48 +451,48 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, // Selected Fields // sql=QString("select ")+ - "LENGTH,"+ // 00 - "LOG_ID,"+ // 01 - "CART_NUMBER,"+ // 02 - "STATION_NAME,"+ // 03 - "EVENT_DATETIME,"+ // 04 - "EVENT_TYPE,"+ // 05 - "EXT_START_TIME,"+ // 06 - "EXT_LENGTH,"+ // 07 - "EXT_DATA,"+ // 08 - "EXT_EVENT_ID,"+ // 09 - "EXT_ANNC_TYPE,"+ // 10 - "PLAY_SOURCE,"+ // 11 - "CUT_NUMBER,"+ // 12 - "EVENT_SOURCE,"+ // 13 - "EXT_CART_NAME,"+ // 14 - "LOG_NAME,"+ // 15 - "ELR_LINES.TITLE,"+ // 16 - "ELR_LINES.ARTIST,"+ // 17 - "SCHEDULED_TIME,"+ // 18 - "START_SOURCE,"+ // 19 - "ELR_LINES.PUBLISHER,"+ // 20 - "ELR_LINES.COMPOSER,"+ // 21 - "ELR_LINES.ALBUM,"+ // 22 - "ELR_LINES.LABEL,"+ // 23 - "ELR_LINES.ISRC,"+ // 24 - "ELR_LINES.USAGE_CODE,"+ // 25 - "ELR_LINES.ONAIR_FLAG,"+ // 26 - "ELR_LINES.ISCI,"+ // 27 - "ELR_LINES.CONDUCTOR,"+ // 28 - "ELR_LINES.USER_DEFINED,"+ // 29 - "ELR_LINES.SONG_ID,"+ // 30 - "ELR_LINES.DESCRIPTION,"+ // 31 - "ELR_LINES.OUTCUE "+ // 32 - "from ELR_LINES left join CART "+ - "on ELR_LINES.CART_NUMBER=CART.NUMBER where "+ - "SERVICE_NAME=\""+RDEscapeString(q->value(0).toString())+"\" && "; + "`LENGTH`,"+ // 00 + "`LOG_ID`,"+ // 01 + "`CART_NUMBER`,"+ // 02 + "`STATION_NAME`,"+ // 03 + "`EVENT_DATETIME`,"+ // 04 + "`EVENT_TYPE`,"+ // 05 + "`EXT_START_TIME`,"+ // 06 + "`EXT_LENGTH`,"+ // 07 + "`EXT_DATA`,"+ // 08 + "`EXT_EVENT_ID`,"+ // 09 + "`EXT_ANNC_TYPE`,"+ // 10 + "`PLAY_SOURCE`,"+ // 11 + "`CUT_NUMBER`,"+ // 12 + "`EVENT_SOURCE`,"+ // 13 + "`EXT_CART_NAME`,"+ // 14 + "`LOG_NAME`,"+ // 15 + "`ELR_LINES`.`TITLE`,"+ // 16 + "`ELR_LINES`.`ARTIST`,"+ // 17 + "`SCHEDULED_TIME`,"+ // 18 + "`START_SOURCE`,"+ // 19 + "`ELR_LINES`.`PUBLISHER`,"+ // 20 + "`ELR_LINES`.`COMPOSER`,"+ // 21 + "`ELR_LINES`.`ALBUM`,"+ // 22 + "`ELR_LINES`.`LABEL`,"+ // 23 + "`ELR_LINES`.`ISRC`,"+ // 24 + "`ELR_LINES`.`USAGE_CODE`,"+ // 25 + "`ELR_LINES`.`ONAIR_FLAG`,"+ // 26 + "`ELR_LINES`.`ISCI`,"+ // 27 + "`ELR_LINES`.`CONDUCTOR`,"+ // 28 + "`ELR_LINES`.`USER_DEFINED`,"+ // 29 + "`ELR_LINES`.`SONG_ID`,"+ // 30 + "`ELR_LINES`.`DESCRIPTION`,"+ // 31 + "`ELR_LINES`.`OUTCUE` "+ // 32 + "from `ELR_LINES` left join `CART` "+ + "on `ELR_LINES`.`CART_NUMBER`=`CART`.`NUMBER` where "+ + "`SERVICE_NAME`='"+RDEscapeString(q->value(0).toString())+"' && "; // // OnAir Flag Filter // if(filterOnairFlag()) { - sql+="(ONAIR_FLAG=\"Y\")&&"; + sql+="(`ONAIR_FLAG`='Y')&&"; } // @@ -516,10 +511,10 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, // if(daypart_sql.isEmpty()) { //TODO Do we need to escape on Select statement? - sql+=QString("(EVENT_DATETIME>=\"")+startdate.toString("yyyy-MM-dd")+ - " 00:00:00\")&&"+ - "(EVENT_DATETIME<=\""+enddate.toString("yyyy-MM-dd")+ - " 23:59:59\")&&"; + sql+=QString("(`EVENT_DATETIME`>='")+startdate.toString("yyyy-MM-dd")+ + " 00:00:00')&&"+ + "(`EVENT_DATETIME`<='"+enddate.toString("yyyy-MM-dd")+ + " 23:59:59')&&"; } else { sql+=(QString("(")+daypart_sql+")&&"); @@ -531,48 +526,46 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, sql+=")"; q1=new RDSqlQuery(sql); while(q1->next()) { - sql=QString("insert into ELR_LINES set ")+ - "SERVICE_NAME=\""+RDEscapeString(mixname)+"\","+ - QString().sprintf("LENGTH=%d,LOG_ID=%u,CART_NUMBER=%u,", + sql=QString("insert into `ELR_LINES` set ")+ + "`SERVICE_NAME`='"+RDEscapeString(mixname)+"',"+ + QString().sprintf("`LENGTH`=%d,`LOG_ID`=%u,`CART_NUMBER`=%u,", q1->value(0).toInt(), q1->value(1).toUInt(), q1->value(2).toInt())+ - "STATION_NAME=\""+RDEscapeString(q1->value(3).toString())+"\","+ - "EVENT_DATETIME="+RDCheckDateTime(q1->value(4).toDateTime(), - "yyyy-MM-dd hh:mm:ss")+","+ - QString().sprintf("EVENT_TYPE=%d,",q1->value(5).toInt())+ - "EXT_START_TIME="+ + "`STATION_NAME`='"+RDEscapeString(q1->value(3).toString())+"',"+ + "`EVENT_DATETIME`="+RDCheckDateTime(q1->value(4).toDateTime(), + "yyyy-MM-dd hh:mm:ss")+","+ + QString().sprintf("`EVENT_TYPE`=%d,",q1->value(5).toInt())+ + "`EXT_START_TIME`="+ RDCheckDateTime(q1->value(6).toTime(),"hh:mm:ss")+","+ - QString().sprintf("EXT_LENGTH=%d,",q1->value(7).toInt())+ - "EXT_DATA=\""+RDEscapeString(q1->value(8).toString())+"\","+ - "EXT_EVENT_ID=\""+RDEscapeString(q1->value(9).toString())+"\","+ - "EXT_ANNC_TYPE=\""+RDEscapeString(q1->value(10).toString())+"\","+ - QString().sprintf("PLAY_SOURCE=%d,CUT_NUMBER=%d,EVENT_SOURCE=%d,", - q1->value(11).toInt(), - q1->value(12).toInt(), - q1->value(13).toInt())+ - "EXT_CART_NAME=\""+RDEscapeString(q1->value(14).toString())+"\","+ - "LOG_NAME=\""+RDEscapeString(q1->value(15).toString())+"\","+ - "TITLE=\""+RDEscapeString(q1->value(16).toString())+"\","+ - "ARTIST=\""+RDEscapeString(q1->value(17).toString())+"\","+ - "SCHEDULED_TIME="+ + QString().sprintf("`EXT_LENGTH`=%d,",q1->value(7).toInt())+ + "`EXT_DATA`='"+RDEscapeString(q1->value(8).toString())+"',"+ + "`EXT_EVENT_ID`='"+RDEscapeString(q1->value(9).toString())+"',"+ + "`EXT_ANNC_TYPE`='"+RDEscapeString(q1->value(10).toString())+"',"+ + QString().sprintf("`PLAY_SOURCE`=%d,",q1->value(11).toInt())+ + QString().sprintf("`CUT_NUMBER`=%d,",q1->value(12).toInt())+ + QString().sprintf("`EVENT_SOURCE`=%d,",q1->value(13).toInt())+ + "`EXT_CART_NAME`='"+RDEscapeString(q1->value(14).toString())+"',"+ + "`LOG_NAME`='"+RDEscapeString(q1->value(15).toString())+"',"+ + "`TITLE`='"+RDEscapeString(q1->value(16).toString())+"',"+ + "`ARTIST`='"+RDEscapeString(q1->value(17).toString())+"',"+ + "`SCHEDULED_TIME`="+ RDCheckDateTime(q1->value(18).toDate(),"yyyy-MM-dd hh:mm:ss")+","+ - QString().sprintf("START_SOURCE=%d,",q1->value(19).toInt())+ - "PUBLISHER=\""+RDEscapeString(q1->value(20).toString())+"\","+ - "COMPOSER=\""+RDEscapeString(q1->value(21).toString())+"\","+ - "ALBUM=\""+RDEscapeString(q1->value(22).toString())+"\","+ - "LABEL=\""+RDEscapeString(q1->value(23).toString())+"\","+ - "ISRC=\""+RDEscapeString(q1->value(24).toString())+"\","+ - QString().sprintf("USAGE_CODE=%d,",q1->value(25).toInt())+ - "ONAIR_FLAG=\""+RDEscapeString(q1->value(26).toString())+"\","+ - "ISCI=\""+RDEscapeString(q1->value(27).toString())+"\","+ - "CONDUCTOR=\""+RDEscapeString(q1->value(28).toString())+"\","+ - "USER_DEFINED=\""+RDEscapeString(q1->value(29).toString())+"\","+ - "SONG_ID=\""+RDEscapeString(q1->value(30).toString())+"\","+ - "DESCRIPTION=\""+RDEscapeString(q1->value(31).toString())+"\","+ - "OUTCUE=\""+RDEscapeString(q1->value(32).toString())+"\""; - q2=new RDSqlQuery(sql); - delete q2; + QString().sprintf("`START_SOURCE`=%d,",q1->value(19).toInt())+ + "`PUBLISHER`='"+RDEscapeString(q1->value(20).toString())+"',"+ + "`COMPOSER`='"+RDEscapeString(q1->value(21).toString())+"',"+ + "`ALBUM`='"+RDEscapeString(q1->value(22).toString())+"',"+ + "`LABEL`='"+RDEscapeString(q1->value(23).toString())+"',"+ + "`ISRC`='"+RDEscapeString(q1->value(24).toString())+"',"+ + QString().sprintf("`USAGE_CODE`=%d,",q1->value(25).toInt())+ + "`ONAIR_FLAG`='"+RDEscapeString(q1->value(26).toString())+"',"+ + "`ISCI`='"+RDEscapeString(q1->value(27).toString())+"',"+ + "`CONDUCTOR`='"+RDEscapeString(q1->value(28).toString())+"',"+ + "`USER_DEFINED`='"+RDEscapeString(q1->value(29).toString())+"',"+ + "`SONG_ID`='"+RDEscapeString(q1->value(30).toString())+"',"+ + "`DESCRIPTION`='"+RDEscapeString(q1->value(31).toString())+"',"+ + "`OUTCUE`='"+RDEscapeString(q1->value(32).toString())+"'"; + RDSqlQuery::apply(sql); } delete q1; } @@ -672,8 +665,8 @@ bool RDReport::generateReport(const QDate &startdate,const QDate &enddate, report_station,report_config,serviceName()); system(post_cmd.toUtf8()); - sql=QString("delete from ELR_LINES where ")+ - "SERVICE_NAME=\""+RDEscapeString(mixname)+"\""; + sql=QString("delete from `ELR_LINES` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(mixname)+"'"; RDSqlQuery::apply(sql); // printf("RDReport mixname: %s\n",mixname.toUtf8().constData()); @@ -899,53 +892,45 @@ QString RDReport::center(const QString &str,int width) void RDReport::SetRow(const QString ¶m,const QString &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update REPORTS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "NAME=\""+RDEscapeString(report_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `REPORTS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`NAME`='"+RDEscapeString(report_name)+"'"; + RDSqlQuery::apply(sql); } void RDReport::SetRow(const QString ¶m,int value) const { - RDSqlQuery *q; QString sql; - sql=QString("update REPORTS set ")+ - param+QString().sprintf("=%d where ",value)+ - "NAME=\""+RDEscapeString(report_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `REPORTS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`NAME`='"+RDEscapeString(report_name)+"'"; + RDSqlQuery::apply(sql); } void RDReport::SetRow(const QString ¶m,unsigned value) const { - RDSqlQuery *q; QString sql; - sql=QString("update REPORTS set ")+ - param+QString().sprintf("=%u where ",value)+ - "NAME=\""+RDEscapeString(report_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `REPORTS` set `")+ + param+QString().sprintf("`=%u where ",value)+ + "`NAME`='"+RDEscapeString(report_name)+"'"; + RDSqlQuery::apply(sql); } void RDReport::SetRow(const QString ¶m,bool value) const { - RDSqlQuery *q; QString sql; - sql=QString("update REPORTS set ")+ - param+"=\""+RDYesNo(value)+"\" where "+ - "NAME=\""+RDEscapeString(report_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `REPORTS` set `")+ + param+"`='"+RDYesNo(value)+"' where "+ + "`NAME`='"+RDEscapeString(report_name)+"'"; + RDSqlQuery::apply(sql); } diff --git a/lib/rdresourcelistmodel.cpp b/lib/rdresourcelistmodel.cpp index 77608ad6..4444aec5 100644 --- a/lib/rdresourcelistmodel.cpp +++ b/lib/rdresourcelistmodel.cpp @@ -201,7 +201,7 @@ void RDResourceListModel::refresh(const QModelIndex &row) if(row.row()first()) { updateRow(row.row(),q); @@ -233,22 +233,21 @@ void RDResourceListModel::updateModel() if(d_type==RDMatrix::LogitekVguest) { sql=sqlFields()+ "where "+ - "STATION_NAME=\""+RDEscapeString(d_mtx->station())+"\" && "+ - QString().sprintf("MATRIX_NUM=%d && ",d_mtx->matrix())+ - QString().sprintf("VGUEST_TYPE=%u ",d_vguest_type)+ - "order by NUMBER "; + "`STATION_NAME`='"+RDEscapeString(d_mtx->station())+"' && "+ + QString().sprintf("`MATRIX_NUM`=%d && ",d_mtx->matrix())+ + QString().sprintf("`VGUEST_TYPE`=%u ",d_vguest_type)+ + "order by `NUMBER` "; } if(d_type==RDMatrix::SasUsi) { sql=sqlFields()+ "where "+ - "STATION_NAME=\""+RDEscapeString(d_mtx->station())+"\" && "+ - QString().sprintf("MATRIX_NUM=%d ",d_mtx->matrix())+ - "order by NUMBER "; + "`STATION_NAME`='"+RDEscapeString(d_mtx->station())+"' && "+ + QString().sprintf("`MATRIX_NUM`=%d ",d_mtx->matrix())+ + "order by `NUMBER` "; } beginResetModel(); d_ids.clear(); d_texts.clear(); - // printf("SQL: %s\n",sql.toUtf8().constData()); q=new RDSqlQuery(sql); while(q->next()) { d_ids.push_back(-1); @@ -265,7 +264,7 @@ void RDResourceListModel::updateRowLine(int line) if(linefirst()) { updateRow(line,q); @@ -368,14 +367,14 @@ void RDResourceListModel::updateRow(int row,RDSqlQuery *q) QString RDResourceListModel::sqlFields() const { QString sql=QString("select ")+ - "ID,"+ // 00 - "NUMBER,"+ // 01 - "ENGINE_NUM,"+ // 02 - "DEVICE_NUM,"+ // 03 - "SURFACE_NUM,"+ // 04 - "RELAY_NUM,"+ // 05 - "BUSS_NUM "+ // 06 - "from VGUEST_RESOURCES "; + "`ID`,"+ // 00 + "`NUMBER`,"+ // 01 + "`ENGINE_NUM`,"+ // 02 + "`DEVICE_NUM`,"+ // 03 + "`SURFACE_NUM`,"+ // 04 + "`RELAY_NUM`,"+ // 05 + "`BUSS_NUM` "+ // 06 + "from `VGUEST_RESOURCES` "; return sql; } diff --git a/lib/rdripc.cpp b/lib/rdripc.cpp index 6664c23e..7df2305c 100644 --- a/lib/rdripc.cpp +++ b/lib/rdripc.cpp @@ -2,7 +2,7 @@ // // Connection to the Rivendell Interprocess Communication Daemon // -// (C) Copyright 2002-2019 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,13 +18,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include -#include - -#include -#include -#include - #include "rdapplication.h" #include "rddatedecode.h" #include "rddb.h" @@ -173,8 +166,11 @@ void RDRipc::sendRml(RDMacro *macro) port=macro->port(); } QString rmlline=macro->toString(); - QString sql=QString("select NAME,VARVALUE from HOSTVARS where ")+ - "STATION_NAME=\""+RDEscapeString(ripc_station->name())+"\""; + QString sql=QString("select ")+ + "`NAME`,"+ // 00 + "`VARVALUE` "+ // 01 + "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/rdschedcode.cpp b/lib/rdschedcode.cpp index d4000184..7a79354c 100644 --- a/lib/rdschedcode.cpp +++ b/lib/rdschedcode.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Scheduler Code // -// (C) Copyright 2015 Fred Gleason +// (C) Copyright 2015-2021 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 @@ -78,12 +78,10 @@ QString RDSchedCode::xml() const void RDSchedCode::SetRow(const QString ¶m,const QString &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update SCHED_CODES set ")+ - param+"=\""+RDEscapeString(value)+"\" "+ - "where CODE=\""+RDEscapeString(sched_code)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `SCHED_CODES` set `")+ + param+"`='"+RDEscapeString(value)+"' "+ + "where `CODE`='"+RDEscapeString(sched_code)+"'"; + RDSqlQuery::apply(sql); } diff --git a/lib/rdschedcodelistmodel.cpp b/lib/rdschedcodelistmodel.cpp index 240d2a67..5b7b82cb 100644 --- a/lib/rdschedcodelistmodel.cpp +++ b/lib/rdschedcodelistmodel.cpp @@ -189,9 +189,8 @@ void RDSchedCodeListModel::refresh(const QModelIndex &row) { if(row.row()first()) { updateRow(row.row(),q); @@ -220,7 +219,7 @@ void RDSchedCodeListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields(); - sql+="order by CODE "; + sql+="order by `CODE` "; beginResetModel(); d_texts.clear(); @@ -244,7 +243,7 @@ void RDSchedCodeListModel::updateRowLine(int line) { if(linefirst()) { updateRow(line,q); @@ -271,9 +270,9 @@ void RDSchedCodeListModel::updateRow(int row,RDSqlQuery *q) QString RDSchedCodeListModel::sqlFields() const { QString sql=QString("select ")+ - "CODE,"+ // 00 - "DESCRIPTION "+ // 01 - "from SCHED_CODES "; + "`CODE`,"+ // 00 + "`DESCRIPTION` "+ // 01 + "from `SCHED_CODES` "; return sql; } diff --git a/lib/rdschedcodes_dialog.cpp b/lib/rdschedcodes_dialog.cpp index 72fae8b4..bd0bb943 100644 --- a/lib/rdschedcodes_dialog.cpp +++ b/lib/rdschedcodes_dialog.cpp @@ -2,7 +2,7 @@ // // Scheduler code editor dialog // -// (C) Copyright 2014-2019 Fred Gleason +// (C) Copyright 2014-2021 Fred Gleason // // Based on original code by Stefan Gabriel // @@ -119,7 +119,7 @@ int RDSchedCodesDialog::exec(QStringList *sched_codes,QStringList *remove_codes) } } - sql=QString().sprintf("select CODE from SCHED_CODES"); + sql=QString().sprintf("select `CODE` from `SCHED_CODES`"); q=new RDSqlQuery(sql); while(q->next()) { if(codes_sel->destFindItem(q->value(0).toString())==0) { diff --git a/lib/rdschedruleslist.cpp b/lib/rdschedruleslist.cpp index 1c54f35c..92a17b30 100644 --- a/lib/rdschedruleslist.cpp +++ b/lib/rdschedruleslist.cpp @@ -3,7 +3,7 @@ // A class for handling the scheduling rules for rdlogmanager/edit clocks // // (C) Copyright 2005 Stefan Gabriel -// (C) Copyright 2019 Fred Gleason +// (C) Copyright 2019-2021 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 @@ -19,8 +19,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - #include "rdclock.h" #include "rddb.h" #include "rdescape_string.h" @@ -32,7 +30,10 @@ RDSchedRulesList::RDSchedRulesList(QString clockname,RDConfig *config) RDSqlQuery *q; RDSqlQuery *q1; - sql=QString().sprintf("select CODE,DESCRIPTION from SCHED_CODES order by `CODE` asc"); + sql=QString("select ")+ + "`CODE`,"+ + "`DESCRIPTION` "+ + "from `SCHED_CODES` order by `CODE` asc"; q=new RDSqlQuery(sql); @@ -50,14 +51,14 @@ RDSchedRulesList::RDSchedRulesList(QString clockname,RDConfig *config) sched_code[i] = q->value(0).toString(); description[i] = q->value(1).toString(); sql=QString("select ")+ - "MAX_ROW,"+ // 00 - "MIN_WAIT,"+ // 01 - "NOT_AFTER,"+ // 02 - "OR_AFTER,"+ // 03 - "OR_AFTER_II "+ // 04 - "from RULE_LINES where "+ - "CLOCK_NAME=\""+RDEscapeString(clockname)+"\" && "+ - "CODE=\""+RDEscapeString(sched_code[i])+"\""; + "`MAX_ROW`,"+ // 00 + "`MIN_WAIT`,"+ // 01 + "`NOT_AFTER`,"+ // 02 + "`OR_AFTER`,"+ // 03 + "`OR_AFTER_II` "+ // 04 + "from `RULE_LINES` where "+ + "`CLOCK_NAME`='"+RDEscapeString(clockname)+"' && "+ + "`CODE`='"+RDEscapeString(sched_code[i])+"'"; q1=new RDSqlQuery(sql); if(q1->first()) { max_row[i] = q1->value(0).toInt(); @@ -89,7 +90,9 @@ RDSchedRulesList::~RDSchedRulesList() delete []description; } -void RDSchedRulesList::insertItem(int pos,int maxrow,int minwait,QString notafter,QString orafter,QString orafterii) +void RDSchedRulesList::insertItem(int pos,int maxrow,int minwait, + QString notafter,QString orafter, + QString orafterii) { max_row[pos] = maxrow; min_wait[pos] = minwait; @@ -142,18 +145,19 @@ void RDSchedRulesList::Save(QString clockname) { QString sql; - sql=QString("delete from RULE_LINES where ")+ - "CLOCK_NAME=\""+RDEscapeString(clockname)+"\""; + sql=QString("delete from `RULE_LINES` where ")+ + "`CLOCK_NAME`='"+RDEscapeString(clockname)+"'"; RDSqlQuery::apply(sql); + for (int i=0;ifirst()) { updateRow(row.row(),q); @@ -265,7 +264,7 @@ void RDServiceListModel::updateRowLine(int line) { if(linefirst()) { updateRow(line,q); @@ -313,16 +312,16 @@ void RDServiceListModel::updateRow(int row,RDSqlQuery *q) QString RDServiceListModel::sqlFields() const { QString sql=QString("select ")+ - "SERVICES.NAME,"+ // 00 - "SERVICES.DESCRIPTION,"+ // 01 - "SERVICES.PROGRAM_CODE,"+ // 02 - "SERVICES.TRACK_GROUP,"+ // 03 - "SERVICES.DEFAULT_LOG_SHELFLIFE,"+ // 04 - "SERVICES.ELR_SHELFLIFE,"+ // 05 - "SERVICES.AUTO_REFRESH,"+ // 06 - "SERVICES.CHAIN_LOG,"+ // 07 - "SERVICES.INCLUDE_IMPORT_MARKERS "+ // 08 - "from SERVICES "; + "`SERVICES`.`NAME`,"+ // 00 + "`SERVICES`.`DESCRIPTION`,"+ // 01 + "`SERVICES`.`PROGRAM_CODE`,"+ // 02 + "`SERVICES`.`TRACK_GROUP`,"+ // 03 + "`SERVICES`.`DEFAULT_LOG_SHELFLIFE`,"+ // 04 + "`SERVICES`.`ELR_SHELFLIFE`,"+ // 05 + "`SERVICES`.`AUTO_REFRESH`,"+ // 06 + "`SERVICES`.`CHAIN_LOG`,"+ // 07 + "`SERVICES`.`INCLUDE_IMPORT_MARKERS` "+ // 08 + "from `SERVICES` "; return sql; } diff --git a/lib/rdsettings.cpp b/lib/rdsettings.cpp index 7503d70c..4e90219a 100644 --- a/lib/rdsettings.cpp +++ b/lib/rdsettings.cpp @@ -2,7 +2,7 @@ // // Audio Format Settings // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,11 +18,9 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - -#include -#include -#include +#include "rdsettings.h" +#include "rddb.h" +#include "rdescape_string.h" RDSettings::RDSettings() { @@ -229,16 +227,16 @@ bool RDSettings::loadPreset(unsigned id) bool ret=false; sql=QString("select ")+ - "NAME,"+ // 00 - "FORMAT,"+ // 01 - "CHANNELS,"+ // 02 - "SAMPLE_RATE,"+ // 03 - "BIT_RATE,"+ // 04 - "QUALITY,"+ // 05 - "NORMALIZATION_LEVEL,"+ // 06 - "AUTOTRIM_LEVEL "+ // 07 - "from ENCODER_PRESETS where "+ - QString().sprintf("ID=%u",id); + "`NAME`,"+ // 00 + "`FORMAT`,"+ // 01 + "`CHANNELS`,"+ // 02 + "`SAMPLE_RATE`,"+ // 03 + "`BIT_RATE`,"+ // 04 + "`QUALITY`,"+ // 05 + "`NORMALIZATION_LEVEL`,"+ // 06 + "`AUTOTRIM_LEVEL` "+ // 07 + "from `ENCODER_PRESETS` where "+ + QString().sprintf("`ID`=%u",id); q=new RDSqlQuery(sql); if(q->first()) { ret=true; @@ -262,7 +260,7 @@ unsigned RDSettings::addPreset() QString sql; set_name=MakeNewName(); - sql=QString("insert into ENCODER_PRESETS set ")+ + sql=QString("insert into `ENCODER_PRESETS` set ")+ SqlFields(); return RDSqlQuery::run(sql).toUInt(); } @@ -272,9 +270,9 @@ bool RDSettings::savePreset(unsigned id) const { QString sql; - sql=QString("update ENCODER_PRESETS set ")+ + sql=QString("update `ENCODER_PRESETS` set ")+ SqlFields()+" where "+ - QString().sprintf("ID=%u",id); + QString().sprintf("`ID`=%u",id); return RDSqlQuery::apply(sql); } @@ -284,8 +282,8 @@ bool RDSettings::deletePreset(unsigned id) const { QString sql; - sql=QString("delete from ENCODER_PRESETS where ")+ - QString().sprintf("ID=%u",id); + sql=QString("delete from `ENCODER_PRESETS` where ")+ + QString().sprintf("`ID`=%u",id); return RDSqlQuery::apply(sql); } @@ -378,14 +376,14 @@ void RDSettings::clear() QString RDSettings::SqlFields() const { - return QString("NAME=")+"\""+RDEscapeString(set_name)+"\","+ - QString().sprintf("FORMAT=%u,",set_format)+ - QString().sprintf("CHANNELS=%u,",set_channels)+ - QString().sprintf("SAMPLE_RATE=%u,",set_sample_rate)+ - QString().sprintf("BIT_RATE=%u,",set_bit_rate)+ - QString().sprintf("QUALITY=%u,",set_quality)+ - QString().sprintf("NORMALIZATION_LEVEL=%d,",set_normalization_level)+ - QString().sprintf("AUTOTRIM_LEVEL=%d ",set_autotrim_level); + return QString("`NAME`=")+"\""+RDEscapeString(set_name)+"\","+ + QString().sprintf("`FORMAT`=%u,",set_format)+ + QString().sprintf("`CHANNELS`=%u,",set_channels)+ + QString().sprintf("`SAMPLE_RATE`=%u,",set_sample_rate)+ + QString().sprintf("`BIT_RATE`=%u,",set_bit_rate)+ + QString().sprintf("`QUALITY`=%u,",set_quality)+ + QString().sprintf("`NORMALIZATION_LEVEL`=%d,",set_normalization_level)+ + QString().sprintf("`AUTOTRIM_LEVEL`=%d ",set_autotrim_level); } @@ -399,9 +397,9 @@ QString RDSettings::MakeNewName() const while(!unique) { sql=QString("select ")+ - "ID "+ // 00 - "from ENCODER_PRESETS where "+ - "NAME=\""+RDEscapeString(ret)+"\""; + "`ID` "+ // 00 + "from `ENCODER_PRESETS` where "+ + "`NAME`='"+RDEscapeString(ret)+"'"; q=new RDSqlQuery(sql); if(q->first()) { ret="["+QObject::tr("new profile")+QString().sprintf(" %d]",++count); diff --git a/lib/rdsimpleplayer.cpp b/lib/rdsimpleplayer.cpp index 3690a875..a056a965 100644 --- a/lib/rdsimpleplayer.cpp +++ b/lib/rdsimpleplayer.cpp @@ -2,7 +2,7 @@ // // A naively simple player for Rivendell Carts. // -// (C) Copyright 2002-2006,2016 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -153,11 +153,11 @@ void RDSimplePlayer::play(int start_pos) } sql=QString("select ")+ - "START_POINT,"+ // 00 - "END_POINT,"+ // 01 - "PLAY_GAIN "+ // 02 - "from CUTS where "+ - "CUT_NAME=\""+RDEscapeString(play_cut)+"\""; + "`START_POINT`,"+ // 00 + "`END_POINT`,"+ // 01 + "`PLAY_GAIN` "+ // 02 + "from `CUTS` where "+ + "`CUT_NAME`='"+RDEscapeString(play_cut)+"'"; q=new RDSqlQuery(sql); if(q->first()) { play_cut_gain=q->value(2).toInt(); diff --git a/lib/rdslotoptions.cpp b/lib/rdslotoptions.cpp index a297924e..6c947482 100644 --- a/lib/rdslotoptions.cpp +++ b/lib/rdslotoptions.cpp @@ -2,7 +2,7 @@ // // Container class for RDCartSlot options // -// (C) Copyright 2012,2016 Fred Gleason +// (C) Copyright 2012-2021 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 @@ -29,7 +29,6 @@ RDSlotOptions::RDSlotOptions(const QString &stationname,unsigned slotno) { QString sql; RDSqlQuery *q; - RDSqlQuery *q1; set_stationname=stationname; set_slotno=slotno; @@ -37,16 +36,15 @@ RDSlotOptions::RDSlotOptions(const QString &stationname,unsigned slotno) // // Ensure that the DB record exists // - sql=QString("select ID from CARTSLOTS where (STATION_NAME=\"")+ - RDEscapeString(stationname)+"\")&&"+ - QString().sprintf("(SLOT_NUMBER=%u)",slotno); + sql=QString("select `ID` from `CARTSLOTS` where ")+ + "(`STATION_NAME`='"+RDEscapeString(stationname)+"')&&"+ + QString().sprintf("(`SLOT_NUMBER`=%u)",slotno); q=new RDSqlQuery(sql); if(!q->first()) { - sql=QString("insert into CARTSLOTS set ")+ - "STATION_NAME=\""+RDEscapeString(stationname)+"\","+ - QString().sprintf("SLOT_NUMBER=%u",slotno); - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `CARTSLOTS` set ")+ + "`STATION_NAME`='"+RDEscapeString(stationname)+"',"+ + QString().sprintf("`SLOT_NUMBER`=%u",slotno); + RDSqlQuery::apply(sql); } delete q; @@ -138,12 +136,22 @@ bool RDSlotOptions::load() QString sql; RDSqlQuery *q; - sql=QString("select CARD,INPUT_PORT,OUTPUT_PORT,")+ - "MODE,DEFAULT_MODE,HOOK_MODE,DEFAULT_HOOK_MODE,"+ - "STOP_ACTION,DEFAULT_STOP_ACTION,"+ - "CART_NUMBER,DEFAULT_CART_NUMBER,SERVICE_NAME from CARTSLOTS "+ - "where (STATION_NAME=\""+RDEscapeString(set_stationname)+"\")&&"+ - QString().sprintf("(SLOT_NUMBER=%u)",set_slotno); + sql=QString("select ")+ + "`CARD`,"+ // 00 + "`INPUT_PORT`,"+ // 01 + "`OUTPUT_PORT`,"+ // 02 + "`MODE`,"+ // 03 + "`DEFAULT_MODE`,"+ // 04 + "`HOOK_MODE`,"+ // 05 + "`DEFAULT_HOOK_MODE`,"+ // 06 + "`STOP_ACTION`,"+ // 07 + "`DEFAULT_STOP_ACTION`,"+ // 08 + "`CART_NUMBER`,"+ // 09 + "`DEFAULT_CART_NUMBER`,"+ // 10 + "`SERVICE_NAME` "+ // 11 + "from `CARTSLOTS` where "+ + "(`STATION_NAME`='"+RDEscapeString(set_stationname)+"')&&"+ + QString().sprintf("(`SLOT_NUMBER`=%u)",set_slotno); q=new RDSqlQuery(sql); if(q->first()) { ret=true; @@ -229,16 +237,16 @@ bool RDSlotOptions::load() void RDSlotOptions::save() const { QString sql; - RDSqlQuery *q; - sql=QString("update CARTSLOTS set ")+ - QString().sprintf("MODE=%d,HOOK_MODE=%d,STOP_ACTION=%d,CART_NUMBER=%d,", - set_mode,set_hook_mode,set_stop_action,set_cart_number)+ - "SERVICE_NAME=\""+RDEscapeString(set_service)+"\" "+ - "where (STATION_NAME=\""+RDEscapeString(set_stationname)+"\")&&"+ - QString().sprintf("(SLOT_NUMBER=%u)",set_slotno); - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `CARTSLOTS` set ")+ + QString().sprintf("`MODE`=%d,",set_mode)+ + QString().sprintf("`HOOK_MODE`=%d,",set_hook_mode)+ + QString().sprintf("`STOP_ACTION`=%d,",set_stop_action)+ + QString().sprintf("`CART_NUMBER`=%d,",set_cart_number)+ + "`SERVICE_NAME`='"+RDEscapeString(set_service)+"' "+ + "where (`STATION_NAME`='"+RDEscapeString(set_stationname)+"')&&"+ + QString().sprintf("(`SLOT_NUMBER`=%u)",set_slotno); + RDSqlQuery::apply(sql); } diff --git a/lib/rdsound_panel.cpp b/lib/rdsound_panel.cpp index 55ef2afa..849c00be 100644 --- a/lib/rdsound_panel.cpp +++ b/lib/rdsound_panel.cpp @@ -2,7 +2,7 @@ // // The sound panel widget for RDAirPlay // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -18,8 +18,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - #include "rdapplication.h" #include "rdbutton_dialog.h" #include "rdcut.h" @@ -44,12 +42,12 @@ RDSoundPanel::RDSoundPanel(int cols,int rows,int station_panels, panel_cue_port=-1; panel_caption=caption; if(extended) { - panel_tablename="EXTENDED_PANELS"; - panel_name_tablename="EXTENDED_PANEL_NAMES"; + panel_tablename="`EXTENDED_PANELS`"; + panel_name_tablename="`EXTENDED_PANEL_NAMES`"; } else { - panel_tablename="PANELS"; - panel_name_tablename="PANEL_NAMES"; + panel_tablename="`PANELS`"; + panel_name_tablename="`PANEL_NAMES`"; } panel_label_template=label_template; @@ -201,10 +199,13 @@ RDSoundPanel::RDSoundPanel(int cols,int rows,int station_panels, // QString sql; - sql=QString("select PANEL_NO,NAME from ")+panel_name_tablename+" where "+ - QString().sprintf("(TYPE=%d)&&",RDAirPlayConf::StationPanel)+ - "(OWNER=\""+RDEscapeString(rda->station()->name())+"\") "+ - "order by PANEL_NO"; + sql=QString("select ")+ + "`PANEL_NO`,"+ + "`NAME` "+ + "from "+panel_name_tablename+" where "+ + QString().sprintf("(`TYPE`=%d)&&",RDAirPlayConf::StationPanel)+ + "(`OWNER`='"+RDEscapeString(rda->station()->name())+"') "+ + "order by `PANEL_NO`"; RDSqlQuery *q=new RDSqlQuery(sql); q->first(); for(int i=0;iuser()->name())+"\") "+ - "order by PANEL_NO"; + sql=QString("select ")+ + "`PANEL_NO`,"+ + "`NAME` "+ + "from "+panel_name_tablename+" where "+ + QString().sprintf("(`TYPE`=%d)&&",RDAirPlayConf::UserPanel)+ + "(`OWNER`='"+RDEscapeString(rda->user()->name())+"') "+ + "order by `PANEL_NO`"; RDSqlQuery *q=new RDSqlQuery(sql); q->first(); for(int i=0;i currentIndex())+"] "+panel_name)); sql=QString("delete from ")+panel_name_tablename+" where "+ - QString().sprintf("(TYPE=%d)&&",panel_type)+ - "(OWNER=\""+RDEscapeString(PanelOwner(panel_type))+"\")&&"+ - QString().sprintf("(PANEL_NO=%d)",panel_number); + QString().sprintf("(`TYPE`=%d)&&",panel_type)+ + "(`OWNER`='"+RDEscapeString(PanelOwner(panel_type))+"')&&"+ + QString().sprintf("(`PANEL_NO`=%d)",panel_number); RDSqlQuery::apply(sql); sql=QString("insert into ")+panel_name_tablename+" set "+ - QString().sprintf("TYPE=%d,",panel_type)+ - "OWNER=\""+RDEscapeString(PanelOwner(panel_type))+"\","+ - QString().sprintf("PANEL_NO=%d,",panel_number)+ - "NAME=\""+RDEscapeString(panel_name)+"\""; + QString().sprintf("`TYPE`=%d,",panel_type)+ + "`OWNER`='"+RDEscapeString(PanelOwner(panel_type))+"',"+ + QString().sprintf("`PANEL_NO`=%d,",panel_number)+ + "`NAME`='"+RDEscapeString(panel_name)+"'"; RDSqlQuery::apply(sql); } delete edn; @@ -1258,17 +1262,21 @@ void RDSoundPanel::LoadPanel(RDAirPlayConf::PanelType type,int panel) break; } - QString sql=QString("select ")+panel_tablename+".ROW_NO,"+ - panel_tablename+".COLUMN_NO,"+ - panel_tablename+".LABEL,"+ - panel_tablename+".CART,"+ - panel_tablename+".DEFAULT_COLOR,"+ - "CART.FORCED_LENGTH,CART.AVERAGE_HOOK_LENGTH,CART.TYPE from "+ - panel_tablename+" left join CART on "+panel_tablename+".CART=CART.NUMBER "+ - "where "+panel_tablename+QString().sprintf(".TYPE=%d && ",type)+ - panel_tablename+".OWNER=\""+RDEscapeString(owner)+"\" && "+ - panel_tablename+QString().sprintf(".PANEL_NO=%d ",panel)+ - "order by "+panel_tablename+".COLUMN_NO,"+panel_tablename+".ROW_NO"; + QString sql=QString("select ")+ + panel_tablename+".`ROW_NO`,"+ // 00 + panel_tablename+".`COLUMN_NO`,"+ // 01 + panel_tablename+".`LABEL`,"+ // 02 + panel_tablename+".`CART`,"+ // 03 + panel_tablename+".`DEFAULT_COLOR`,"+ // 04 + "`CART`.`FORCED_LENGTH`,"+ // 05 + "`CART`.`AVERAGE_HOOK_LENGTH`,"+ // 06 + "`CART`.`TYPE` "+ // 07 + "from "+panel_tablename+" "+ // 08 + "left join `CART` on "+panel_tablename+".`CART`=`CART`.`NUMBER` "+ + "where "+panel_tablename+QString().sprintf(".`TYPE`=%d && ",type)+ + panel_tablename+".`OWNER`='"+RDEscapeString(owner)+"' && "+ + panel_tablename+QString().sprintf(".`PANEL_NO`=%d ",panel)+ + "order by "+panel_tablename+".`COLUMN_NO`,"+panel_tablename+".`ROW_NO`"; RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { if(panel_buttons[offset]->panelButton(q->value(0).toInt(), @@ -1356,12 +1364,12 @@ void RDSoundPanel::SaveButton(RDAirPlayConf::PanelType type, // // Determine if the button exists // - sql=QString("select LABEL from ")+panel_tablename+" where "+ - QString().sprintf("TYPE=%d && ",type)+ - "OWNER=\""+RDEscapeString(owner)+"\" && "+ - QString().sprintf("PANEL_NO=%d && ",panel)+ - QString().sprintf("ROW_NO=%d && ",row)+ - QString().sprintf("COLUMN_NO=%d",col); + sql=QString("select `LABEL` from ")+panel_tablename+" where "+ + QString().sprintf("`TYPE`=%d && ",type)+ + "`OWNER`='"+RDEscapeString(owner)+"' && "+ + QString().sprintf("`PANEL_NO`=%d && ",panel)+ + QString().sprintf("`ROW_NO`=%d && ",row)+ + QString().sprintf("`COLUMN_NO`=%d",col); q=new RDSqlQuery(sql); if(q->size()>0) { // @@ -1369,18 +1377,18 @@ void RDSoundPanel::SaveButton(RDAirPlayConf::PanelType type, // delete q; sql1=QString("update ")+panel_tablename+" set "+ - "LABEL=\""+RDEscapeString(panel_buttons[offset]->panelButton(row,col)-> - text())+"\","+ - QString().sprintf("CART=%d,", + "`LABEL`='"+RDEscapeString(panel_buttons[offset]->panelButton(row,col)-> + text())+"',"+ + QString().sprintf("`CART`=%d,", panel_buttons[PanelOffset(panel_type,panel_number)]-> panelButton(row,col)->cart())+ - "DEFAULT_COLOR=\""+panel_buttons[offset]->panelButton(row,col)-> - defaultColor().name()+"\" where "+ - QString().sprintf("(TYPE=%d)&&",type)+ - "(OWNER=\""+RDEscapeString(owner)+"\")&&"+ - QString().sprintf("(PANEL_NO=%d)&&",panel)+ - QString().sprintf("(ROW_NO=%d)&&",row)+ - QString().sprintf("(COLUMN_NO=%d)",col); + "`DEFAULT_COLOR`='"+panel_buttons[offset]->panelButton(row,col)-> + defaultColor().name()+"' where "+ + QString().sprintf("(`TYPE`=%d)&&",type)+ + "(`OWNER`='"+RDEscapeString(owner)+"')&&"+ + QString().sprintf("(`PANEL_NO`=%d)&&",panel)+ + QString().sprintf("(`ROW_NO`=%d)&&",row)+ + QString().sprintf("(`COLUMN_NO`=%d)",col); q=new RDSqlQuery(sql1); if(q->isActive()) { delete q; @@ -1395,17 +1403,24 @@ void RDSoundPanel::SaveButton(RDAirPlayConf::PanelType type, // Otherwise, insert a new one // sql1=QString("insert into ")+panel_tablename+ - " (TYPE,OWNER,PANEL_NO,ROW_NO,COLUMN_NO,LABEL,CART,DEFAULT_COLOR) "+ + " (`TYPE`,"+ + "`OWNER`,"+ + "`PANEL_NO`,"+ + "`ROW_NO`,"+ + "`COLUMN_NO`,"+ + "`LABEL`,"+ + "`CART`,"+ + "`DEFAULT_COLOR`) "+ QString().sprintf("values (%d,",type)+ - "\""+RDEscapeString(owner)+"\","+ + "'"+RDEscapeString(owner)+"',"+ QString().sprintf("%d,%d,%d,",panel,row,col)+ - "\""+RDEscapeString(panel_buttons[offset]-> - panelButton(row,col)->text())+"\","+ + "'"+RDEscapeString(panel_buttons[offset]-> + panelButton(row,col)->text())+"',"+ QString().sprintf("%d,", panel_buttons[PanelOffset(panel_type,panel_number)]-> panelButton(row,col)->cart())+ - "\""+RDEscapeString(panel_buttons[offset]-> - panelButton(row,col)->defaultColor().name())+"\")"; + "'"+RDEscapeString(panel_buttons[offset]-> + panelButton(row,col)->defaultColor().name())+"')"; q=new RDSqlQuery(sql1); delete q; } @@ -1477,55 +1492,54 @@ void RDSoundPanel::LogTraffic(RDPanelButton *button) QDateTime now=QDateTime::currentDateTime(); sql=QString("select ")+ - "CART.TITLE,"+ // 00 - "CART.ARTIST,"+ // 01 - "CART.PUBLISHER,"+ // 02 - "CART.COMPOSER,"+ // 03 - "CART.USAGE_CODE,"+ // 04 - "CUTS.ISRC,"+ // 05 - "CART.ALBUM,"+ // 06 - "CART.LABEL,"+ // 07 - "CUTS.ISCI,"+ // 08 - "CART.CONDUCTOR,"+ // 09 - "CART.USER_DEFINED,"+ // 10 - "CART.SONG_ID,"+ // 11 - "CUTS.DESCRIPTION,"+ // 12 - "CUTS.OUTCUE "+ // 13 - "from CART left join CUTS "+ - "on CART.NUMBER=CUTS.CART_NUMBER where "+ - "CUTS.CUT_NAME=\""+RDEscapeString(button->cutName())+"\""; + "`CART`.`TITLE`,"+ // 00 + "`CART`.`ARTIST`,"+ // 01 + "`CART`.`PUBLISHER`,"+ // 02 + "`CART`.`COMPOSER`,"+ // 03 + "`CART`.`USAGE_CODE`,"+ // 04 + "`CUTS`.`ISRC`,"+ // 05 + "`CART`.`ALBUM`,"+ // 06 + "`CART`.`LABEL`,"+ // 07 + "`CUTS`.`ISCI`,"+ // 08 + "`CART`.`CONDUCTOR`,"+ // 09 + "`CART`.`USER_DEFINED`,"+ // 10 + "`CART`.`SONG_ID`,"+ // 11 + "`CUTS`.`DESCRIPTION`,"+ // 12 + "`CUTS`.`OUTCUE` "+ // 13 + "from `CART` left join `CUTS` "+ + "on `CART`.`NUMBER`=`CUTS`.`CART_NUMBER` where "+ + "`CUTS`.`CUT_NAME`='"+RDEscapeString(button->cutName())+"'"; q=new RDSqlQuery(sql); if(q->first()) { - sql=QString("insert into ELR_LINES set ")+ - "SERVICE_NAME=\""+RDEscapeString(panel_svcname)+"\","+ - QString().sprintf("LENGTH=%d,",button->startTime().msecsTo(now.time()))+ - QString().sprintf("CART_NUMBER=%u,",button->cart())+ - "STATION_NAME=\""+RDEscapeString(rda->station()->name().toUtf8())+"\","+ - "EVENT_DATETIME="+ + sql=QString("insert into `ELR_LINES` set ")+ + "`SERVICE_NAME`='"+RDEscapeString(panel_svcname)+"',"+ + QString().sprintf("`LENGTH`=%d,",button->startTime().msecsTo(now.time()))+ + QString().sprintf("`CART_NUMBER`=%u,",button->cart())+ + "`STATION_NAME`='"+RDEscapeString(rda->station()->name().toUtf8())+"',"+ + "`EVENT_DATETIME`="+ RDCheckDateTime(QDateTime(now.date(),button->startTime()), "yyyy-MM-dd hh:mm:ss")+","+ - QString().sprintf("EVENT_TYPE=%d,",RDAirPlayConf::TrafficStop)+ - QString().sprintf("EVENT_SOURCE=%d,",RDLogLine::SoundPanel)+ - QString().sprintf("PLAY_SOURCE=%d,",RDLogLine::SoundPanel)+ - QString().sprintf("CUT_NUMBER=%d,",button->cutName().right(3).toInt())+ - "TITLE=\""+RDEscapeString(q->value(0).toString().toUtf8())+"\","+ - "ARTIST=\""+RDEscapeString(q->value(1).toString().toUtf8())+"\","+ - "PUBLISHER=\""+RDEscapeString(q->value(2).toString().toUtf8())+"\","+ - "COMPOSER=\""+RDEscapeString(q->value(3).toString().toUtf8())+"\","+ - QString().sprintf("USAGE_CODE=%d,",q->value(4).toInt())+ - "ISRC=\""+RDEscapeString(q->value(5).toString().toUtf8())+"\","+ - QString().sprintf("START_SOURCE=%d,",button->startSource())+ - "ALBUM=\""+RDEscapeString(q->value(6).toString().toUtf8())+"\","+ - "LABEL=\""+RDEscapeString(q->value(7).toString().toUtf8())+"\","+ - "ISCI=\""+RDEscapeString(q->value(8).toString().toUtf8())+"\","+ - "DESCRIPTION=\""+RDEscapeString(q->value(12).toString().toUtf8())+"\","+ - "OUTCUE=\""+RDEscapeString(q->value(13).toString().toUtf8())+"\","+ - "CONDUCTOR=\""+RDEscapeString(q->value(9).toString().toUtf8())+"\","+ - "USER_DEFINED=\""+RDEscapeString(q->value(10).toString().toUtf8())+"\","+ - "SONG_ID=\""+RDEscapeString(q->value(11).toString().toUtf8())+"\","+ - "ONAIR_FLAG=\""+RDYesNo(panel_onair_flag)+"\""; - delete q; - q=new RDSqlQuery(sql); + QString().sprintf("`EVENT_TYPE`=%d,",RDAirPlayConf::TrafficStop)+ + QString().sprintf("`EVENT_SOURCE`=%d,",RDLogLine::SoundPanel)+ + QString().sprintf("`PLAY_SOURCE`=%d,",RDLogLine::SoundPanel)+ + QString().sprintf("`CUT_NUMBER`=%d,",button->cutName().right(3).toInt())+ + "`TITLE`='"+RDEscapeString(q->value(0).toString().toUtf8())+"',"+ + "`ARTIST`='"+RDEscapeString(q->value(1).toString().toUtf8())+"',"+ + "`PUBLISHER`='"+RDEscapeString(q->value(2).toString().toUtf8())+"',"+ + "`COMPOSER`='"+RDEscapeString(q->value(3).toString().toUtf8())+"',"+ + QString().sprintf("`USAGE_CODE`=%d,",q->value(4).toInt())+ + "`ISRC`='"+RDEscapeString(q->value(5).toString().toUtf8())+"',"+ + QString().sprintf("`START_SOURCE`=%d,",button->startSource())+ + "`ALBUM`='"+RDEscapeString(q->value(6).toString().toUtf8())+"',"+ + "`LABEL`='"+RDEscapeString(q->value(7).toString().toUtf8())+"',"+ + "`ISCI`='"+RDEscapeString(q->value(8).toString().toUtf8())+"',"+ + "`DESCRIPTION`='"+RDEscapeString(q->value(12).toString().toUtf8())+"',"+ + "`OUTCUE`='"+RDEscapeString(q->value(13).toString().toUtf8())+"',"+ + "`CONDUCTOR`='"+RDEscapeString(q->value(9).toString().toUtf8())+"',"+ + "`USER_DEFINED`='"+RDEscapeString(q->value(10).toString().toUtf8())+"',"+ + "`SONG_ID`='"+RDEscapeString(q->value(11).toString().toUtf8())+"',"+ + "`ONAIR_FLAG`='"+RDYesNo(panel_onair_flag)+"'"; + RDSqlQuery::apply(sql); } delete q; } @@ -1537,32 +1551,39 @@ void RDSoundPanel::LogTrafficMacro(RDPanelButton *button) RDSqlQuery *q; QDateTime datetime(QDate::currentDate(),QTime::currentTime()); - sql=QString("select TITLE,ARTIST,PUBLISHER,COMPOSER,USAGE_CODE,")+ - "FORCED_LENGTH,ALBUM,LABEL from CART where "+ - QString().sprintf("NUMBER=%u",button->cart()); + sql=QString("select ")+ + "`TITLE`,"+ // 00 + "`ARTIST`,"+ // 01 + "`PUBLISHER`,"+ // 02 + "`COMPOSER`,"+ // 03 + "`USAGE_CODE`,"+ // 04 + "`FORCED_LENGTH`,"+ // 05 + "`ALBUM`,"+ // 06 + "`LABEL` "+ // 07 + "from `CART` where "+ + QString().sprintf("`NUMBER`=%u",button->cart()); q=new RDSqlQuery(sql); if(q->first()) { - sql=QString("insert into ELR_LINES set ")+ - "SERVICE_NAME=\""+RDEscapeString(panel_svcname)+"\","+ - QString().sprintf("LENGTH=%d,",q->value(5).toUInt())+ - QString().sprintf("CART_NUMBER=%u,",button->cart())+ - "STATION_NAME=\""+RDEscapeString(rda->station()->name().toUtf8())+"\","+ - "EVENT_DATETIME=\""+datetime.toString("yyyy-MM-dd hh:mm:ss")+"\","+ - QString().sprintf("EVENT_TYPE=%d,",RDAirPlayConf::TrafficMacro)+ - QString().sprintf("EVENT_SOURCE=%d,",RDLogLine::SoundPanel)+ - QString().sprintf("PLAY_SOURCE=%d,",RDLogLine::SoundPanel)+ - "TITLE=\""+RDEscapeString(q->value(0).toString().toUtf8())+"\","+ - "ARTIST=\""+RDEscapeString(q->value(1).toString().toUtf8())+"\","+ - "PUBLISHER=\""+RDEscapeString(q->value(2).toString().toUtf8())+"\","+ - "COMPOSER=\""+RDEscapeString(q->value(3).toString().toUtf8())+"\","+ - QString().sprintf("USAGE_CODE=%d,",q->value(4).toInt())+ - QString().sprintf("START_SOURCE=%d,",button->startSource())+ - "ALBUM=\""+RDEscapeString(q->value(6).toString().toUtf8())+"\","+ - "LABEL=\""+RDEscapeString(q->value(7).toString().toUtf8())+"\","+ - "ONAIR_FLAG=\""+RDYesNo(panel_onair_flag)+"\""; - delete q; - q=new RDSqlQuery(sql); + sql=QString("insert into `ELR_LINES` set ")+ + "`SERVICE_NAME`='"+RDEscapeString(panel_svcname)+"',"+ + QString().sprintf("`LENGTH`=%d,",q->value(5).toUInt())+ + QString().sprintf("`CART_NUMBER`=%u,",button->cart())+ + "`STATION_NAME`='"+RDEscapeString(rda->station()->name().toUtf8())+"',"+ + "`EVENT_DATETIME`='"+datetime.toString("yyyy-MM-dd hh:mm:ss")+"',"+ + QString().sprintf("`EVENT_TYPE`=%d,",RDAirPlayConf::TrafficMacro)+ + QString().sprintf("`EVENT_SOURCE`=%d,",RDLogLine::SoundPanel)+ + QString().sprintf("`PLAY_SOURCE`=%d,",RDLogLine::SoundPanel)+ + "`TITLE`='"+RDEscapeString(q->value(0).toString().toUtf8())+"',"+ + "`ARTIST`='"+RDEscapeString(q->value(1).toString().toUtf8())+"',"+ + "`PUBLISHER`='"+RDEscapeString(q->value(2).toString().toUtf8())+"',"+ + "`COMPOSER`='"+RDEscapeString(q->value(3).toString().toUtf8())+"',"+ + QString().sprintf("`USAGE_CODE`=%d,",q->value(4).toInt())+ + QString().sprintf("`START_SOURCE`=%d,",button->startSource())+ + "`ALBUM`='"+RDEscapeString(q->value(6).toString().toUtf8())+"',"+ + "`LABEL`='"+RDEscapeString(q->value(7).toString().toUtf8())+"',"+ + "`ONAIR_FLAG`='"+RDYesNo(panel_onair_flag)+"'"; delete q; + RDSqlQuery::apply(sql); } } diff --git a/lib/rdstation.cpp b/lib/rdstation.cpp index d5a0df39..266809d3 100644 --- a/lib/rdstation.cpp +++ b/lib/rdstation.cpp @@ -18,8 +18,6 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // -#include - #include "rdairplay_conf.h" #include "rdconf.h" #include "rdstation.h" @@ -564,8 +562,8 @@ int RDStation::cards() const { int n=0; - QString sql=QString("select DRIVER from AUDIO_CARDS where ")+ - "STATION_NAME=\""+RDEscapeString(station_name)+"\""; + QString sql=QString("select `DRIVER` from `AUDIO_CARDS` where ")+ + "`STATION_NAME`='"+RDEscapeString(station_name)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); while(q->next()) { if((RDStation::AudioDriver)q->value(0).toInt()!=RDStation::None) { @@ -581,9 +579,9 @@ int RDStation::cards() const RDStation::AudioDriver RDStation::cardDriver(int cardnum) const { RDStation::AudioDriver ret=RDStation::None; - QString sql=QString("select DRIVER from AUDIO_CARDS where ")+ - "STATION_NAME=\""+RDEscapeString(station_name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",cardnum); + QString sql=QString("select `DRIVER` from `AUDIO_CARDS` where ")+ + "`STATION_NAME`='"+RDEscapeString(station_name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",cardnum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=(RDStation::AudioDriver)q->value(0).toInt(); @@ -596,12 +594,11 @@ RDStation::AudioDriver RDStation::cardDriver(int cardnum) const void RDStation::setCardDriver(int cardnum,AudioDriver driver) const { - QString sql=QString("update AUDIO_CARDS set ")+ - QString().sprintf("DRIVER=%d where ",driver)+ - "STATION_NAME=\""+RDEscapeString(station_name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",cardnum); - RDSqlQuery *q=new RDSqlQuery(sql); - delete q; + QString sql=QString("update `AUDIO_CARDS` set ")+ + QString().sprintf("`DRIVER`=%d where ",driver)+ + "`STATION_NAME`='"+RDEscapeString(station_name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",cardnum); + RDSqlQuery::apply(sql); } @@ -651,9 +648,9 @@ void RDStation::setDriverVersion(AudioDriver driver,QString ver) const QString RDStation::cardName(int cardnum) const { QString ret; - QString sql=QString("select NAME from AUDIO_CARDS where ")+ - "STATION_NAME=\""+RDEscapeString(station_name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",cardnum); + QString sql=QString("select `NAME` from `AUDIO_CARDS` where ")+ + "`STATION_NAME`='"+RDEscapeString(station_name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",cardnum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toString(); @@ -666,21 +663,20 @@ QString RDStation::cardName(int cardnum) const void RDStation::setCardName(int cardnum,QString name) const { - QString sql=QString("update AUDIO_CARDS set ")+ - "NAME=\""+RDEscapeString(name)+"\" where "+ - "STATION_NAME=\""+RDEscapeString(station_name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",cardnum); - RDSqlQuery *q=new RDSqlQuery(sql); - delete q; + QString sql=QString("update `AUDIO_CARDS` set ")+ + "`NAME`='"+RDEscapeString(name)+"' where "+ + "`STATION_NAME`='"+RDEscapeString(station_name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",cardnum); + RDSqlQuery::apply(sql); } int RDStation::cardInputs(int cardnum) const { int ret=-1; - QString sql=QString("select INPUTS from AUDIO_CARDS where ")+ - "STATION_NAME=\""+RDEscapeString(station_name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",cardnum); + QString sql=QString("select `INPUTS` from `AUDIO_CARDS` where ")+ + "`STATION_NAME`='"+RDEscapeString(station_name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",cardnum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toInt(); @@ -693,21 +689,20 @@ int RDStation::cardInputs(int cardnum) const void RDStation::setCardInputs(int cardnum,int inputs) const { - QString sql=QString("update AUDIO_CARDS set ")+ - QString().sprintf("INPUTS=%d where ",inputs)+ - "STATION_NAME=\""+RDEscapeString(station_name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",cardnum); - RDSqlQuery *q=new RDSqlQuery(sql); - delete q; + QString sql=QString("update `AUDIO_CARDS` set ")+ + QString().sprintf("`INPUTS`=%d where ",inputs)+ + "`STATION_NAME`='"+RDEscapeString(station_name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",cardnum); + RDSqlQuery::apply(sql); } int RDStation::cardOutputs(int cardnum) const { int ret=-1; - QString sql=QString("select OUTPUTS from AUDIO_CARDS where ")+ - "STATION_NAME=\""+RDEscapeString(station_name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",cardnum); + QString sql=QString("select `OUTPUTS` from `AUDIO_CARDS` where ")+ + "`STATION_NAME`='"+RDEscapeString(station_name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",cardnum); RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toInt(); @@ -720,10 +715,10 @@ int RDStation::cardOutputs(int cardnum) const void RDStation::setCardOutputs(int cardnum,int outputs) const { - QString sql=QString("update AUDIO_CARDS set ")+ - QString().sprintf("OUTPUTS=%d where ",outputs)+ - "STATION_NAME=\""+RDEscapeString(station_name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",cardnum); + QString sql=QString("update `AUDIO_CARDS` set ")+ + QString().sprintf("`OUTPUTS`=%d where ",outputs)+ + "`STATION_NAME`='"+RDEscapeString(station_name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",cardnum); RDSqlQuery *q=new RDSqlQuery(sql); delete q; } @@ -745,11 +740,10 @@ bool RDStation::create(const QString &name,QString *err_msg, // Add Audio Cards // for(int i=0;iisActive()) { *err_msg=QObject::tr("Host already exists!"); @@ -792,12 +784,12 @@ bool RDStation::create(const QString &name,QString *err_msg, // // Create Service Perms // - sql=QString("select NAME from SERVICES"); + sql=QString("select `NAME` from `SERVICES`"); q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into SERVICE_PERMS set ")+ - "SERVICE_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; + sql=QString("insert into `SERVICE_PERMS` set ")+ + "`SERVICE_NAME`='"+RDEscapeString(q->value(0).toString())+"',"+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; q1=new RDSqlQuery(sql); delete q1; } @@ -807,33 +799,29 @@ bool RDStation::create(const QString &name,QString *err_msg, // RDAirPlay/RDPanel Channel Data // for(unsigned i=0;i<10;i++) { - sql=QString("insert into RDAIRPLAY_CHANNELS set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("INSTANCE=%u",i); - q=new RDSqlQuery(sql); - delete q; + sql=QString("insert into `RDAIRPLAY_CHANNELS` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`INSTANCE`=%u",i); + RDSqlQuery::apply(sql); - sql=QString("insert into RDPANEL_CHANNELS set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("INSTANCE=%u",i); - q=new RDSqlQuery(sql); - delete q; + sql=QString("insert into `RDPANEL_CHANNELS` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`INSTANCE`=%u",i); + RDSqlQuery::apply(sql); } for(int i=0;ifirst()) { sql=QString("insert into STATIONS set ")+ - "NAME=\""+RDEscapeString(name)+"\","+ - "SHORT_NAME=\""+RDEscapeString(name)+"\","+ - "IPV4_ADDRESS=\""+RDEscapeString(addr.toString())+"\","+ - "DESCRIPTION=\""+RDEscapeString("Workstation "+name)+"\","+ - "USER_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - "DEFAULT_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - QString().sprintf("STARTUP_CART=%u,",q->value(1).toUInt())+ - QString().sprintf("TIME_OFFSET=%d,",q->value(2).toInt())+ - QString().sprintf("BROADCAST_SECURITY=%u,",q->value(3).toUInt())+ - QString().sprintf("HEARTBEAT_CART=%u,",q->value(4).toUInt())+ - QString().sprintf("HEARTBEAT_INTERVAL=%u,",q->value(5).toUInt())+ - "EDITOR_PATH=\""+RDEscapeString(q->value(6).toString())+"\","+ - QString().sprintf("FILTER_MODE=%d,",q->value(7).toInt())+ - "SYSTEM_MAINT=\""+RDEscapeString(q->value(8).toString())+"\","+ - "HTTP_STATION=\""+RDEscapeString(q->value(9).toString())+"\","+ - "CAE_STATION=\""+RDEscapeString(q->value(10).toString())+"\","+ - "START_JACK=\""+RDEscapeString(q->value(11).toString())+"\","+ - "JACK_SERVER_NAME=\""+RDEscapeString(q->value(12).toString())+"\","+ - "JACK_COMMAND_LINE=\""+RDEscapeString(q->value(13).toString())+"\","+ - QString().sprintf("JACK_PORTS=%d,",q->value(14).toInt())+ - QString().sprintf("CUE_CARD=%d,",q->value(15).toInt())+ - QString().sprintf("CUE_PORT=%d,",q->value(16).toInt())+ - QString().sprintf("CUE_START_CART=%u,",q->value(17).toInt())+ - QString().sprintf("CUE_STOP_CART=%u,",q->value(18).toInt())+ - QString().sprintf("CARTSLOT_COLUMNS=%d,",q->value(19).toInt())+ - QString().sprintf("CARTSLOT_ROWS=%d,",q->value(20).toInt())+ - "ENABLE_DRAGDROP=\""+RDEscapeString(q->value(21).toString())+"\","+ - "ENFORCE_PANEL_SETUP=\""+RDEscapeString(q->value(22).toString())+"\","+ - "REPORT_EDITOR_PATH=\""+RDEscapeString(q->value(23).toString())+"\","+ - "BROWSER_PATH=\""+RDEscapeString(q->value(24).toString())+"\""; + "`NAME`='"+RDEscapeString(name)+"',"+ + "`SHORT_NAME`='"+RDEscapeString(name)+"',"+ + "`IPV4_ADDRESS`='"+RDEscapeString(addr.toString())+"',"+ + "`DESCRIPTION`='"+RDEscapeString("Workstation "+name)+"',"+ + "`USER_NAME`='"+RDEscapeString(q->value(0).toString())+"',"+ + "`DEFAULT_NAME`='"+RDEscapeString(q->value(0).toString())+"',"+ + QString().sprintf("`STARTUP_CART`=%u,",q->value(1).toUInt())+ + QString().sprintf("`TIME_OFFSET`=%d,",q->value(2).toInt())+ + QString().sprintf("`BROADCAST_SECURITY`=%u,",q->value(3).toUInt())+ + QString().sprintf("`HEARTBEAT_CART`=%u,",q->value(4).toUInt())+ + QString().sprintf("`HEARTBEAT_INTERVAL`=%u,",q->value(5).toUInt())+ + "`EDITOR_PATH`='"+RDEscapeString(q->value(6).toString())+"',"+ + QString().sprintf("`FILTER_MODE`=%d,",q->value(7).toInt())+ + "`SYSTEM_MAINT`='"+RDEscapeString(q->value(8).toString())+"',"+ + "`HTTP_STATION`='"+RDEscapeString(q->value(9).toString())+"',"+ + "`CAE_STATION`='"+RDEscapeString(q->value(10).toString())+"',"+ + "`START_JACK`='"+RDEscapeString(q->value(11).toString())+"',"+ + "`JACK_SERVER_NAME`='"+RDEscapeString(q->value(12).toString())+"',"+ + "`JACK_COMMAND_LINE`='"+RDEscapeString(q->value(13).toString())+"',"+ + QString().sprintf("`JACK_PORTS`=%d,",q->value(14).toInt())+ + QString().sprintf("`CUE_CARD`=%d,",q->value(15).toInt())+ + QString().sprintf("`CUE_PORT`=%d,",q->value(16).toInt())+ + QString().sprintf("`CUE_START_CART`=%u,",q->value(17).toInt())+ + QString().sprintf("`CUE_STOP_CART`=%u,",q->value(18).toInt())+ + QString().sprintf("`CARTSLOT_COLUMNS`=%d,",q->value(19).toInt())+ + QString().sprintf("`CARTSLOT_ROWS`=%d,",q->value(20).toInt())+ + "`ENABLE_DRAGDROP`='"+RDEscapeString(q->value(21).toString())+"',"+ + "`ENFORCE_PANEL_SETUP`='"+RDEscapeString(q->value(22).toString())+"',"+ + "`REPORT_EDITOR_PATH`='"+RDEscapeString(q->value(23).toString())+"',"+ + "`BROWSER_PATH`='"+RDEscapeString(q->value(24).toString())+"'"; q1=new RDSqlQuery(sql); if(!q1->isActive()) { *err_msg=QObject::tr("host already exists"); @@ -955,15 +939,14 @@ bool RDStation::create(const QString &name,QString *err_msg, // // Clone Service Perms // - sql=QString("select SERVICE_NAME from SERVICE_PERMS where ")+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + sql=QString("select `SERVICE_NAME` from `SERVICE_PERMS` where ")+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into SERVICE_PERMS set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - "SERVICE_NAME=\""+RDEscapeString(q->value(0).toString())+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `SERVICE_PERMS` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + "`SERVICE_NAME`='"+RDEscapeString(q->value(0).toString())+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -971,62 +954,61 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone RDLibrary Config // sql=QString("select ")+ - "INPUT_CARD,"+ // 00 - "INPUT_PORT,"+ // 01 - "INPUT_TYPE,"+ // 02 - "OUTPUT_CARD,"+ // 03 - "OUTPUT_PORT,"+ // 04 - "VOX_THRESHOLD,"+ // 05 - "TRIM_THRESHOLD,"+ // 06 - "DEFAULT_FORMAT,"+ // 07 - "DEFAULT_CHANNELS,"+ // 08 - "DEFAULT_LAYER,"+ // 09 - "DEFAULT_BITRATE,"+ // 10 - "DEFAULT_RECORD_MODE,"+ // 11 - "DEFAULT_TRIM_STATE,"+ // 12 - "MAXLENGTH,"+ // 13 - "TAIL_PREROLL,"+ // 14 - "RIPPER_DEVICE,"+ // 15 - "PARANOIA_LEVEL,"+ // 16 - "RIPPER_LEVEL,"+ // 17 - "CDDB_SERVER,"+ // 18 - "READ_ISRC,"+ // 19 - "ENABLE_EDITOR,"+ // 20 - "SRC_CONVERTER,"+ // 21 - "LIMIT_SEARCH,"+ // 22 - "SEARCH_LIMITED "+ // 23 - "from RDLIBRARY where "+ - "STATION=\""+RDEscapeString(exemplar)+"\""; + "`INPUT_CARD`,"+ // 00 + "`INPUT_PORT`,"+ // 01 + "`INPUT_TYPE`,"+ // 02 + "`OUTPUT_CARD`,"+ // 03 + "`OUTPUT_PORT`,"+ // 04 + "`VOX_THRESHOLD`,"+ // 05 + "`TRIM_THRESHOLD`,"+ // 06 + "`DEFAULT_FORMAT`,"+ // 07 + "`DEFAULT_CHANNELS`,"+ // 08 + "`DEFAULT_LAYER`,"+ // 09 + "`DEFAULT_BITRATE`,"+ // 10 + "`DEFAULT_RECORD_MODE`,"+ // 11 + "`DEFAULT_TRIM_STATE`,"+ // 12 + "`MAXLENGTH`,"+ // 13 + "`TAIL_PREROLL`,"+ // 14 + "`RIPPER_DEVICE`,"+ // 15 + "`PARANOIA_LEVEL`,"+ // 16 + "`RIPPER_LEVEL`,"+ // 17 + "`CDDB_SERVER`,"+ // 18 + "`READ_ISRC`,"+ // 19 + "`ENABLE_EDITOR`,"+ // 20 + "`SRC_CONVERTER`,"+ // 21 + "`LIMIT_SEARCH`,"+ // 22 + "`SEARCH_LIMITED` "+ // 23 + "from `RDLIBRARY` where "+ + "`STATION`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); if(q->first()) { - sql=QString("insert into RDLIBRARY set ")+ - QString().sprintf("INPUT_CARD=%d,",q->value(0).toInt())+ - QString().sprintf("INPUT_PORT=%d,",q->value(1).toInt())+ - "INPUT_TYPE=\""+RDEscapeString(q->value(2).toString())+"\","+ - QString().sprintf("OUTPUT_CARD=%d,",q->value(3).toInt())+ - QString().sprintf("OUTPUT_PORT=%d,",q->value(4).toInt())+ - QString().sprintf("VOX_THRESHOLD=%d,",q->value(5).toInt())+ - QString().sprintf("TRIM_THRESHOLD=%d,",q->value(6).toInt())+ - QString().sprintf("DEFAULT_FORMAT=%u,",q->value(7).toUInt())+ - QString().sprintf("DEFAULT_CHANNELS=%u,",q->value(8).toUInt())+ - QString().sprintf("DEFAULT_LAYER=%u,",q->value(9).toUInt())+ - QString().sprintf("DEFAULT_BITRATE=%u,",q->value(10).toUInt())+ - QString().sprintf("DEFAULT_RECORD_MODE=%u,",q->value(11).toUInt())+ - "DEFAULT_TRIM_STATE=\""+RDEscapeString(q->value(12).toString())+"\","+ - QString().sprintf("MAXLENGTH=%d,",q->value(13).toInt())+ - QString().sprintf("TAIL_PREROLL=%u,",q->value(14).toUInt())+ - "RIPPER_DEVICE=\""+RDEscapeString(q->value(15).toString())+"\","+ - QString().sprintf("PARANOIA_LEVEL=%d,",q->value(16).toInt())+ - QString().sprintf("RIPPER_LEVEL=%d,",q->value(17).toInt())+ - "CDDB_SERVER=\""+RDEscapeString(q->value(18).toString())+"\","+ - "READ_ISRC=\""+RDEscapeString(q->value(19).toString())+"\","+ - "ENABLE_EDITOR=\""+RDEscapeString(q->value(20).toString())+"\","+ - QString().sprintf("SRC_CONVERTER=%d,",q->value(21).toInt())+ - QString().sprintf("LIMIT_SEARCH=%d,",q->value(22).toInt())+ - "SEARCH_LIMITED=\""+RDEscapeString(q->value(23).toString())+"\","+ - "STATION=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `RDLIBRARY` set ")+ + QString().sprintf("`INPUT_CARD`=%d,",q->value(0).toInt())+ + QString().sprintf("`INPUT_PORT`=%d,",q->value(1).toInt())+ + "`INPUT_TYPE`='"+RDEscapeString(q->value(2).toString())+"',"+ + QString().sprintf("`OUTPUT_CARD`=%d,",q->value(3).toInt())+ + QString().sprintf("`OUTPUT_PORT`=%d,",q->value(4).toInt())+ + QString().sprintf("`VOX_THRESHOLD`=%d,",q->value(5).toInt())+ + QString().sprintf("`TRIM_THRESHOLD`=%d,",q->value(6).toInt())+ + QString().sprintf("`DEFAULT_FORMAT`=%u,",q->value(7).toUInt())+ + QString().sprintf("`DEFAULT_CHANNELS`=%u,",q->value(8).toUInt())+ + QString().sprintf("`DEFAULT_LAYER`=%u,",q->value(9).toUInt())+ + QString().sprintf("`DEFAULT_BITRATE`=%u,",q->value(10).toUInt())+ + QString().sprintf("`DEFAULT_RECORD_MODE`=%u,",q->value(11).toUInt())+ + "`DEFAULT_TRIM_STATE`='"+RDEscapeString(q->value(12).toString())+"',"+ + QString().sprintf("`MAXLENGTH`=%d,",q->value(13).toInt())+ + QString().sprintf("`TAIL_PREROLL`=%u,",q->value(14).toUInt())+ + "`RIPPER_DEVICE`='"+RDEscapeString(q->value(15).toString())+"',"+ + QString().sprintf("`PARANOIA_LEVEL`=%d,",q->value(16).toInt())+ + QString().sprintf("`RIPPER_LEVEL`=%d,",q->value(17).toInt())+ + "`CDDB_SERVER`='"+RDEscapeString(q->value(18).toString())+"',"+ + "`READ_ISRC`='"+RDEscapeString(q->value(19).toString())+"',"+ + "`ENABLE_EDITOR`='"+RDEscapeString(q->value(20).toString())+"',"+ + QString().sprintf("`SRC_CONVERTER`=%d,",q->value(21).toInt())+ + QString().sprintf("`LIMIT_SEARCH`=%d,",q->value(22).toInt())+ + "`SEARCH_LIMITED`='"+RDEscapeString(q->value(23).toString())+"',"+ + "`STATION`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1034,50 +1016,49 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone RDLogEdit Config // sql=QString("select ")+ - "INPUT_CARD,"+ // 00 - "INPUT_PORT,"+ // 01 - "OUTPUT_CARD,"+ // 02 - "OUTPUT_PORT,"+ // 03 - "FORMAT,"+ // 04 - "DEFAULT_CHANNELS,"+ // 05 - "LAYER,"+ // 06 - "BITRATE,"+ // 07 - "MAXLENGTH,"+ // 08 - "TAIL_PREROLL,"+ // 09 - "START_CART,"+ // 10 - "END_CART,"+ // 11 - "REC_START_CART,"+ // 12 - "REC_END_CART,"+ // 13 - "TRIM_THRESHOLD,"+ // 14 - "RIPPER_LEVEL,"+ // 15 - "DEFAULT_TRANS_TYPE,"+ // 16 - "ENABLE_SECOND_START "+ // 17 - "from RDLOGEDIT where "+ - "STATION=\""+RDEscapeString(exemplar)+"\""; + "`INPUT_CARD`,"+ // 00 + "`INPUT_PORT`,"+ // 01 + "`OUTPUT_CARD`,"+ // 02 + "`OUTPUT_PORT`,"+ // 03 + "`FORMAT`,"+ // 04 + "`DEFAULT_CHANNELS`,"+ // 05 + "`LAYER`,"+ // 06 + "`BITRATE`,"+ // 07 + "`MAXLENGTH`,"+ // 08 + "`TAIL_PREROLL`,"+ // 09 + "`START_CART`,"+ // 10 + "`END_CART`,"+ // 11 + "`REC_START_CART`,"+ // 12 + "`REC_END_CART`,"+ // 13 + "`TRIM_THRESHOLD`,"+ // 14 + "`RIPPER_LEVEL`,"+ // 15 + "`DEFAULT_TRANS_TYPE`,"+ // 16 + "`ENABLE_SECOND_START` "+ // 17 + "from `RDLOGEDIT` where "+ + "`STATION`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); if(q->first()) { - sql=QString("insert into RDLOGEDIT set ")+ - QString().sprintf("INPUT_CARD=%d,",q->value(0).toInt())+ - QString().sprintf("INPUT_PORT=%d,",q->value(1).toInt())+ - QString().sprintf("OUTPUT_CARD=%d,",q->value(2).toInt())+ - QString().sprintf("OUTPUT_PORT=%d,",q->value(3).toInt())+ - QString().sprintf("FORMAT=%u,",q->value(4).toUInt())+ - QString().sprintf("DEFAULT_CHANNELS=%u,",q->value(5).toUInt())+ - QString().sprintf("LAYER=%u,",q->value(6).toUInt())+ - QString().sprintf("BITRATE=%u,",q->value(7).toUInt())+ - QString().sprintf("MAXLENGTH=%d,",q->value(8).toInt())+ - QString().sprintf("TAIL_PREROLL=%u,",q->value(9).toUInt())+ - "STATION=\""+RDEscapeString(name)+"\","+ - QString().sprintf("START_CART=%u,",q->value(10).toUInt())+ - QString().sprintf("END_CART=%u,",q->value(11).toUInt())+ - QString().sprintf("REC_START_CART=%u,",q->value(12).toUInt())+ - QString().sprintf("REC_END_CART=%u,",q->value(13).toUInt())+ - QString().sprintf("TRIM_THRESHOLD=%d,",q->value(14).toInt())+ - QString().sprintf("RIPPER_LEVEL=%d,",q->value(15).toInt())+ - QString().sprintf("DEFAULT_TRANS_TYPE=%d,",q->value(16).toInt())+ - "ENABLE_SECOND_START=\""+RDEscapeString(q->value(17).toString())+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `RDLOGEDIT` set ")+ + QString().sprintf("`INPUT_CARD`=%d,",q->value(0).toInt())+ + QString().sprintf("`INPUT_PORT`=%d,",q->value(1).toInt())+ + QString().sprintf("`OUTPUT_CARD`=%d,",q->value(2).toInt())+ + QString().sprintf("`OUTPUT_PORT`=%d,",q->value(3).toInt())+ + QString().sprintf("`FORMAT`=%u,",q->value(4).toUInt())+ + QString().sprintf("`DEFAULT_CHANNELS`=%u,",q->value(5).toUInt())+ + QString().sprintf("`LAYER`=%u,",q->value(6).toUInt())+ + QString().sprintf("`BITRATE`=%u,",q->value(7).toUInt())+ + QString().sprintf("`MAXLENGTH`=%d,",q->value(8).toInt())+ + QString().sprintf("`TAIL_PREROLL`=%u,",q->value(9).toUInt())+ + "`STATION`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`START_CART`=%u,",q->value(10).toUInt())+ + QString().sprintf("`END_CART`=%u,",q->value(11).toUInt())+ + QString().sprintf("`REC_START_CART`=%u,",q->value(12).toUInt())+ + QString().sprintf("`REC_END_CART`=%u,",q->value(13).toUInt())+ + QString().sprintf("`TRIM_THRESHOLD`=%d,",q->value(14).toInt())+ + QString().sprintf("`RIPPER_LEVEL`=%d,",q->value(15).toInt())+ + QString().sprintf("`DEFAULT_TRANS_TYPE`=%d,",q->value(16).toInt())+ + "`ENABLE_SECOND_START`='"+RDEscapeString(q->value(17).toString())+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1085,42 +1066,41 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone RDCatch Config // sql=QString("select ")+ - "CHANNEL,"+ // 00 - "CARD_NUMBER,"+ // 01 - "PORT_NUMBER,"+ // 02 - "MON_PORT_NUMBER,"+ // 03 - "DEFAULT_MONITOR_ON,"+ // 04 - "PORT_TYPE,"+ // 05 - "DEFAULT_FORMAT,"+ // 06 - "DEFAULT_CHANNELS,"+ // 07 - "DEFAULT_BITRATE,"+ // 08 - "DEFAULT_THRESHOLD,"+ // 09 - "SWITCH_STATION,"+ // 10 - "SWITCH_MATRIX,"+ // 11 - "SWITCH_OUTPUT,"+ // 12 - "SWITCH_DELAY "+ // 13 - "from DECKS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`CHANNEL`,"+ // 00 + "`CARD_NUMBER`,"+ // 01 + "`PORT_NUMBER`,"+ // 02 + "`MON_PORT_NUMBER`,"+ // 03 + "`DEFAULT_MONITOR_ON`,"+ // 04 + "`PORT_TYPE`,"+ // 05 + "`DEFAULT_FORMAT`,"+ // 06 + "`DEFAULT_CHANNELS`,"+ // 07 + "`DEFAULT_BITRATE`,"+ // 08 + "`DEFAULT_THRESHOLD`,"+ // 09 + "`SWITCH_STATION`,"+ // 10 + "`SWITCH_MATRIX`,"+ // 11 + "`SWITCH_OUTPUT`,"+ // 12 + "`SWITCH_DELAY` "+ // 13 + "from `DECKS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into DECKS set ")+ - QString().sprintf("CHANNEL=%u,",q->value(0).toUInt())+ - QString().sprintf("CARD_NUMBER=%d,",q->value(1).toInt())+ - QString().sprintf("PORT_NUMBER=%d,",q->value(2).toInt())+ - QString().sprintf("MON_PORT_NUMBER=%d,",q->value(3).toInt())+ - "DEFAULT_MONITOR_ON=\""+RDEscapeString(q->value(4).toString())+"\","+ - "PORT_TYPE=\""+RDEscapeString(q->value(5).toString())+"\","+ - QString().sprintf("DEFAULT_FORMAT=%d,",q->value(6).toInt())+ - QString().sprintf("DEFAULT_CHANNELS=%d,",q->value(7).toInt())+ - QString().sprintf("DEFAULT_BITRATE=%d,",q->value(8).toInt())+ - QString().sprintf("DEFAULT_THRESHOLD=%d,",q->value(9).toInt())+ - "SWITCH_STATION=\""+RDEscapeString(q->value(10).toString())+"\","+ - QString().sprintf("SWITCH_MATRIX=%d,",q->value(11).toInt())+ - QString().sprintf("SWITCH_OUTPUT=%d,",q->value(12).toInt())+ - QString().sprintf("SWITCH_DELAY=%d,",q->value(13).toInt())+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `DECKS` set ")+ + QString().sprintf("`CHANNEL`=%u,",q->value(0).toUInt())+ + QString().sprintf("`CARD_NUMBER`=%d,",q->value(1).toInt())+ + QString().sprintf("`PORT_NUMBER`=%d,",q->value(2).toInt())+ + QString().sprintf("`MON_PORT_NUMBER`=%d,",q->value(3).toInt())+ + "`DEFAULT_MONITOR_ON`='"+RDEscapeString(q->value(4).toString())+"',"+ + "`PORT_TYPE`='"+RDEscapeString(q->value(5).toString())+"',"+ + QString().sprintf("`DEFAULT_FORMAT`=%d,",q->value(6).toInt())+ + QString().sprintf("`DEFAULT_CHANNELS`=%d,",q->value(7).toInt())+ + QString().sprintf("`DEFAULT_BITRATE`=%d,",q->value(8).toInt())+ + QString().sprintf("`DEFAULT_THRESHOLD`=%d,",q->value(9).toInt())+ + "`SWITCH_STATION`='"+RDEscapeString(q->value(10).toString())+"',"+ + QString().sprintf("`SWITCH_MATRIX`=%d,",q->value(11).toInt())+ + QString().sprintf("`SWITCH_OUTPUT`=%d,",q->value(12).toInt())+ + QString().sprintf("`SWITCH_DELAY`=%d,",q->value(13).toInt())+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1128,20 +1108,19 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone Deck Events // sql=QString("select ")+ - "CHANNEL,"+ // 00 - "NUMBER,"+ // 01 - "CART_NUMBER "+ // 02 - "from DECK_EVENTS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`CHANNEL`,"+ // 00 + "`NUMBER`,"+ // 01 + "`CART_NUMBER` "+ // 02 + "from `DECK_EVENTS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into DECK_EVENTS set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("CHANNEL=%u,",q->value(0).toUInt())+ - QString().sprintf("NUMBER=%d,",q->value(1).toInt())+ - QString().sprintf("CART_NUMBER=%u",q->value(2).toUInt()); - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `DECK_EVENTS` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`CHANNEL`=%u,",q->value(0).toUInt())+ + QString().sprintf("`NUMBER`=%d,",q->value(1).toInt())+ + QString().sprintf("`CART_NUMBER`=%u",q->value(2).toUInt()); + RDSqlQuery::apply(sql); } delete q; @@ -1149,107 +1128,105 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone RDAirPlay Config // sql=QString("select ")+ - "SEGUE_LENGTH,"+ // 00 - "TRANS_LENGTH,"+ // 01 - "LOG_MODE_STYLE,"+ // 02 - "PIE_COUNT_LENGTH,"+ // 03 - "PIE_COUNT_ENDPOINT,"+ // 04 - "CHECK_TIMESYNC,"+ // 05 - "STATION_PANELS,"+ // 06 - "USER_PANELS," // 07 - "SHOW_AUX_1,"+ // 08 - "SHOW_AUX_2,"+ // 09 - "CLEAR_FILTER,"+ // 10 - "DEFAULT_TRANS_TYPE,"+ // 11 - "BAR_ACTION,"+ // 12 - "FLASH_PANEL,"+ // 13 - "PANEL_PAUSE_ENABLED,"+ // 14 - "BUTTON_LABEL_TEMPLATE,"+ // 15 - "PAUSE_ENABLED,"+ // 16 - "DEFAULT_SERVICE,"+ // 17 - "HOUR_SELECTOR_ENABLED,"+ // 18 - "TITLE_TEMPLATE,"+ // 19 - "ARTIST_TEMPLATE,"+ // 20 - "OUTCUE_TEMPLATE,"+ // 21 - "DESCRIPTION_TEMPLATE,"+ // 22 - "EXIT_PASSWORD,"+ // 23 - "SKIN_PATH,"+ // 24 - "SHOW_COUNTERS "+ // 25 - "from RDAIRPLAY where "+ - "STATION=\""+RDEscapeString(exemplar)+"\""; + "`SEGUE_LENGTH`,"+ // 00 + "`TRANS_LENGTH`,"+ // 01 + "`LOG_MODE_STYLE`,"+ // 02 + "`PIE_COUNT_LENGTH`,"+ // 03 + "`PIE_COUNT_ENDPOINT`,"+ // 04 + "`CHECK_TIMESYNC`,"+ // 05 + "`STATION_PANELS`,"+ // 06 + "`USER_PANELS`," // 07 + "`SHOW_AUX_1`,"+ // 08 + "`SHOW_AUX_2`,"+ // 09 + "`CLEAR_FILTER`,"+ // 10 + "`DEFAULT_TRANS_TYPE`,"+ // 11 + "`BAR_ACTION`,"+ // 12 + "`FLASH_PANEL`,"+ // 13 + "`PANEL_PAUSE_ENABLED`,"+ // 14 + "`BUTTON_LABEL_TEMPLATE`,"+ // 15 + "`PAUSE_ENABLED`,"+ // 16 + "`DEFAULT_SERVICE`,"+ // 17 + "`HOUR_SELECTOR_ENABLED`,"+ // 18 + "`TITLE_TEMPLATE`,"+ // 19 + "`ARTIST_TEMPLATE`,"+ // 20 + "`OUTCUE_TEMPLATE`,"+ // 21 + "`DESCRIPTION_TEMPLATE`,"+ // 22 + "`EXIT_PASSWORD`,"+ // 23 + "`SKIN_PATH`,"+ // 24 + "`SHOW_COUNTERS` "+ // 25 + "from `RDAIRPLAY` where "+ + "`STATION`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); if(q->first()) { - sql=QString("insert into RDAIRPLAY set ")+ - QString().sprintf("SEGUE_LENGTH=%d,",q->value(0).toInt())+ - QString().sprintf("TRANS_LENGTH=%d,",q->value(1).toInt())+ - QString().sprintf("LOG_MODE_STYLE=%d,",q->value(2).toInt())+ - QString().sprintf("PIE_COUNT_LENGTH=%d,",q->value(3).toInt())+ - QString().sprintf("PIE_COUNT_ENDPOINT=%d,",q->value(4).toInt())+ - "CHECK_TIMESYNC=\""+RDEscapeString(q->value(5).toString())+"\","+ - QString().sprintf("STATION_PANELS=%d,",q->value(6).toInt())+ - QString().sprintf("USER_PANELS=%d,",q->value(7).toInt())+ - "SHOW_AUX_1=\""+RDEscapeString(q->value(8).toString())+"\","+ - "SHOW_AUX_2=\""+RDEscapeString(q->value(9).toString())+"\","+ - "CLEAR_FILTER=\""+RDEscapeString(q->value(10).toString())+"\","+ - QString().sprintf("DEFAULT_TRANS_TYPE=%u,",q->value(11).toUInt())+ - QString().sprintf("BAR_ACTION=%u,",q->value(12).toUInt())+ - "FLASH_PANEL=\""+RDEscapeString(q->value(13).toString())+"\","+ - "PANEL_PAUSE_ENABLED=\""+RDEscapeString(q->value(14).toString())+"\","+ - "BUTTON_LABEL_TEMPLATE=\""+RDEscapeString(q->value(15).toString())+ - "\","+ - "PAUSE_ENABLED=\""+RDEscapeString(q->value(16).toString())+"\","+ - "DEFAULT_SERVICE=\""+RDEscapeString(q->value(17).toString())+"\","+ - "HOUR_SELECTOR_ENABLED=\""+RDEscapeString(q->value(18).toString())+ - "\","+ - "TITLE_TEMPLATE=\""+RDEscapeString(q->value(19).toString())+"\","+ - "ARTIST_TEMPLATE=\""+RDEscapeString(q->value(20).toString())+"\","+ - "OUTCUE_TEMPLATE=\""+RDEscapeString(q->value(21).toString())+"\","+ - "DESCRIPTION_TEMPLATE=\""+RDEscapeString(q->value(22).toString())+"\","+ - "EXIT_PASSWORD=\""+RDEscapeString(q->value(23).toString())+"\","+ - "SKIN_PATH=\""+RDEscapeString(q->value(24).toString())+"\","+ - "SHOW_COUNTERS=\""+RDEscapeString(q->value(25).toString())+"\","+ - "STATION=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `RDAIRPLAY` set ")+ + QString().sprintf("`SEGUE_LENGTH`=%d,",q->value(0).toInt())+ + QString().sprintf("`TRANS_LENGTH`=%d,",q->value(1).toInt())+ + QString().sprintf("`LOG_MODE_STYLE`=%d,",q->value(2).toInt())+ + QString().sprintf("`PIE_COUNT_LENGTH`=%d,",q->value(3).toInt())+ + QString().sprintf("`PIE_COUNT_ENDPOINT`=%d,",q->value(4).toInt())+ + "`CHECK_TIMESYNC`='"+RDEscapeString(q->value(5).toString())+"',"+ + QString().sprintf("`STATION_PANELS`=%d,",q->value(6).toInt())+ + QString().sprintf("`USER_PANELS`=%d,",q->value(7).toInt())+ + "`SHOW_AUX_1`='"+RDEscapeString(q->value(8).toString())+"',"+ + "`SHOW_AUX_2`='"+RDEscapeString(q->value(9).toString())+"',"+ + "`CLEAR_FILTER`='"+RDEscapeString(q->value(10).toString())+"',"+ + QString().sprintf("`DEFAULT_TRANS_TYPE`=%u,",q->value(11).toUInt())+ + QString().sprintf("`BAR_ACTION`=%u,",q->value(12).toUInt())+ + "`FLASH_PANEL`='"+RDEscapeString(q->value(13).toString())+"',"+ + "`PANEL_PAUSE_ENABLED`='"+RDEscapeString(q->value(14).toString())+"',"+ + "`BUTTON_LABEL_TEMPLATE`='"+RDEscapeString(q->value(15).toString())+ + "',"+ + "`PAUSE_ENABLED`='"+RDEscapeString(q->value(16).toString())+"',"+ + "`DEFAULT_SERVICE`='"+RDEscapeString(q->value(17).toString())+"',"+ + "`HOUR_SELECTOR_ENABLED`='"+RDEscapeString(q->value(18).toString())+ + "',"+ + "`TITLE_TEMPLATE`='"+RDEscapeString(q->value(19).toString())+"',"+ + "`ARTIST_TEMPLATE`='"+RDEscapeString(q->value(20).toString())+"',"+ + "`OUTCUE_TEMPLATE`='"+RDEscapeString(q->value(21).toString())+"',"+ + "`DESCRIPTION_TEMPLATE`='"+RDEscapeString(q->value(22).toString())+"',"+ + "`EXIT_PASSWORD`='"+RDEscapeString(q->value(23).toString())+"',"+ + "`SKIN_PATH`='"+RDEscapeString(q->value(24).toString())+"',"+ + "`SHOW_COUNTERS`='"+RDEscapeString(q->value(25).toString())+"',"+ + "`STATION`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; sql=QString("select ")+ - "INSTANCE,"+ // 00 - "CARD,"+ // 01 - "PORT,"+ // 02 - "START_RML,"+ // 03 - "STOP_RML,"+ // 04 - "START_GPI_MATRIX,"+ // 05 - "START_GPI_LINE,"+ // 06 - "START_GPO_MATRIX,"+ // 07 - "START_GPO_LINE,"+ // 08 - "STOP_GPI_MATRIX,"+ // 09 - "STOP_GPI_LINE,"+ // 10 - "STOP_GPO_MATRIX,"+ // 11 - "STOP_GPO_LINE "+ // 12 - "from RDAIRPLAY_CHANNELS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`INSTANCE`,"+ // 00 + "`CARD`,"+ // 01 + "`PORT`,"+ // 02 + "`START_RML`,"+ // 03 + "`STOP_RML`,"+ // 04 + "`START_GPI_MATRIX`,"+ // 05 + "`START_GPI_LINE`,"+ // 06 + "`START_GPO_MATRIX`,"+ // 07 + "`START_GPO_LINE`,"+ // 08 + "`STOP_GPI_MATRIX`,"+ // 09 + "`STOP_GPI_LINE`,"+ // 10 + "`STOP_GPO_MATRIX`,"+ // 11 + "`STOP_GPO_LINE` "+ // 12 + "from `RDAIRPLAY_CHANNELS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { sql=QString("insert into RDAIRPLAY_CHANNELS set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("INSTANCE=%u,",q->value(0).toUInt())+ - QString().sprintf("CARD=%d,",q->value(1).toInt())+ - QString().sprintf("PORT=%d,",q->value(2).toInt())+ - "START_RML=\""+RDEscapeString(q->value(3).toString())+"\","+ - "STOP_RML=\""+RDEscapeString(q->value(4).toString())+"\","+ - QString().sprintf("START_GPI_MATRIX=%d,",q->value(5).toInt())+ - QString().sprintf("START_GPI_LINE=%d,",q->value(6).toInt())+ - QString().sprintf("START_GPO_MATRIX=%d,",q->value(7).toInt())+ - QString().sprintf("START_GPO_LINE=%d,",q->value(8).toInt())+ - QString().sprintf("STOP_GPI_MATRIX=%d,",q->value(9).toInt())+ - QString().sprintf("STOP_GPI_LINE=%d,",q->value(10).toInt())+ - QString().sprintf("STOP_GPO_MATRIX=%d,",q->value(11).toInt())+ - QString().sprintf("STOP_GPO_LINE=%d",q->value(12).toInt()); - q1=new RDSqlQuery(sql); - delete q1; + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`INSTANCE`=%u,",q->value(0).toUInt())+ + QString().sprintf("`CARD`=%d,",q->value(1).toInt())+ + QString().sprintf("`PORT`=%d,",q->value(2).toInt())+ + "`START_RML`='"+RDEscapeString(q->value(3).toString())+"',"+ + "`STOP_RML`='"+RDEscapeString(q->value(4).toString())+"',"+ + QString().sprintf("`START_GPI_MATRIX`=%d,",q->value(5).toInt())+ + QString().sprintf("`START_GPI_LINE`=%d,",q->value(6).toInt())+ + QString().sprintf("`START_GPO_MATRIX`=%d,",q->value(7).toInt())+ + QString().sprintf("`START_GPO_LINE`=%d,",q->value(8).toInt())+ + QString().sprintf("`STOP_GPI_MATRIX`=%d,",q->value(9).toInt())+ + QString().sprintf("`STOP_GPI_LINE`=%d,",q->value(10).toInt())+ + QString().sprintf("`STOP_GPO_MATRIX`=%d,",q->value(11).toInt())+ + QString().sprintf("`STOP_GPO_LINE`=%d",q->value(12).toInt()); + RDSqlQuery::apply(sql); } delete q; @@ -1257,20 +1234,19 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone RDAirPlay Log Modes // sql=QString("select ")+ - "MACHINE,"+ // 00 - "START_MODE,"+ // 01 - "OP_MODE "+ // 02 - "from LOG_MODES where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`MACHINE`,"+ // 00 + "`START_MODE`,"+ // 01 + "`OP_MODE` "+ // 02 + "from `LOG_MODES` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString().sprintf("insert into LOG_MODES set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("MACHINE=%d,",q->value(0).toInt())+ - QString().sprintf("START_MODE=%d,",q->value(1).toInt())+ - QString().sprintf("OP_MODE=%d",q->value(2).toInt()); - q1=new RDSqlQuery(sql); - delete q1; + sql=QString().sprintf("insert into `LOG_MODES` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`MACHINE`=%d,",q->value(0).toInt())+ + QString().sprintf("`START_MODE`=%d,",q->value(1).toInt())+ + QString().sprintf("`OP_MODE`=%d",q->value(2).toInt()); + RDSqlQuery::apply(sql); } delete q; @@ -1278,70 +1254,68 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone RDPanel Config // sql=QString("select ")+ - "STATION_PANELS,"+ // 00 - "USER_PANELS,"+ // 01 - "CLEAR_FILTER,"+ // 02 - "FLASH_PANEL,"+ // 03 - "PANEL_PAUSE_ENABLED,"+ // 04 - "BUTTON_LABEL_TEMPLATE,"+ // 05 - "DEFAULT_SERVICE,"+ // 06 - "SKIN_PATH "+ // 07 - "from RDPANEL where "+ - "STATION=\""+RDEscapeString(exemplar)+"\""; + "`STATION_PANELS`,"+ // 00 + "`USER_PANELS`,"+ // 01 + "`CLEAR_FILTER`,"+ // 02 + "`FLASH_PANEL`,"+ // 03 + "`PANEL_PAUSE_ENABLED`,"+ // 04 + "`BUTTON_LABEL_TEMPLATE`,"+ // 05 + "`DEFAULT_SERVICE`,"+ // 06 + "`SKIN_PATH` "+ // 07 + "from `RDPANEL` where "+ + "`STATION`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); if(q->first()) { - sql=QString("insert into RDPANEL set ")+ - QString().sprintf("STATION_PANELS=%d,",q->value(0).toInt())+ - QString().sprintf("USER_PANELS=%d,",q->value(1).toInt())+ - "CLEAR_FILTER=\""+RDEscapeString(q->value(2).toString())+"\","+ - "FLASH_PANEL=\""+RDEscapeString(q->value(3).toString())+"\","+ - "PANEL_PAUSE_ENABLED=\""+RDEscapeString(q->value(4).toString())+"\","+ - "BUTTON_LABEL_TEMPLATE=\""+RDEscapeString(q->value(5).toString())+"\","+ - "DEFAULT_SERVICE=\""+RDEscapeString(q->value(6).toString())+"\","+ - "SKIN_PATH=\""+RDEscapeString(q->value(7).toString())+"\","+ - "STATION=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `RDPANEL` set ")+ + QString().sprintf("`STATION_PANELS`=%d,",q->value(0).toInt())+ + QString().sprintf("`USER_PANELS`=%d,",q->value(1).toInt())+ + "`CLEAR_FILTER`='"+RDEscapeString(q->value(2).toString())+"',"+ + "`FLASH_PANEL`='"+RDEscapeString(q->value(3).toString())+"',"+ + "`PANEL_PAUSE_ENABLED`='"+RDEscapeString(q->value(4).toString())+"',"+ + "`BUTTON_LABEL_TEMPLATE`='"+RDEscapeString(q->value(5).toString())+"',"+ + "`DEFAULT_SERVICE`='"+RDEscapeString(q->value(6).toString())+"',"+ + "`SKIN_PATH`='"+RDEscapeString(q->value(7).toString())+"',"+ + "`STATION`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; sql=QString("select ")+ - "INSTANCE,"+ // 00 - "CARD,"+ // 01 - "PORT,"+ // 02 - "START_RML,"+ // 03 - "STOP_RML,"+ // 04 - "GPIO_TYPE,"+ // 05 - "START_GPI_MATRIX,"+ // 06 - "START_GPI_LINE,"+ // 07 - "START_GPO_MATRIX,"+ // 08 - "START_GPO_LINE,"+ // 09 - "STOP_GPI_MATRIX,"+ // 10 - "STOP_GPI_LINE,"+ // 11 - "STOP_GPO_MATRIX,"+ // 12 - "STOP_GPO_LINE "+ // 13 - "from RDPANEL_CHANNELS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`INSTANCE`,"+ // 00 + "`CARD`,"+ // 01 + "`PORT`,"+ // 02 + "`START_RML`,"+ // 03 + "`STOP_RML`,"+ // 04 + "`GPIO_TYPE`,"+ // 05 + "`START_GPI_MATRIX`,"+ // 06 + "`START_GPI_LINE`,"+ // 07 + "`START_GPO_MATRIX`,"+ // 08 + "`START_GPO_LINE`,"+ // 09 + "`STOP_GPI_MATRIX`,"+ // 10 + "`STOP_GPI_LINE`,"+ // 11 + "`STOP_GPO_MATRIX`,"+ // 12 + "`STOP_GPO_LINE` "+ // 13 + "from `RDPANEL_CHANNELS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into RDPANEL_CHANNELS set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("INSTANCE=%u,",q->value(0).toUInt())+ - QString().sprintf("CARD=%d,",q->value(1).toInt())+ - QString().sprintf("PORT=%d,",q->value(2).toInt())+ - "START_RML=\""+RDEscapeString(q->value(3).toString())+"\","+ - "STOP_RML=\""+RDEscapeString(q->value(4).toString())+"\","+ - QString().sprintf("GPIO_TYPE=%d,",q->value(5).toInt())+ - QString().sprintf("START_GPI_MATRIX=%d,",q->value(6).toInt())+ - QString().sprintf("START_GPI_LINE=%d,",q->value(7).toInt())+ - QString().sprintf("START_GPO_MATRIX=%d,",q->value(8).toInt())+ - QString().sprintf("START_GPO_LINE=%d,",q->value(9).toInt())+ - QString().sprintf("STOP_GPI_MATRIX=%d,",q->value(10).toInt())+ - QString().sprintf("STOP_GPI_LINE=%d,",q->value(11).toInt())+ - QString().sprintf("STOP_GPO_MATRIX=%d,",q->value(12).toInt())+ - QString().sprintf("STOP_GPO_LINE=%d",q->value(13).toInt()); - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `RDPANEL_CHANNELS` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`INSTANCE`=%u,",q->value(0).toUInt())+ + QString().sprintf("`CARD`=%d,",q->value(1).toInt())+ + QString().sprintf("`PORT`=%d,",q->value(2).toInt())+ + "`START_RML`='"+RDEscapeString(q->value(3).toString())+"',"+ + "`STOP_RML`='"+RDEscapeString(q->value(4).toString())+"',"+ + QString().sprintf("`GPIO_TYPE`=%d,",q->value(5).toInt())+ + QString().sprintf("`START_GPI_MATRIX`=%d,",q->value(6).toInt())+ + QString().sprintf("`START_GPI_LINE`=%d,",q->value(7).toInt())+ + QString().sprintf("`START_GPO_MATRIX`=%d,",q->value(8).toInt())+ + QString().sprintf("`START_GPO_LINE`=%d,",q->value(9).toInt())+ + QString().sprintf("`STOP_GPI_MATRIX`=%d,",q->value(10).toInt())+ + QString().sprintf("`STOP_GPI_LINE`=%d,",q->value(11).toInt())+ + QString().sprintf("`STOP_GPO_MATRIX`=%d,",q->value(12).toInt())+ + QString().sprintf("`STOP_GPO_LINE`=%d",q->value(13).toInt()); + RDSqlQuery::apply(sql); } delete q; @@ -1349,30 +1323,29 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone the Serial Setups // sql=QString("select ")+ - "PORT_ID,"+ // 00 - "ACTIVE,"+ // 01 - "PORT,"+ // 02 - "BAUD_RATE,"+ // 03 - "DATA_BITS,"+ // 04 - "STOP_BITS,"+ // 05 - "PARITY,"+ // 06 - "TERMINATION "+ // 07 - "from TTYS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`PORT_ID`,"+ // 00 + "`ACTIVE`,"+ // 01 + "`PORT`,"+ // 02 + "`BAUD_RATE`,"+ // 03 + "`DATA_BITS`,"+ // 04 + "`STOP_BITS`,"+ // 05 + "`PARITY`,"+ // 06 + "`TERMINATION` "+ // 07 + "from `TTYS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into TTYS set ")+ - QString().sprintf("PORT_ID=%u,",q->value(0).toUInt())+ - "ACTIVE=\""+RDEscapeString(q->value(1).toString())+"\","+ - "PORT=\""+RDEscapeString(q->value(2).toString())+"\","+ - QString().sprintf("BAUD_RATE=%d,",q->value(3).toInt())+ - QString().sprintf("DATA_BITS=%d,",q->value(4).toInt())+ - QString().sprintf("STOP_BITS=%d,",q->value(5).toInt())+ - QString().sprintf("PARITY=%d,",q->value(6).toInt())+ - QString().sprintf("TERMINATION=%d,",q->value(7).toInt())+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `TTYS` set ")+ + QString().sprintf("`PORT_ID`=%u,",q->value(0).toUInt())+ + "`ACTIVE`='"+RDEscapeString(q->value(1).toString())+"',"+ + "`PORT`='"+RDEscapeString(q->value(2).toString())+"',"+ + QString().sprintf("`BAUD_RATE`=%d,",q->value(3).toInt())+ + QString().sprintf("`DATA_BITS`=%d,",q->value(4).toInt())+ + QString().sprintf("`STOP_BITS`=%d,",q->value(5).toInt())+ + QString().sprintf("`PARITY`=%d,",q->value(6).toInt())+ + QString().sprintf("`TERMINATION`=%d,",q->value(7).toInt())+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1380,70 +1353,69 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone Matrices // sql=QString("select ")+ - "NAME,"+ // 00 - "MATRIX,"+ // 01 - "TYPE,"+ // 02 - "LAYER,"+ // 03 - "PORT_TYPE,"+ // 04 - "PORT_TYPE_2,"+ // 05 - "CARD,"+ // 06 - "PORT,"+ // 07 - "PORT_2,"+ // 08 - "IP_ADDRESS,"+ // 09 - "IP_ADDRESS_2,"+ // 10 - "IP_PORT,"+ // 11 - "IP_PORT_2,"+ // 12 - "USERNAME,"+ // 13 - "USERNAME_2,"+ // 14 - "PASSWORD,"+ // 15 - "PASSWORD_2,"+ // 16 - "START_CART,"+ // 17 - "STOP_CART,"+ // 18 - "START_CART_2,"+ // 19 - "STOP_CART_2,"+ // 20 - "GPIO_DEVICE,"+ // 21 - "INPUTS,"+ // 22 - "OUTPUTS,"+ // 23 - "GPIS,"+ // 24 - "GPOS,"+ // 25 - "FADERS,"+ // 26 - "DISPLAYS "+ // 27 - "from MATRICES where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`NAME`,"+ // 00 + "`MATRIX`,"+ // 01 + "`TYPE`,"+ // 02 + "`LAYER`,"+ // 03 + "`PORT_TYPE`,"+ // 04 + "`PORT_TYPE_2`,"+ // 05 + "`CARD`,"+ // 06 + "`PORT`,"+ // 07 + "`PORT_2`,"+ // 08 + "`IP_ADDRESS`,"+ // 09 + "`IP_ADDRESS_2`,"+ // 10 + "`IP_PORT`,"+ // 11 + "`IP_PORT_2`,"+ // 12 + "`USERNAME`,"+ // 13 + "`USERNAME_2`,"+ // 14 + "`PASSWORD`,"+ // 15 + "`PASSWORD_2`,"+ // 16 + "`START_CART`,"+ // 17 + "`STOP_CART`,"+ // 18 + "`START_CART_2`,"+ // 19 + "`STOP_CART_2`,"+ // 20 + "`GPIO_DEVICE`,"+ // 21 + "`INPUTS`,"+ // 22 + "`OUTPUTS`,"+ // 23 + "`GPIS`,"+ // 24 + "`GPOS`,"+ // 25 + "`FADERS`,"+ // 26 + "`DISPLAYS` "+ // 27 + "from `MATRICES` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into MATRICES set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - "NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - QString().sprintf("MATRIX=%d,",q->value(1).toInt())+ - QString().sprintf("TYPE=%d,",q->value(2).toInt())+ - QString().sprintf("LAYER=%d,",q->value(3).toInt())+ - QString().sprintf("PORT_TYPE=%d,",q->value(4).toInt())+ - QString().sprintf("PORT_TYPE_2=%d,",q->value(5).toInt())+ - QString().sprintf("CARD=%d,",q->value(6).toInt())+ - QString().sprintf("PORT=%d,",q->value(7).toInt())+ - QString().sprintf("PORT_2=%d,",q->value(8).toInt())+ - "IP_ADDRESS=\""+RDEscapeString(q->value(9).toString())+"\","+ - "IP_ADDRESS_2=\""+RDEscapeString(q->value(10).toString())+"\","+ - QString().sprintf("IP_PORT=%d,",q->value(11).toInt())+ - QString().sprintf("IP_PORT_2=%d,",q->value(12).toInt())+ - "USERNAME=\""+RDEscapeString(q->value(13).toString())+"\","+ - "USERNAME_2=\""+RDEscapeString(q->value(14).toString())+"\","+ - "PASSWORD=\""+RDEscapeString(q->value(15).toString())+"\","+ - "PASSWORD_2=\""+RDEscapeString(q->value(16).toString())+"\","+ - "START_CART=\""+RDEscapeString(q->value(17).toString())+"\","+ - "STOP_CART=\""+RDEscapeString(q->value(18).toString())+"\","+ - "START_CART_2=\""+RDEscapeString(q->value(19).toString())+"\","+ - "STOP_CART_2=\""+RDEscapeString(q->value(20).toString())+"\","+ - "GPIO_DEVICE=\""+RDEscapeString(q->value(21).toString())+"\","+ - QString().sprintf("INPUTS=%d,",q->value(22).toInt())+ - QString().sprintf("OUTPUTS=%d,",q->value(23).toInt())+ - QString().sprintf("GPIS=%d,",q->value(24).toInt())+ - QString().sprintf("GPOS=%d,",q->value(25).toInt())+ - QString().sprintf("FADERS=%d,",q->value(26).toInt())+ - QString().sprintf("DISPLAYS=%d ",q->value(27).toInt()); - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `MATRICES` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + "`NAME`='"+RDEscapeString(q->value(0).toString())+"',"+ + QString().sprintf("`MATRIX`=%d,",q->value(1).toInt())+ + QString().sprintf("`TYPE`=%d,",q->value(2).toInt())+ + QString().sprintf("`LAYER`=%d,",q->value(3).toInt())+ + QString().sprintf("`PORT_TYPE`=%d,",q->value(4).toInt())+ + QString().sprintf("`PORT_TYPE_2`=%d,",q->value(5).toInt())+ + QString().sprintf("`CARD`=%d,",q->value(6).toInt())+ + QString().sprintf("`PORT`=%d,",q->value(7).toInt())+ + QString().sprintf("`PORT_2`=%d,",q->value(8).toInt())+ + "`IP_ADDRESS`='"+RDEscapeString(q->value(9).toString())+"',"+ + "`IP_ADDRESS_2`='"+RDEscapeString(q->value(10).toString())+"',"+ + QString().sprintf("`IP_PORT`=%d,",q->value(11).toInt())+ + QString().sprintf("`IP_PORT_2`=%d,",q->value(12).toInt())+ + "`USERNAME`='"+RDEscapeString(q->value(13).toString())+"',"+ + "`USERNAME_2`='"+RDEscapeString(q->value(14).toString())+"',"+ + "`PASSWORD`='"+RDEscapeString(q->value(15).toString())+"',"+ + "`PASSWORD_2`='"+RDEscapeString(q->value(16).toString())+"',"+ + "`START_CART`='"+RDEscapeString(q->value(17).toString())+"',"+ + "`STOP_CART`='"+RDEscapeString(q->value(18).toString())+"',"+ + "`START_CART_2`='"+RDEscapeString(q->value(19).toString())+"',"+ + "`STOP_CART_2`='"+RDEscapeString(q->value(20).toString())+"',"+ + "`GPIO_DEVICE`='"+RDEscapeString(q->value(21).toString())+"',"+ + QString().sprintf("`INPUTS`=%d,",q->value(22).toInt())+ + QString().sprintf("`OUTPUTS`=%d,",q->value(23).toInt())+ + QString().sprintf("`GPIS`=%d,",q->value(24).toInt())+ + QString().sprintf("`GPOS`=%d,",q->value(25).toInt())+ + QString().sprintf("`FADERS`=%d,",q->value(26).toInt())+ + QString().sprintf("`DISPLAYS`=%d ",q->value(27).toInt()); + RDSqlQuery::apply(sql); } delete q; @@ -1451,34 +1423,33 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone Matrix Inputs // sql=QString("select ")+ - "MATRIX,"+ // 00 - "NUMBER,"+ // 01 - "NAME,"+ // 02 - "FEED_NAME,"+ // 03 - "CHANNEL_MODE,"+ // 04 - "ENGINE_NUM,"+ // 05 - "DEVICE_NUM,"+ // 06 - "NODE_HOSTNAME,"+ // 07 - "NODE_TCP_PORT,"+ // 08 - "NODE_SLOT "+ // 09 - "from INPUTS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`MATRIX`,"+ // 00 + "`NUMBER`,"+ // 01 + "`NAME`,"+ // 02 + "`FEED_NAME`,"+ // 03 + "`CHANNEL_MODE`,"+ // 04 + "`ENGINE_NUM`,"+ // 05 + "`DEVICE_NUM`,"+ // 06 + "`NODE_HOSTNAME`,"+ // 07 + "`NODE_TCP_PORT`,"+ // 08 + "`NODE_SLOT` "+ // 09 + "from `INPUTS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into INPUTS set ")+ - QString().sprintf("MATRIX=%d,",q->value(0).toInt())+ - QString().sprintf("NUMBER=%d,",q->value(1).toInt())+ - "NAME=\""+RDEscapeString(q->value(2).toString())+"\","+ - "FEED_NAME=\""+RDEscapeString(q->value(3).toString())+"\","+ - QString().sprintf("CHANNEL_MODE=%d,",q->value(4).toInt())+ - QString().sprintf("ENGINE_NUM=%d,",q->value(5).toInt())+ - QString().sprintf("DEVICE_NUM=%d,",q->value(6).toInt())+ - "NODE_HOSTNAME=\""+RDEscapeString(q->value(7).toString())+"\","+ - QString().sprintf("NODE_TCP_PORT=%d,",q->value(8).toInt())+ - QString().sprintf("NODE_SLOT=%d,",q->value(9).toInt())+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `INPUTS` set ")+ + QString().sprintf("`MATRIX`=%d,",q->value(0).toInt())+ + QString().sprintf("`NUMBER`=%d,",q->value(1).toInt())+ + "`NAME`='"+RDEscapeString(q->value(2).toString())+"',"+ + "`FEED_NAME`='"+RDEscapeString(q->value(3).toString())+"',"+ + QString().sprintf("`CHANNEL_MODE`=%d,",q->value(4).toInt())+ + QString().sprintf("`ENGINE_NUM`=%d,",q->value(5).toInt())+ + QString().sprintf("`DEVICE_NUM`=%d,",q->value(6).toInt())+ + "`NODE_HOSTNAME`='"+RDEscapeString(q->value(7).toString())+"',"+ + QString().sprintf("`NODE_TCP_PORT`=%d,",q->value(8).toInt())+ + QString().sprintf("`NODE_SLOT`=%d,",q->value(9).toInt())+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1486,30 +1457,29 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone Matrix Outputs // sql=QString("select ")+ - "MATRIX,"+ // 00 - "NUMBER,"+ // 01 - "NAME,"+ // 02 - "ENGINE_NUM,"+ // 03 - "DEVICE_NUM,"+ // 04 - "NODE_HOSTNAME,"+ // 05 - "NODE_TCP_PORT,"+ // 06 - "NODE_SLOT "+ // 07 - "from OUTPUTS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`MATRIX`,"+ // 00 + "`NUMBER`,"+ // 01 + "`NAME`,"+ // 02 + "`ENGINE_NUM`,"+ // 03 + "`DEVICE_NUM`,"+ // 04 + "`NODE_HOSTNAME`,"+ // 05 + "`NODE_TCP_PORT`,"+ // 06 + "`NODE_SLOT` "+ // 07 + "from `OUTPUTS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into OUTPUTS set ")+ - QString().sprintf("MATRIX=%d,",q->value(0).toInt())+ - QString().sprintf("NUMBER=%d,",q->value(1).toInt())+ - "NAME=\""+RDEscapeString(q->value(2).toString())+"\","+ - QString().sprintf("ENGINE_NUM=%d,",q->value(3).toInt())+ - QString().sprintf("DEVICE_NUM=%d,",q->value(4).toInt())+ - "NODE_HOSTNAME=\""+RDEscapeString(q->value(5).toString())+"\","+ - QString().sprintf("NODE_TCP_PORT=%d,",q->value(6).toInt())+ - QString().sprintf("NODE_SLOT=%d,",q->value(7).toInt())+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `OUTPUTS` set ")+ + QString().sprintf("`MATRIX`=%d,",q->value(0).toInt())+ + QString().sprintf("`NUMBER`=%d,",q->value(1).toInt())+ + "`NAME`='"+RDEscapeString(q->value(2).toString())+"',"+ + QString().sprintf("`ENGINE_NUM`=%d,",q->value(3).toInt())+ + QString().sprintf("`DEVICE_NUM`=%d,",q->value(4).toInt())+ + "`NODE_HOSTNAME`='"+RDEscapeString(q->value(5).toString())+"',"+ + QString().sprintf("`NODE_TCP_PORT`=%d,",q->value(6).toInt())+ + QString().sprintf("`NODE_SLOT`=%d,",q->value(7).toInt())+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1517,22 +1487,21 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone GPIs // sql=QString("select ")+ - "MATRIX,"+ // 00 - "NUMBER,"+ // 01 - "MACRO_CART,"+ // 02 - "OFF_MACRO_CART "+ // 03 - "from GPIS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`MATRIX`,"+ // 00 + "`NUMBER`,"+ // 01 + "`MACRO_CART`,"+ // 02 + "`OFF_MACRO_CART` "+ // 03 + "from `GPIS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into GPIS set ")+ - QString().sprintf("MATRIX=%d,",q->value(0).toInt())+ - QString().sprintf("NUMBER=%d,",q->value(1).toInt())+ - QString().sprintf("MACRO_CART=%d,",q->value(2).toInt())+ - QString().sprintf("OFF_MACRO_CART=%d,",q->value(3).toInt())+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `GPIS` set ")+ + QString().sprintf("`MATRIX`=%d,",q->value(0).toInt())+ + QString().sprintf("`NUMBER`=%d,",q->value(1).toInt())+ + QString().sprintf("`MACRO_CART`=%d,",q->value(2).toInt())+ + QString().sprintf("`OFF_MACRO_CART`=%d,",q->value(3).toInt())+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1540,22 +1509,21 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone GPOs // sql=QString("select ")+ - "MATRIX,"+ // 00 - "NUMBER,"+ // 01 - "MACRO_CART,"+ // 02 - "OFF_MACRO_CART "+ // 03 - "from GPOS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`MATRIX`,"+ // 00 + "`NUMBER`,"+ // 01 + "`MACRO_CART`,"+ // 02 + "`OFF_MACRO_CART` "+ // 03 + "from `GPOS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into GPOS set ")+ - QString().sprintf("MATRIX=%d,",q->value(0).toInt())+ - QString().sprintf("NUMBER=%d,",q->value(1).toInt())+ - QString().sprintf("MACRO_CART=%d,",q->value(2).toInt())+ - QString().sprintf("OFF_MACRO_CART=%d,",q->value(3).toInt())+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `GPOS` set ")+ + QString().sprintf("`MATRIX`=%d,",q->value(0).toInt())+ + QString().sprintf("`NUMBER`=%d,",q->value(1).toInt())+ + QString().sprintf("`MACRO_CART`=%d,",q->value(2).toInt())+ + QString().sprintf("`OFF_MACRO_CART`=%d,",q->value(3).toInt())+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1563,30 +1531,29 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone vGuest Settings // sql=QString("select ")+ - "MATRIX_NUM,"+ // 00 - "VGUEST_TYPE,"+ // 01 - "NUMBER,"+ // 02 - "ENGINE_NUM,"+ // 03 - "DEVICE_NUM,"+ // 04 - "SURFACE_NUM,"+ // 05 - "RELAY_NUM,"+ // 06 - "BUSS_NUM "+ // 07 - "from VGUEST_RESOURCES where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`MATRIX_NUM`,"+ // 00 + "`VGUEST_TYPE`,"+ // 01 + "`NUMBER`,"+ // 02 + "`ENGINE_NUM`,"+ // 03 + "`DEVICE_NUM`,"+ // 04 + "`SURFACE_NUM`,"+ // 05 + "`RELAY_NUM`,"+ // 06 + "`BUSS_NUM` "+ // 07 + "from `VGUEST_RESOURCES` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into VGUEST_RESOURCES set ")+ - QString().sprintf("MATRIX_NUM=%d,",q->value(0).toInt())+ - QString().sprintf("VGUEST_TYPE=%d,",q->value(1).toInt())+ - QString().sprintf("NUMBER=%d,",q->value(2).toInt())+ - QString().sprintf("ENGINE_NUM=%d,",q->value(3).toInt())+ - QString().sprintf("DEVICE_NUM=%d,",q->value(4).toInt())+ - QString().sprintf("SURFACE_NUM=%d,",q->value(5).toInt())+ - QString().sprintf("RELAY_NUM=%d,",q->value(6).toInt())+ - QString().sprintf("BUSS_NUM=%d,",q->value(7).toInt())+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `VGUEST_RESOURCES` set ")+ + QString().sprintf("`MATRIX_NUM`=%d,",q->value(0).toInt())+ + QString().sprintf("`VGUEST_TYPE`=%d,",q->value(1).toInt())+ + QString().sprintf("`NUMBER`=%d,",q->value(2).toInt())+ + QString().sprintf("`ENGINE_NUM`=%d,",q->value(3).toInt())+ + QString().sprintf("`DEVICE_NUM`=%d,",q->value(4).toInt())+ + QString().sprintf("`SURFACE_NUM`=%d,",q->value(5).toInt())+ + QString().sprintf("`RELAY_NUM`=%d,",q->value(6).toInt())+ + QString().sprintf("`BUSS_NUM`=%d,",q->value(7).toInt())+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1594,20 +1561,19 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone Host Variables // sql=QString("select ")+ - "NAME,"+ // 00 - "VARVALUE,"+ // 01 - "REMARK "+ // 02 - "from HOSTVARS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`NAME`,"+ // 00 + "`VARVALUE`,"+ // 01 + "`REMARK` "+ // 02 + "from `HOSTVARS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into HOSTVARS set ")+ - "NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - "VARVALUE=\""+RDEscapeString(q->value(1).toString())+"\","+ - "REMARK=\""+RDEscapeString(q->value(2).toString())+"\","+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `HOSTVARS` set ")+ + "`NAME`='"+RDEscapeString(q->value(0).toString())+"',"+ + "`VARVALUE`='"+RDEscapeString(q->value(1).toString())+"',"+ + "`REMARK`='"+RDEscapeString(q->value(2).toString())+"',"+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1615,54 +1581,52 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone System Panels // sql=QString("select ")+ - "PANEL_NO,"+ - "ROW_NO,"+ - "COLUMN_NO,"+ - "LABEL,"+ - "CART,"+ - "DEFAULT_COLOR "+ - "from PANELS where "+ - QString().sprintf("(TYPE=%d)&&",RDAirPlayConf::StationPanel)+ - "(OWNER=\""+RDEscapeString(exemplar)+"\")"; + "`PANEL_NO`,"+ + "`ROW_NO`,"+ + "`COLUMN_NO`,"+ + "`LABEL`,"+ + "`CART`,"+ + "`DEFAULT_COLOR` "+ + "from `PANELS` where "+ + QString().sprintf("(`TYPE`=%d)&&",RDAirPlayConf::StationPanel)+ + "(`OWNER`='"+RDEscapeString(exemplar)+"')"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into PANELS set ")+ - QString().sprintf("PANEL_NO=%d,",q->value(0).toInt())+ - QString().sprintf("ROW_NO=%d,",q->value(1).toInt())+ - QString().sprintf("COLUMN_NO=%d,",q->value(2).toInt())+ - "LABEL=\""+RDEscapeString(q->value(3).toString())+"\","+ - QString().sprintf("CART=%u,",q->value(4).toUInt())+ - "DEFAULT_COLOR=\""+RDEscapeString(q->value(5).toString())+"\","+ - QString().sprintf("TYPE=%d,",RDAirPlayConf::StationPanel)+ - "OWNER=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `PANELS` set ")+ + QString().sprintf("`PANEL_NO`=%d,",q->value(0).toInt())+ + QString().sprintf("`ROW_NO`=%d,",q->value(1).toInt())+ + QString().sprintf("`COLUMN_NO`=%d,",q->value(2).toInt())+ + "`LABEL`='"+RDEscapeString(q->value(3).toString())+"',"+ + QString().sprintf("`CART=%u,",q->value(4).toUInt())+ + "`DEFAULT_COLOR`='"+RDEscapeString(q->value(5).toString())+"',"+ + QString().sprintf("`TYPE`=%d,",RDAirPlayConf::StationPanel)+ + "`OWNER`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; sql=QString("select ")+ - "PANEL_NO,"+ // 00 - "ROW_NO,"+ // 01 - "COLUMN_NO,"+ // 02 - "LABEL,"+ // 03 - "CART,"+ // 04 - "DEFAULT_COLOR "+ // 05 - "from EXTENDED_PANELS where "+ - QString().sprintf("(TYPE=%d)&&",RDAirPlayConf::StationPanel)+ - "(OWNER=\""+RDEscapeString(exemplar)+"\")"; + "`PANEL_NO`,"+ // 00 + "`ROW_NO`,"+ // 01 + "`COLUMN_NO`,"+ // 02 + "`LABEL`,"+ // 03 + "`CART`,"+ // 04 + "`DEFAULT_COLOR` "+ // 05 + "from `EXTENDED_PANELS` where "+ + QString().sprintf("(`TYPE`=%d)&&",RDAirPlayConf::StationPanel)+ + "(`OWNER`='"+RDEscapeString(exemplar)+"')"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into EXTENDED_PANELS set ")+ - QString().sprintf("PANEL_NO=%d,",q->value(0).toInt())+ - QString().sprintf("ROW_NO=%d,",q->value(1).toInt())+ - QString().sprintf("COLUMN_NO=%d,",q->value(2).toInt())+ - "LABEL=\""+RDEscapeString(q->value(3).toString())+"\","+ - QString().sprintf("CART=%u,",q->value(4).toUInt())+ - "DEFAULT_COLOR=\""+RDEscapeString(q->value(5).toString())+"\","+ - QString().sprintf("TYPE=%d,",RDAirPlayConf::StationPanel)+ - "OWNER=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `EXTENDED_PANELS` set ")+ + QString().sprintf("`PANEL_NO`=%d,",q->value(0).toInt())+ + QString().sprintf("`ROW_NO`=%d,",q->value(1).toInt())+ + QString().sprintf("`COLUMN_NO`=%d,",q->value(2).toInt())+ + "`LABEL`='"+RDEscapeString(q->value(3).toString())+"',"+ + QString().sprintf("`CART`=%u,",q->value(4).toUInt())+ + "`DEFAULT_COLOR`='"+RDEscapeString(q->value(5).toString())+"',"+ + QString().sprintf("`TYPE`=%d,",RDAirPlayConf::StationPanel)+ + "`OWNER`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1696,20 +1660,19 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone PyPAD Instances // sql=QString("select ")+ - "SCRIPT_PATH,"+ // 00 - "DESCRIPTION,"+ // 01 - "CONFIG "+ // 02 - "from PYPAD_INSTANCES where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`SCRIPT_PATH`,"+ // 00 + "`DESCRIPTION`,"+ // 01 + "`CONFIG` "+ // 02 + "from `PYPAD_INSTANCES` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into PYPAD_INSTANCES set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - "SCRIPT_PATH=\""+RDEscapeString(q->value(0).toString())+"\","+ - "DESCRIPTION=\""+RDEscapeString(q->value(1).toString())+"\","+ - "CONFIG=\""+RDEscapeString(q->value(2).toString())+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `PYPAD_INSTANCES` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + "`SCRIPT_PATH`='"+RDEscapeString(q->value(0).toString())+"',"+ + "`DESCRIPTION`='"+RDEscapeString(q->value(1).toString())+"',"+ + "`CONFIG`='"+RDEscapeString(q->value(2).toString())+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1717,40 +1680,39 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone CARTSLOTS // sql=QString("select ")+ - "SLOT_NUMBER,"+ // 00 - "MODE,"+ // 01 - "DEFAULT_MODE,"+ // 02 - "STOP_ACTION,"+ // 03 - "DEFAULT_STOP_ACTION,"+ // 04 - "CART_NUMBER,"+ // 05 - "DEFAULT_CART_NUMBER,"+ // 06 - "HOOK_MODE,"+ // 07 - "DEFAULT_HOOK_MODE,"+ // 08 - "SERVICE_NAME,"+ // 09 - "CARD,"+ // 10 - "INPUT_PORT,"+ // 11 - "OUTPUT_PORT "+ // 12 - "from CARTSLOTS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`SLOT_NUMBER`,"+ // 00 + "`MODE`,"+ // 01 + "`DEFAULT_MODE`,"+ // 02 + "`STOP_ACTION`,"+ // 03 + "`DEFAULT_STOP_ACTION`,"+ // 04 + "`CART_NUMBER`,"+ // 05 + "`DEFAULT_CART_NUMBER`,"+ // 06 + "`HOOK_MODE`,"+ // 07 + "`DEFAULT_HOOK_MODE`,"+ // 08 + "`SERVICE_NAME`,"+ // 09 + "`CARD`,"+ // 10 + "`INPUT_PORT`,"+ // 11 + "`OUTPUT_PORT` "+ // 12 + "from `CARTSLOTS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into CARTSLOTS set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("SLOT_NUMBER=%u,",q->value(0).toUInt())+ - QString().sprintf("MODE=%d,",q->value(1).toInt())+ - QString().sprintf("DEFAULT_MODE=%d,",q->value(2).toInt())+ - QString().sprintf("STOP_ACTION=%d,",q->value(3).toInt())+ - QString().sprintf("DEFAULT_STOP_ACTION=%d,",q->value(4).toInt())+ - QString().sprintf("CART_NUMBER=%d,",q->value(5).toInt())+ - QString().sprintf("DEFAULT_CART_NUMBER=%d,",q->value(6).toInt())+ - QString().sprintf("HOOK_MODE=%d,",q->value(7).toInt())+ - QString().sprintf("DEFAULT_HOOK_MODE=%d,",q->value(8).toInt())+ - "SERVICE_NAME=\""+RDEscapeString(q->value(9).toString())+"\","+ - QString().sprintf("CARD=%d,",q->value(10).toInt())+ - QString().sprintf("INPUT_PORT=%d,",q->value(11).toInt())+ - QString().sprintf("OUTPUT_PORT=%d",q->value(12).toInt()); - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `CARTSLOTS` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`SLOT_NUMBER`=%u,",q->value(0).toUInt())+ + QString().sprintf("`MODE`=%d,",q->value(1).toInt())+ + QString().sprintf("`DEFAULT_MODE`=%d,",q->value(2).toInt())+ + QString().sprintf("`STOP_ACTION`=%d,",q->value(3).toInt())+ + QString().sprintf("`DEFAULT_STOP_ACTION`=%d,",q->value(4).toInt())+ + QString().sprintf("`CART_NUMBER`=%d,",q->value(5).toInt())+ + QString().sprintf("`DEFAULT_CART_NUMBER`=%d,",q->value(6).toInt())+ + QString().sprintf("`HOOK_MODE`=%d,",q->value(7).toInt())+ + QString().sprintf("`DEFAULT_HOOK_MODE`=%d,",q->value(8).toInt())+ + "`SERVICE_NAME`='"+RDEscapeString(q->value(9).toString())+"',"+ + QString().sprintf("`CARD`=%d,",q->value(10).toInt())+ + QString().sprintf("`INPUT_PORT`=%d,",q->value(11).toInt())+ + QString().sprintf("`OUTPUT_PORT`=%d",q->value(12).toInt()); + RDSqlQuery::apply(sql); } delete q; @@ -1758,26 +1720,25 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone Livewire Nodes // sql=QString("select ")+ - "MATRIX,"+ // 00 - "BASE_OUTPUT,"+ // 01 - "HOSTNAME,"+ // 02 - "PASSWORD,"+ // 03 - "TCP_PORT,"+ // 04 - "DESCRIPTION "+ // 05 - "from SWITCHER_NODES where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`MATRIX`,"+ // 00 + "`BASE_OUTPUT`,"+ // 01 + "`HOSTNAME`,"+ // 02 + "`PASSWORD`,"+ // 03 + "`TCP_PORT`,"+ // 04 + "`DESCRIPTION` "+ // 05 + "from `SWITCHER_NODES` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into SWITCHER_NODES set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("MATRIX=%d,",q->value(0).toInt())+ - QString().sprintf("BASE_OUTPUT=%d,",q->value(1).toInt())+ - "HOSTNAME=\""+RDEscapeString(q->value(2).toString())+"\","+ - "PASSWORD=\""+RDEscapeString(q->value(3).toString())+"\","+ - QString().sprintf("TCP_PORT=%d,",q->value(4).toInt())+ - "DESCRIPTION=\""+RDEscapeString(q->value(5).toString())+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `SWITCHER_NODES` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`MATRIX`=%d,",q->value(0).toInt())+ + QString().sprintf("`BASE_OUTPUT`=%d,",q->value(1).toInt())+ + "`HOSTNAME`='"+RDEscapeString(q->value(2).toString())+"',"+ + "`PASSWORD`='"+RDEscapeString(q->value(3).toString())+"',"+ + QString().sprintf("`TCP_PORT`=%d,",q->value(4).toInt())+ + "`DESCRIPTION`='"+RDEscapeString(q->value(5).toString())+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1785,18 +1746,17 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone JACK Clients // sql=QString("select ")+ - "DESCRIPTION,"+ // 00 - "COMMAND_LINE "+ // 01 - "from JACK_CLIENTS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`DESCRIPTION`,"+ // 00 + "`COMMAND_LINE` "+ // 01 + "from `JACK_CLIENTS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into JACK_CLIENTS set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - "DESCRIPTION=\""+RDEscapeString(q->value(0).toString())+"\","+ - "COMMAND_LINE=\""+RDEscapeString(q->value(1).toString())+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `JACK_CLIENTS` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + "`DESCRIPTION`='"+RDEscapeString(q->value(0).toString())+"',"+ + "`COMMAND_LINE`='"+RDEscapeString(q->value(1).toString())+"'"; + RDSqlQuery::apply(sql); } delete q; @@ -1804,32 +1764,32 @@ bool RDStation::create(const QString &name,QString *err_msg, // Log Machine Parameters // sql=QString("select ")+ - "MACHINE,"+ // 00 - "START_MODE,"+ // 01 - "AUTO_RESTART,"+ // 02 - "LOG_NAME,"+ // 03 - "CURRENT_LOG,"+ // 04 - "RUNNING,"+ // 05 - "LOG_ID,"+ // 06 - "LOG_LINE,"+ // 07 - "NOW_CART,"+ // 08 - "NEXT_CART "+ // 09 - "from LOG_MACHINES where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`MACHINE`,"+ // 00 + "`START_MODE`,"+ // 01 + "`AUTO_RESTART`,"+ // 02 + "`LOG_NAME`,"+ // 03 + "`CURRENT_LOG`,"+ // 04 + "`RUNNING`,"+ // 05 + "`LOG_ID`,"+ // 06 + "`LOG_LINE`,"+ // 07 + "`NOW_CART`,"+ // 08 + "`NEXT_CART` "+ // 09 + "from `LOG_MACHINES` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into LOG_MACHINES set ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("MACHINE=%d,",q->value(0).toInt())+ - QString().sprintf("START_MODE=%d,",q->value(1).toInt())+ - "AUTO_RESTART=\""+q->value(2).toString()+"\","+ - "LOG_NAME=\""+RDEscapeString(q->value(3).toString())+"\","+ - "CURRENT_LOG=\""+RDEscapeString(q->value(4).toString())+"\","+ - "RUNNING=\""+q->value(5).toString()+"\","+ - QString().sprintf("LOG_ID=%d,",q->value(6).toInt())+ - QString().sprintf("LOG_LINE=%d,",q->value(7).toInt())+ - QString().sprintf("NOW_CART=%u,",q->value(8).toUInt())+ - QString().sprintf("NEXT_CART=%u",q->value(9).toUInt()); + sql=QString("insert into `LOG_MACHINES` set ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`MACHINE`=%d,",q->value(0).toInt())+ + QString().sprintf("`START_MODE`=%d,",q->value(1).toInt())+ + "`AUTO_RESTART`='"+q->value(2).toString()+"',"+ + "`LOG_NAME`='"+RDEscapeString(q->value(3).toString())+"',"+ + "`CURRENT_LOG`='"+RDEscapeString(q->value(4).toString())+"',"+ + "`RUNNING`='"+q->value(5).toString()+"',"+ + QString().sprintf("`LOG_ID`=%d,",q->value(6).toInt())+ + QString().sprintf("`LOG_LINE`=%d,",q->value(7).toInt())+ + QString().sprintf("`NOW_CART`=%u,",q->value(8).toUInt())+ + QString().sprintf("`NEXT_CART`=%u",q->value(9).toUInt()); RDSqlQuery::apply(sql); } delete q; @@ -1837,16 +1797,18 @@ bool RDStation::create(const QString &name,QString *err_msg, // // Clone Audio Cards // - sql=QString("select CARD_NUMBER,CLOCK_SOURCE from AUDIO_CARDS where ")+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + sql=QString("select ")+ + "`CARD_NUMBER`,"+ // 00 + "`CLOCK_SOURCE` "+ // 01 + "from `AUDIO_CARDS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("update AUDIO_CARDS set ")+ - QString().sprintf("CLOCK_SOURCE=%d where ",q->value(1).toInt())+ - "STATION_NAME=\""+RDEscapeString(name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d",q->value(0).toInt()); - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("update `AUDIO_CARDS` set ")+ + QString().sprintf("`CLOCK_SOURCE`=%d where ",q->value(1).toInt())+ + "`STATION_NAME`='"+RDEscapeString(name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d",q->value(0).toInt()); + RDSqlQuery::apply(sql); } delete q; @@ -1854,24 +1816,23 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone Audio Inputs // sql=QString("select ")+ - "CARD_NUMBER,"+ // 00 - "PORT_NUMBER,"+ // 01 - "LEVEL,"+ // 02 - "TYPE,"+ // 03 - "MODE "+ // 04 - "from AUDIO_INPUTS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`CARD_NUMBER`,"+ // 00 + "`PORT_NUMBER`,"+ // 01 + "`LEVEL`,"+ // 02 + "`TYPE`,"+ // 03 + "`MODE` "+ // 04 + "from `AUDIO_INPUTS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("update AUDIO_INPUTS set ")+ - QString().sprintf("LEVEL=%d,",q->value(2).toInt())+ - QString().sprintf("TYPE=%d,",q->value(3).toInt())+ - QString().sprintf("MODE=%d where ",q->value(4).toInt())+ - "STATION_NAME=\""+RDEscapeString(name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d && ",q->value(0).toInt())+ - QString().sprintf("PORT_NUMBER=%d",q->value(1).toInt()); - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("update `AUDIO_INPUTS` set ")+ + QString().sprintf("`LEVEL`=%d,",q->value(2).toInt())+ + QString().sprintf("`TYPE`=%d,",q->value(3).toInt())+ + QString().sprintf("`MODE`=%d where ",q->value(4).toInt())+ + "`STATION_NAME`='"+RDEscapeString(name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d && ",q->value(0).toInt())+ + QString().sprintf("`PORT_NUMBER`=%d",q->value(1).toInt()); + RDSqlQuery::apply(sql); } delete q; @@ -1879,20 +1840,19 @@ bool RDStation::create(const QString &name,QString *err_msg, // Clone Audio Outputs // sql=QString("select ")+ - "CARD_NUMBER,"+ // 00 - "PORT_NUMBER,"+ // 01 - "LEVEL "+ // 02 - "from AUDIO_OUTPUTS where "+ - "STATION_NAME=\""+RDEscapeString(exemplar)+"\""; + "`CARD_NUMBER`,"+ // 00 + "`PORT_NUMBER`,"+ // 01 + "`LEVEL` "+ // 02 + "from `AUDIO_OUTPUTS` where "+ + "`STATION_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("update AUDIO_OUTPUTS set ")+ - QString().sprintf("LEVEL=%d where ",q->value(2).toInt())+ - "STATION_NAME=\""+RDEscapeString(name)+"\" && "+ - QString().sprintf("CARD_NUMBER=%d && ",q->value(0).toInt())+ - QString().sprintf("PORT_NUMBER=%d",q->value(1).toInt()); - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("update `AUDIO_OUTPUTS` set ")+ + QString().sprintf("`LEVEL`=%d where ",q->value(2).toInt())+ + "`STATION_NAME`='"+RDEscapeString(name)+"' && "+ + QString().sprintf("`CARD_NUMBER`=%d && ",q->value(0).toInt())+ + QString().sprintf("`PORT_NUMBER`=%d",q->value(1).toInt()); + RDSqlQuery::apply(sql); } delete q; } @@ -1903,194 +1863,174 @@ bool RDStation::create(const QString &name,QString *err_msg, void RDStation::remove(const QString &name) { QString sql; - RDSqlQuery *q; - 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("delete from TTYS where ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; - - 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("delete from REPORT_STATIONS where ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; - sql=QString("delete from PANELS where ")+ - QString().sprintf("(TYPE=%d && ",RDAirPlayConf::StationPanel)+ - "OWNER=\""+RDEscapeString(name)+"\")"; - q=new RDSqlQuery(sql); - delete q; - 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 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); - delete q; - - sql=QString("delete from PYPAD_INSTANCES where ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; - - sql=QString("delete from CARTSLOTS where ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; - - sql=QString("delete from SWITCHER_NODES where ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; - - sql=QString("delete from JACK_CLIENTS where ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; - - sql=QString("delete from LOG_MACHINES where ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; - - sql=QString("delete from AUDIO_CARDS where ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; - - sql=QString("delete from AUDIO_INPUTS where ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; - - sql=QString("delete from AUDIO_OUTPUTS where ")+ - "STATION_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("delete from `DECKS where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `DECK_EVENTS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `TTYS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `RECORDINGS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `SERVICE_PERMS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `RDAIRPLAY` where ")+ + "`STATION`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `RDAIRPLAY_CHANNELS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `RDPANEL` where ")+ + "`STATION`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `RDPANEL_CHANNELS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `RDLOGEDIT` where ")+ + "`STATION`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `MATRICES` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `INPUTS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `OUTPUTS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `VGUEST_RESOURCES` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `RDLIBRARY` where ")+ + "`STATION`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `GPIS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `HOSTVARS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `STATIONS` where ")+ + "NAME='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `REPORT_STATIONS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `PANELS` where ")+ + QString().sprintf("(`TYPE`=%d && ",RDAirPlayConf::StationPanel)+ + "`OWNER`='"+RDEscapeString(name)+"')"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `EXTENDED_PANELS` where ")+ + QString().sprintf("(`TYPE`=%d && ",RDAirPlayConf::StationPanel)+ + "`OWNER`='"+RDEscapeString(name)+"')"; + RDSqlQuery::apply(sql); + + sql=QString().sprintf("delete from `RDHOTKEYS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `LOG_MODES` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `PYPAD_INSTANCES` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `CARTSLOTS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `SWITCHER_NODES` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `JACK_CLIENTS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `LOG_MACHINES` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `AUDIO_CARDS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `AUDIO_INPUTS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); + + sql=QString("delete from `AUDIO_OUTPUTS` where ")+ + "`STATION_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } void RDStation::SetRow(const QString ¶m,const QString &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update STATIONS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "NAME=\""+RDEscapeString(station_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `STATIONS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`NAME`='"+RDEscapeString(station_name)+"'"; + RDSqlQuery::apply(sql); } void RDStation::SetRow(const QString ¶m,int value) const { - RDSqlQuery *q; QString sql; - sql=QString().sprintf("update STATIONS set ")+ - param+QString().sprintf("=%d where ",value)+ - "NAME=\""+RDEscapeString(station_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString().sprintf("update `STATIONS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`NAME`='"+RDEscapeString(station_name)+"'"; + RDSqlQuery::apply(sql); } void RDStation::SetRow(const QString ¶m,unsigned value) const { - RDSqlQuery *q; QString sql; - sql=QString("update STATIONS set ")+ - param+QString().sprintf("=%u where ",value)+ - "NAME=\""+RDEscapeString(station_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `STATIONS` set `")+ + param+QString().sprintf("`=%u where ",value)+ + "`NAME`='"+RDEscapeString(station_name)+"'"; + RDSqlQuery::apply(sql); } void RDStation::SetRow(const QString ¶m,bool value) const { - RDSqlQuery *q; QString sql; - sql=QString("update STATIONS set ")+ - param+"=\""+RDYesNo(value)+"\" where "+ - "NAME=\""+RDEscapeString(station_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `STATIONS` set `")+ + param+"`='"+RDYesNo(value)+"' where "+ + "`NAME`='"+RDEscapeString(station_name)+"'"; + RDSqlQuery::apply(sql); } diff --git a/lib/rdstationlistmodel.cpp b/lib/rdstationlistmodel.cpp index 48e282fc..057b30a7 100644 --- a/lib/rdstationlistmodel.cpp +++ b/lib/rdstationlistmodel.cpp @@ -236,7 +236,7 @@ void RDStationListModel::refresh(const QModelIndex &row) { if(row.row()first()) { updateRow(row.row(),q); @@ -266,7 +266,7 @@ void RDStationListModel::updateModel() RDSqlQuery *q=NULL; QString sql=sqlFields(); - sql+="order by NAME "; + sql+="order by `NAME` "; beginResetModel(); d_hostnames.clear(); d_texts.clear(); @@ -298,7 +298,7 @@ void RDStationListModel::updateRowLine(int line) { if(linefirst()) { updateRow(line,q); @@ -440,24 +440,24 @@ void RDStationListModel::updateRow(int row,RDSqlQuery *q) QString RDStationListModel::sqlFields() const { QString sql=QString("select ")+ - "STATIONS.NAME,"+ // 00 - "STATIONS.DESCRIPTION,"+ // 01 - "STATIONS.IPV4_ADDRESS,"+ // 02 - "STATIONS.DEFAULT_NAME,"+ // 03 - "USERS.LOCAL_AUTH,"+ // 04 - "STATIONS.SHORT_NAME,"+ // 05 - "STATIONS.HTTP_STATION,"+ // 06 - "STATIONS.CAE_STATION,"+ // 07 - "STATIONS.REPORT_EDITOR_PATH,"+ // 08 - "STATIONS.BROWSER_PATH,"+ // 09 - "STATIONS.SYSTEM_MAINT,"+ // 10 - "STATIONS.ENABLE_DRAGDROP,"+ // 11 - "STATIONS.STATION_SCANNED,"+ // 12 - "STATIONS.HPI_VERSION,"+ // 13 - "STATIONS.JACK_VERSION,"+ // 14 - "STATIONS.ALSA_VERSION "+ // 15 - "from STATIONS left join USERS "+ - "on STATIONS.DEFAULT_NAME=USERS.LOGIN_NAME "; + "`STATIONS`.`NAME`,"+ // 00 + "`STATIONS`.`DESCRIPTION`,"+ // 01 + "`STATIONS`.`IPV4_ADDRESS`,"+ // 02 + "`STATIONS`.`DEFAULT_NAME`,"+ // 03 + "`USERS`.`LOCAL_AUTH`,"+ // 04 + "`STATIONS`.`SHORT_NAME`,"+ // 05 + "`STATIONS`.`HTTP_STATION`,"+ // 06 + "`STATIONS`.`CAE_STATION`,"+ // 07 + "`STATIONS`.`REPORT_EDITOR_PATH`,"+ // 08 + "`STATIONS`.`BROWSER_PATH`,"+ // 09 + "`STATIONS`.`SYSTEM_MAINT`,"+ // 10 + "`STATIONS`.`ENABLE_DRAGDROP`,"+ // 11 + "`STATIONS`.`STATION_SCANNED`,"+ // 12 + "`STATIONS`.`HPI_VERSION`,"+ // 13 + "`STATIONS`.`JACK_VERSION`,"+ // 14 + "`STATIONS`.`ALSA_VERSION` "+ // 15 + "from `STATIONS` left join `USERS` "+ + "on `STATIONS`.`DEFAULT_NAME`=`USERS`.`LOGIN_NAME` "; return sql; } diff --git a/lib/rdstatus.cpp b/lib/rdstatus.cpp index db3e57f7..93e1fb3c 100644 --- a/lib/rdstatus.cpp +++ b/lib/rdstatus.cpp @@ -2,7 +2,7 @@ // // Functions for getting system status. // -// (C) Copyright 2016-2020 Fred Gleason +// (C) Copyright 2016-2021 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU Library General Public License @@ -24,9 +24,6 @@ #include #include -#include -#include -#include #include "rdapplication.h" #include "rdstatus.h" @@ -85,7 +82,7 @@ bool RDDbValid(RDConfig *config,int *schema) db->setHostName(config->mysqlHostname()); if(db->open()) { ret=true; - sql="select DB from VERSION"; + sql="select `DB` from `VERSION`"; q=new QSqlQuery(sql); if(q->first()) { *schema=q->value(0).toInt(); diff --git a/lib/rdsvc.cpp b/lib/rdsvc.cpp index f641963a..e3a4f864 100644 --- a/lib/rdsvc.cpp +++ b/lib/rdsvc.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell Service. // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -400,9 +400,9 @@ QString RDSvc::importFilename(ImportSource src,const QDate &date) const break; } QString os_flag; - QString sql=QString("select ")+ - src_str+os_flag+"_PATH from SERVICES where "+ - "NAME=\""+RDEscapeString(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()) { @@ -455,13 +455,13 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, // Load Parser Parameters // 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 - "SUB_EVENT_INHERITANCE "+ // 04 - "from SERVICES where "+ - "NAME=\""+RDEscapeString(svc_name)+"\""; + "`"+src_str+os_flag+"_PATH`,"+ // 00 + "`"+src_str+"_LABEL_CART`,"+ // 01 + "`"+src_str+"_TRACK_CART`,"+ // 02 + "`"+src_str+os_flag+"_PREIMPORT_CMD`,"+ // 03 + "`SUB_EVENT_INHERITANCE` "+ // 04 + "from `SERVICES` where "+ + "`NAME`='"+RDEscapeString(svc_name)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -495,38 +495,38 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, QString parser_name; if(importTemplate(src).isEmpty()) { src_str+="_"; - parser_table="SERVICES"; + parser_table="`SERVICES`"; parser_name=svc_name; } else { src_str=""; - parser_table="IMPORT_TEMPLATES"; + parser_table="`IMPORT_TEMPLATES`"; parser_name=importTemplate(src); } sql=QString("select ")+ - src_str+"CART_OFFSET,"+ // 00 - src_str+"CART_LENGTH,"+ // 01 - src_str+"DATA_OFFSET,"+ // 02 - src_str+"DATA_LENGTH,"+ // 03 - src_str+"EVENT_ID_OFFSET,"+ // 04 - src_str+"EVENT_ID_LENGTH,"+ // 05 - src_str+"ANNC_TYPE_OFFSET,"+ // 06 - src_str+"ANNC_TYPE_LENGTH,"+ // 07 - src_str+"TITLE_OFFSET,"+ // 08 - src_str+"TITLE_LENGTH,"+ // 09 - src_str+"HOURS_OFFSET,"+ // 10 - src_str+"HOURS_LENGTH,"+ // 11 - src_str+"MINUTES_OFFSET,"+ // 12 - src_str+"MINUTES_LENGTH,"+ // 13 - src_str+"SECONDS_OFFSET,"+ // 14 - src_str+"SECONDS_LENGTH,"+ // 15 - src_str+"LEN_HOURS_OFFSET,"+ // 16 - src_str+"LEN_HOURS_LENGTH,"+ // 17 - src_str+"LEN_MINUTES_OFFSET,"+ // 18 - src_str+"LEN_MINUTES_LENGTH,"+ // 19 - src_str+"LEN_SECONDS_OFFSET,"+ // 20 - src_str+"LEN_SECONDS_LENGTH "+ // 21 - "from "+parser_table+" where NAME=\""+RDEscapeString(parser_name)+"\""; + "`"+src_str+"CART_OFFSET`,"+ // 00 + "`"+src_str+"CART_LENGTH`,"+ // 01 + "`"+src_str+"DATA_OFFSET`,"+ // 02 + "`"+src_str+"DATA_LENGTH`,"+ // 03 + "`"+src_str+"EVENT_ID_OFFSET`,"+ // 04 + "`"+src_str+"EVENT_ID_LENGTH`,"+ // 05 + "`"+src_str+"ANNC_TYPE_OFFSET`,"+ // 06 + "`"+src_str+"ANNC_TYPE_LENGTH`,"+ // 07 + "`"+src_str+"TITLE_OFFSET`,"+ // 08 + "`"+src_str+"TITLE_LENGTH`,"+ // 09 + "`"+src_str+"HOURS_OFFSET`,"+ // 10 + "`"+src_str+"HOURS_LENGTH`,"+ // 11 + "`"+src_str+"MINUTES_OFFSET`,"+ // 12 + "`"+src_str+"MINUTES_LENGTH`,"+ // 13 + "`"+src_str+"SECONDS_OFFSET`,"+ // 14 + "`"+src_str+"SECONDS_LENGTH`,"+ // 15 + "`"+src_str+"LEN_HOURS_OFFSET`,"+ // 16 + "`"+src_str+"LEN_HOURS_LENGTH`,"+ // 17 + "`"+src_str+"LEN_MINUTES_OFFSET`,"+ // 18 + "`"+src_str+"LEN_MINUTES_LENGTH`,"+ // 19 + "`"+src_str+"LEN_SECONDS_OFFSET`,"+ // 20 + "`"+src_str+"LEN_SECONDS_LENGTH` "+ // 21 + "from "+parser_table+" where `NAME`='"+RDEscapeString(parser_name)+"'"; q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -560,9 +560,9 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, // // Setup Data Source and Destination // - sql=QString("delete from IMPORTER_LINES where ")+ - "STATION_NAME=\""+RDEscapeString(svc_station->name())+"\" && "+ - QString().sprintf("PROCESS_ID=%u",getpid()); + sql=QString("delete from `IMPORTER_LINES` where ")+ + "`STATION_NAME`='"+RDEscapeString(svc_station->name())+"' && "+ + QString().sprintf("`PROCESS_ID`=%u",getpid()); RDSqlQuery::apply(sql); // @@ -645,31 +645,30 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, // // Common SQL Elements // - sql=QString("insert into IMPORTER_LINES set ")+ - "STATION_NAME=\""+RDEscapeString(svc_station->name())+"\","+ - QString().sprintf("PROCESS_ID=%d,",getpid())+ - QString().sprintf("FILE_LINE=%u,",file_line)+ - QString().sprintf("LINE_ID=%d,",line_id); + sql=QString("insert into `IMPORTER_LINES` set ")+ + "`STATION_NAME`='"+RDEscapeString(svc_station->name())+"',"+ + QString().sprintf("`PROCESS_ID`=%d,",getpid())+ + QString().sprintf("`FILE_LINE`=%u,",file_line)+ + QString().sprintf("`LINE_ID`=%d,",line_id); if(start_time_ok) { - sql+=QString().sprintf("START_HOUR=%d,",start_hour)+ - QString().sprintf("START_SECS=%d,", - 60*start_minutes+start_seconds); + sql+=QString().sprintf("`START_HOUR`=%d,",start_hour)+ + QString().sprintf("`START_SECS`=%d,",60*start_minutes+start_seconds); } if(cartlen>=0) { - sql+=QString().sprintf("LENGTH=%d,",cartlen); + sql+=QString().sprintf("`LENGTH`=%d,",cartlen); } // // Cart // if(start_time_ok&&cart_ok&&(cartnum>0)&&(cartnum<=RD_MAX_CART_NUMBER)) { - sql+=QString().sprintf("TYPE=%u,",RDLogLine::Cart)+ - "EXT_DATA=\""+data_buf.trimmed()+"\","+ - "EXT_EVENT_ID=\""+eventid_buf.trimmed()+"\","+ - "EXT_ANNC_TYPE=\""+annctype_buf.trimmed()+"\","+ - "EXT_CART_NAME=\""+cartname.trimmed()+"\","+ - QString().sprintf("CART_NUMBER=%u,",cartnum)+ - "TITLE=\""+RDEscapeString(title)+"\""; + sql+=QString().sprintf("`TYPE`=%u,",RDLogLine::Cart)+ + "`EXT_DATA`='"+data_buf.trimmed()+"',"+ + "`EXT_EVENT_ID`='"+eventid_buf.trimmed()+"',"+ + "`EXT_ANNC_TYPE`='"+annctype_buf.trimmed()+"',"+ + "`EXT_CART_NAME`='"+cartname.trimmed()+"',"+ + QString().sprintf("`CART_NUMBER`=%u,",cartnum)+ + "`TITLE`='"+RDEscapeString(title)+"'"; RDSqlQuery::apply(sql); line_id++; file_line++; @@ -681,7 +680,7 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, // if((src==RDSvc::Music)&&(!break_str.isEmpty())) { if(str_buf.contains(break_str)) { - sql+=QString().sprintf("TYPE=%u ",RDLogLine::TrafficLink); + sql+=QString().sprintf("`TYPE`=%u ",RDLogLine::TrafficLink); RDSqlQuery::apply(sql); line_id++; file_line++; @@ -693,14 +692,14 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, // Track Marker // if((!track_str.isEmpty())&&(str_buf.contains(track_str))) { - sql+=QString().sprintf("TYPE=%u,",RDLogLine::Track); + sql+=QString().sprintf("`TYPE`=%u,",RDLogLine::Track); switch(inherit) { case RDSvc::ParentEvent: - sql+="TITLE=\""+RDEscapeString(str_buf.simplified().trimmed())+"\""; + sql+="`TITLE`='"+RDEscapeString(str_buf.simplified().trimmed())+"'"; break; case RDSvc::SchedFile: - sql+="TITLE=\""+RDEscapeString(title)+"\""; + sql+="`TITLE`='"+RDEscapeString(title)+"'"; break; } RDSqlQuery::apply(sql); @@ -713,14 +712,14 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, // Label/Note Cart // if((!label_cart.isEmpty())&&(str_buf.contains(label_cart))) { - sql+=QString().sprintf("TYPE=%u,",RDLogLine::Marker); + sql+=QString().sprintf("`TYPE`=%u,",RDLogLine::Marker); switch(inherit) { case RDSvc::ParentEvent: - sql+="TITLE=\""+RDEscapeString(str_buf.simplified().trimmed())+"\""; + sql+="`TITLE`='"+RDEscapeString(str_buf.simplified().trimmed())+"'"; break; case RDSvc::SchedFile: - sql+="TITLE=\""+RDEscapeString(title)+"\""; + sql+="`TITLE`='"+RDEscapeString(title)+"'"; break; } RDSqlQuery::apply(sql); @@ -747,14 +746,14 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, QList prev_ids; sql=QString("select ")+ - "ID,"+ // 00 - "START_HOUR,"+ // 01 - "START_SECS,"+ // 02 - "LENGTH "+ // 03 - "from IMPORTER_LINES where "+ - "STATION_NAME=\""+RDEscapeString(svc_station->name())+"\" && "+ - QString().sprintf("PROCESS_ID=%d ",getpid())+ - "order by FILE_LINE"; + "`ID`,"+ // 00 + "`START_HOUR`,"+ // 01 + "`START_SECS`,"+ // 02 + "`LENGTH` "+ // 03 + "from `IMPORTER_LINES` where "+ + "`STATION_NAME`='"+RDEscapeString(svc_station->name())+"' && "+ + QString().sprintf("`PROCESS_ID`=%d ",getpid())+ + "order by `FILE_LINE`"; q=new RDSqlQuery(sql); while(q->next()) { if((!q->value(1).isNull())&&(!q->value(2).isNull())&& @@ -764,13 +763,13 @@ bool RDSvc::import(ImportSource src,const QDate &date,const QString &break_str, if(len<0) { len=0; } - sql=QString("update IMPORTER_LINES set ")+ - QString().sprintf("START_HOUR=%d,",prev_hour)+ - QString().sprintf("START_SECS=%d,",prev_secs+prev_length/1000)+ - QString().sprintf("LENGTH=%d ",len)+ + sql=QString("update `IMPORTER_LINES` set ")+ + QString().sprintf("`START_HOUR`=%d,",prev_hour)+ + QString().sprintf("`START_SECS`=%d,",prev_secs+prev_length/1000)+ + QString().sprintf("`LENGTH`=%d ",len)+ "where "; for(int i=0;i0) { - sql=QString("update IMPORTER_LINES set ")+ - QString().sprintf("START_HOUR=%d,",prev_hour)+ - QString().sprintf("START_SECS=%d,",prev_secs+prev_length/1000)+ - "LENGTH=0 "+ + sql=QString("update `IMPORTER_LINES` set ")+ + QString().sprintf("`START_HOUR`=%d,",prev_hour)+ + QString().sprintf("`START_SECS`=%d,",prev_secs+prev_length/1000)+ + "`LENGTH`=0 "+ "where "; for(int i=0;ifirst()) { if((!q->value(0).isNull())&&(!q->value(0).toString().isEmpty())) { @@ -876,9 +875,9 @@ bool RDSvc::generateLog(const QDate &date,const QString &logname, // Get Current Count // int count; - sql=QString("select COUNT from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(logname)+"\" "+ - "order by COUNT desc"; + sql=QString("select `COUNT` from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(logname)+"' "+ + "order by `COUNT` desc"; q=new RDSqlQuery(sql); if(q->first()) { count=q->value(0).toInt()+1; @@ -892,15 +891,15 @@ bool RDSvc::generateLog(const QDate &date,const QString &logname, // Log Chain To // if(chainto()) { - sql=QString("insert into LOG_LINES set ")+ - "LOG_NAME=\""+RDEscapeString(logname)+"\","+ - QString().sprintf("LINE_ID=%d,",count)+ - QString().sprintf("COUNT=%d,",count)+ - QString().sprintf("TYPE=%d,",RDLogLine::Chain)+ - QString().sprintf("SOURCE=%d,",RDLogLine::Template)+ - QString().sprintf("TRANS_TYPE=%d,",RDLogLine::Segue)+ - QString().sprintf("TIME_TYPE=%d,",RDLogLine::Relative)+ - "LABEL=\""+RDEscapeString(nextname)+"\""; + sql=QString("insert into `LOG_LINES` set ")+ + "`LOG_NAME`='"+RDEscapeString(logname)+"',"+ + QString().sprintf("`LINE_ID`=%d,",count)+ + QString().sprintf("`COUNT`=%d,",count)+ + QString().sprintf("`TYPE`=%d,",RDLogLine::Chain)+ + QString().sprintf("`SOURCE`=%d,",RDLogLine::Template)+ + QString().sprintf("`TRANS_TYPE`=%d,",RDLogLine::Segue)+ + QString().sprintf("`TIME_TYPE`=%d,",RDLogLine::Relative)+ + "`LABEL`='"+RDEscapeString(nextname)+"'"; q=new RDSqlQuery(sql); delete q; count ++; @@ -1040,19 +1039,19 @@ bool RDSvc::linkLog(RDSvc::ImportSource src,const QDate &date, bool event=false; QString link_report=tr("The following events were not placed:\n"); sql=QString("select ")+ - "IMPORTER_LINES.START_HOUR,"+ // 00 - "IMPORTER_LINES.START_SECS,"+ // 01 - "IMPORTER_LINES.TYPE,"+ // 02 - "IMPORTER_LINES.CART_NUMBER,"+ // 03 - "IMPORTER_LINES.TITLE,"+ // 04 - "CART.TITLE "+ // 05 - "from IMPORTER_LINES left join CART "+ - "on IMPORTER_LINES.CART_NUMBER=CART.NUMBER where "+ - "IMPORTER_LINES.STATION_NAME=\""+ - RDEscapeString(svc_station->name())+"\" && "+ - QString().sprintf("IMPORTER_LINES.PROCESS_ID=%u && ",getpid())+ - "IMPORTER_LINES.EVENT_USED=\"N\" "+ - "order by LINE_ID"; + "`IMPORTER_LINES`.`START_HOUR`,"+ // 00 + "`IMPORTER_LINES`.`START_SECS`,"+ // 01 + "`IMPORTER_LINES`.`TYPE`,"+ // 02 + "`IMPORTER_LINES`.`CART_NUMBER`,"+ // 03 + "`IMPORTER_LINES`.`TITLE`,"+ // 04 + "`CART`.`TITLE` "+ // 05 + "from `IMPORTER_LINES` left join `CART` "+ + "on `IMPORTER_LINES`.`CART_NUMBER`=`CART`.`NUMBER` where "+ + "`IMPORTER_LINES`.`STATION_NAME`='"+ + RDEscapeString(svc_station->name())+"' && "+ + QString().sprintf("`IMPORTER_LINES`.`PROCESS_ID`=%u && ",getpid())+ + "`IMPORTER_LINES`.`EVENT_USED`='N' "+ + "order by `LINE_ID`"; q=new RDSqlQuery(sql); while(q->next()) { event=true; @@ -1119,9 +1118,9 @@ bool RDSvc::linkLog(RDSvc::ImportSource src,const QDate &date, delete src_model; delete dst_model; - sql=QString("delete from IMPORTER_LINES where ")+ - "STATION_NAME=\""+RDEscapeString(svc_station->name())+"\" && "+ - QString().sprintf("PROCESS_ID=%u",getpid()); + sql=QString("delete from `IMPORTER_LINES` where ")+ + "`STATION_NAME`='"+RDEscapeString(svc_station->name())+"' && "+ + QString().sprintf("`PROCESS_ID`=%u",getpid()); // printf("Importer Table Cleanup SQL: %s\n",(const char *)sql); RDSqlQuery::apply(sql); delete log_lock; @@ -1189,8 +1188,8 @@ void RDSvc::remove() const bool RDSvc::exists(const QString &name) { bool ret=false; - QString sql=QString("select NAME from SERVICES where ")+ - "NAME=\""+RDEscapeString(name)+"\""; + QString sql=QString("select `NAME` from `SERVICES` where ")+ + "`NAME`='"+RDEscapeString(name)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); ret=q->first(); delete q; @@ -1203,8 +1202,8 @@ QString RDSvc::xml() const QString sql; RDSqlQuery *q; QString ret; - sql="select DESCRIPTION from SERVICES where NAME=\""+ - RDEscapeString(svc_name)+"\""; + sql="select `DESCRIPTION` from `SERVICES` where `NAME`='"+ + RDEscapeString(svc_name)+"'"; q=new RDSqlQuery(sql); if(q->first()) { @@ -1223,15 +1222,14 @@ bool RDSvc::create(const QString &name,QString *err_msg, { QString sql; RDSqlQuery *q; - RDSqlQuery *q1; if(name.simplified()!=name) { *err_msg=QObject::tr("whitespace is not permitted in service names"); return false; } - sql=QString("select NAME from SERVICES where ")+ - "NAME=\""+RDEscapeString(name)+"\""; + sql=QString("select `NAME` from `SERVICES` where ")+ + "`NAME`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); if(q->first()) { *err_msg=QObject::tr("service already exists"); @@ -1240,217 +1238,216 @@ bool RDSvc::create(const QString &name,QString *err_msg, } if(exemplar.isEmpty()) { // Create Empty Service - sql=QString("insert into SERVICES set NAME=\"")+ - RDEscapeString(name)+"\","+ - "NAME_TEMPLATE=\""+RDEscapeString(name)+"-%m%d\","+ - "DESCRIPTION_TEMPLATE=\""+RDEscapeString(name)+" log for %d/%m/%Y\""; + sql=QString("insert into `SERVICES` set `NAME`='")+ + RDEscapeString(name)+"',"+ + "`NAME_TEMPLATE`='"+RDEscapeString(name)+"-%m%d',"+ + "`DESCRIPTION_TEMPLATE`='"+RDEscapeString(name)+" log for %d/%m/%Y'"; q=new RDSqlQuery(sql); delete q; // // Create Group Audio Perms // - sql="select NAME from GROUPS"; + sql="select `NAME` from `GROUPS`"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into AUDIO_PERMS set ")+ - "GROUP_NAME=\""+RDEscapeString(q->value(0).toString())+"\"," - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `AUDIO_PERMS` set ")+ + "`GROUP_NAME`='"+RDEscapeString(q->value(0).toString())+"'," + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; // // Create Station Perms // - sql="select NAME from STATIONS"; + sql="select `NAME` from `STATIONS`"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into SERVICE_PERMS set ")+ - "STATION_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `SERVICE_PERMS` set ")+ + "`STATION_NAME`='"+RDEscapeString(q->value(0).toString())+"',"+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; for(int i=0;i<168;i++) { - sql=QString("insert into SERVICE_CLOCKS set ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("HOUR=%d,",i)+ - "CLOCK_NAME=null"; - q=new RDSqlQuery(sql); - delete q; + sql=QString("insert into `SERVICE_CLOCKS` set ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`HOUR`=%d,",i)+ + "`CLOCK_NAME`=null"; + RDSqlQuery::apply(sql); } } else { // Base on Existing Service sql=QString("select ")+ - "DESCRIPTION,"+ // 00 - "NAME_TEMPLATE,"+ // 01 - "DESCRIPTION_TEMPLATE,"+ // 02 - "PROGRAM_CODE,"+ // 03 - "CHAIN_LOG,"+ // 04 - "SUB_EVENT_INHERITANCE,"+ // 05 - "TRACK_GROUP,"+ // 06 - "AUTOSPOT_GROUP,"+ // 07 - "DEFAULT_LOG_SHELFLIFE,"+ // 08 - "LOG_SHELFLIFE_ORIGIN,"+ // 09 - "AUTO_REFRESH,"+ // 10 - "ELR_SHELFLIFE,"+ // 11 - "TFC_PREIMPORT_CMD,"+ // 12 - "TFC_IMPORT_TEMPLATE,"+ // 13 - "TFC_PATH,"+ // 14 - "TFC_LABEL_CART,"+ // 15 - "TFC_TRACK_CART,"+ // 16 - "TFC_BREAK_STRING,"+ // 17 - "TFC_TRACK_STRING,"+ // 18 - "TFC_CART_OFFSET,"+ // 19 - "TFC_CART_LENGTH,"+ // 20 - "TFC_TITLE_OFFSET," // 21 - "TFC_TITLE_LENGTH,"+ // 22 - "TFC_LEN_HOURS_OFFSET," // 23 - "TFC_LEN_HOURS_LENGTH," // 24 - "TFC_LEN_MINUTES_OFFSET," // 25 - "TFC_LEN_MINUTES_LENGTH," // 26 - "TFC_LEN_SECONDS_OFFSET," // 27 - "TFC_LEN_SECONDS_LENGTH," // 28 - "TFC_HOURS_OFFSET,"+ // 29 - "TFC_HOURS_LENGTH,"+ // 30 - "TFC_MINUTES_OFFSET,"+ // 31 - "TFC_MINUTES_LENGTH,"+ // 32 - "TFC_SECONDS_OFFSET,"+ // 33 - "TFC_SECONDS_LENGTH,"+ // 34 - "TFC_DATA_OFFSET,"+ // 35 - "TFC_DATA_LENGTH,"+ // 36 - "TFC_EVENT_ID_OFFSET,"+ // 37 - "TFC_EVENT_ID_LENGTH,"+ // 38 - "TFC_ANNC_TYPE_OFFSET,"+ // 39 - "TFC_ANNC_TYPE_LENGTH,"+ // 40 - "MUS_PREIMPORT_CMD,"+ // 41 - "MUS_IMPORT_TEMPLATE,"+ // 42 - "MUS_PATH,"+ // 43 - "MUS_LABEL_CART,"+ // 44 - "MUS_TRACK_CART,"+ // 45 - "MUS_BREAK_STRING,"+ // 46 - "MUS_TRACK_STRING,"+ // 47 - "MUS_CART_OFFSET,"+ // 48 - "MUS_CART_LENGTH,"+ // 49 - "MUS_TITLE_OFFSET," // 50 - "MUS_TITLE_LENGTH,"+ // 51 - "MUS_LEN_HOURS_OFFSET," // 52 - "MUS_LEN_HOURS_LENGTH," // 53 - "MUS_LEN_MINUTES_OFFSET," // 54 - "MUS_LEN_MINUTES_LENGTH," // 55 - "MUS_LEN_SECONDS_OFFSET," // 56 - "MUS_LEN_SECONDS_LENGTH," // 57 - "MUS_HOURS_OFFSET,"+ // 58 - "MUS_HOURS_LENGTH,"+ // 59 - "MUS_MINUTES_OFFSET,"+ // 60 - "MUS_MINUTES_LENGTH,"+ // 61 - "MUS_SECONDS_OFFSET,"+ // 62 - "MUS_SECONDS_LENGTH,"+ // 63 - "MUS_DATA_OFFSET,"+ // 64 - "MUS_DATA_LENGTH,"+ // 65 - "MUS_EVENT_ID_OFFSET,"+ // 66 - "MUS_EVENT_ID_LENGTH,"+ // 67 - "MUS_ANNC_TYPE_OFFSET,"+ // 68 - "MUS_ANNC_TYPE_LENGTH "+ // 69 - " from SERVICES where NAME=\""+RDEscapeString(exemplar)+"\""; + "`DESCRIPTION,`"+ // 00 + "`NAME_TEMPLATE,`"+ // 01 + "`DESCRIPTION_TEMPLATE`,"+ // 02 + "`PROGRAM_CODE`,"+ // 03 + "`CHAIN_LOG`,"+ // 04 + "`SUB_EVENT_INHERITANCE`,"+ // 05 + "`TRACK_GROUP`,"+ // 06 + "`AUTOSPOT_GROUP`,"+ // 07 + "`DEFAULT_LOG_SHELFLIFE`,"+ // 08 + "`LOG_SHELFLIFE_ORIGIN`,"+ // 09 + "`AUTO_REFRESH`,"+ // 10 + "`ELR_SHELFLIFE`,"+ // 11 + "`TFC_PREIMPORT_CMD`,"+ // 12 + "`TFC_IMPORT_TEMPLATE`,"+ // 13 + "`TFC_PATH`,"+ // 14 + "`TFC_LABEL_CART`,"+ // 15 + "`TFC_TRACK_CART`,"+ // 16 + "`TFC_BREAK_STRING`,"+ // 17 + "`TFC_TRACK_STRING`,"+ // 18 + "`TFC_CART_OFFSET`,"+ // 19 + "`TFC_CART_LENGTH`,"+ // 20 + "`TFC_TITLE_OFFSET`," // 21 + "`TFC_TITLE_LENGTH`,"+ // 22 + "`TFC_LEN_HOURS_OFFSET`," // 23 + "`TFC_LEN_HOURS_LENGTH`," // 24 + "`TFC_LEN_MINUTES_OFFSET`," // 25 + "`TFC_LEN_MINUTES_LENGTH`," // 26 + "`TFC_LEN_SECONDS_OFFSET`," // 27 + "`TFC_LEN_SECONDS_LENGTH`," // 28 + "`TFC_HOURS_OFFSET`,"+ // 29 + "`TFC_HOURS_LENGTH`,"+ // 30 + "`TFC_MINUTES_OFFSET`,"+ // 31 + "`TFC_MINUTES_LENGTH`,"+ // 32 + "`TFC_SECONDS_OFFSET`,"+ // 33 + "`TFC_SECONDS_LENGTH`,"+ // 34 + "`TFC_DATA_OFFSET`,"+ // 35 + "`TFC_DATA_LENGTH`,"+ // 36 + "`TFC_EVENT_ID_OFFSET`,"+ // 37 + "`TFC_EVENT_ID_LENGTH`,"+ // 38 + "`TFC_ANNC_TYPE_OFFSET`,"+ // 39 + "`TFC_ANNC_TYPE_LENGTH`,"+ // 40 + "`MUS_PREIMPORT_CMD`,"+ // 41 + "`MUS_IMPORT_TEMPLATE`,"+ // 42 + "`MUS_PATH`,"+ // 43 + "`MUS_LABEL_CART`,"+ // 44 + "`MUS_TRACK_CART`,"+ // 45 + "`MUS_BREAK_STRING`,"+ // 46 + "`MUS_TRACK_STRING`,"+ // 47 + "`MUS_CART_OFFSET`,"+ // 48 + "`MUS_CART_LENGTH`,"+ // 49 + "`MUS_TITLE_OFFSET`," // 50 + "`MUS_TITLE_LENGTH`,"+ // 51 + "`MUS_LEN_HOURS_OFFSET`," // 52 + "`MUS_LEN_HOURS_LENGTH`," // 53 + "`MUS_LEN_MINUTES_OFFSET`," // 54 + "`MUS_LEN_MINUTES_LENGTH`," // 55 + "`MUS_LEN_SECONDS_OFFSET`," // 56 + "`MUS_LEN_SECONDS_LENGTH`," // 57 + "`MUS_HOURS_OFFSET`,"+ // 58 + "`MUS_HOURS_LENGTH`,"+ // 59 + "`MUS_MINUTES_OFFSET`,"+ // 60 + "`MUS_MINUTES_LENGTH`,"+ // 61 + "`MUS_SECONDS_OFFSET`,"+ // 62 + "`MUS_SECONDS_LENGTH`,"+ // 63 + "`MUS_DATA_OFFSET`,"+ // 64 + "`MUS_DATA_LENGTH`,"+ // 65 + "`MUS_EVENT_ID_OFFSET`,"+ // 66 + "`MUS_EVENT_ID_LENGTH`,"+ // 67 + "`MUS_ANNC_TYPE_OFFSET`,"+ // 68 + "`MUS_ANNC_TYPE_LENGTH` "+ // 69 + " from `SERVICES` where `NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); if(q->first()) { - sql=QString("insert into SERVICES set ")+ - "DESCRIPTION=\""+ - RDEscapeString(tr("Copy of")+" "+q->value(0).toString())+"\","+ - "NAME_TEMPLATE=\""+RDEscapeString(q->value(1).toString())+"\","+ - "DESCRIPTION_TEMPLATE=\""+RDEscapeString(q->value(2).toString())+"\","+ - "PROGRAM_CODE=\""+RDEscapeString(q->value(3).toString())+"\","+ - "CHAIN_LOG=\""+RDEscapeString(q->value(4).toString())+"\","+ - QString().sprintf("SUB_EVENT_INHERITANCE=%d,",q->value(5).toInt())+ - "TRACK_GROUP=\""+RDEscapeString(q->value(6).toString())+"\","+ - "AUTOSPOT_GROUP=\""+RDEscapeString(q->value(7).toString())+"\","+ - QString().sprintf("DEFAULT_LOG_SHELFLIFE=%d,",q->value(8).toInt())+ - QString().sprintf("LOG_SHELFLIFE_ORIGIN=%d,",q->value(9).toInt())+ - "AUTO_REFRESH=\""+RDEscapeString(q->value(10).toString())+"\","+ - QString().sprintf("ELR_SHELFLIFE=%d,",q->value(11).toInt())+ - "TFC_PREIMPORT_CMD=\""+RDEscapeString(q->value(12).toString())+"\","+ - "TFC_IMPORT_TEMPLATE=\""+RDEscapeString(q->value(13).toString())+"\","+ - "TFC_PATH=\""+RDEscapeString(q->value(14).toString())+"\","+ - "TFC_LABEL_CART=\""+RDEscapeString(q->value(15).toString())+"\","+ - "TFC_TRACK_CART=\""+RDEscapeString(q->value(16).toString())+"\","+ - "TFC_BREAK_STRING=\""+RDEscapeString(q->value(17).toString())+"\","+ - "TFC_TRACK_STRING=\""+RDEscapeString(q->value(18).toString())+"\","+ - QString().sprintf("TFC_CART_OFFSET=%d,",q->value(19).toInt())+ - QString().sprintf("TFC_CART_LENGTH=%d,",q->value(20).toInt())+ - QString().sprintf("TFC_TITLE_OFFSET=%d,",q->value(21).toInt())+ - QString().sprintf("TFC_TITLE_LENGTH=%d,",q->value(22).toInt())+ - QString().sprintf("TFC_LEN_HOURS_OFFSET=%d,",q->value(23).toInt())+ - QString().sprintf("TFC_LEN_HOURS_LENGTH=%d,",q->value(24).toInt())+ - QString().sprintf("TFC_LEN_MINUTES_OFFSET=%d,",q->value(25).toInt())+ - QString().sprintf("TFC_LEN_MINUTES_LENGTH=%d,",q->value(26).toInt())+ - QString().sprintf("TFC_LEN_SECONDS_OFFSET=%d,",q->value(27).toInt())+ - QString().sprintf("TFC_LEN_SECONDS_LENGTH=%d,",q->value(28).toInt())+ - QString().sprintf("TFC_HOURS_OFFSET=%d,",q->value(29).toInt())+ - QString().sprintf("TFC_HOURS_LENGTH=%d,",q->value(30).toInt())+ - QString().sprintf("TFC_MINUTES_OFFSET=%d,",q->value(31).toInt())+ - QString().sprintf("TFC_MINUTES_LENGTH=%d,",q->value(32).toInt())+ - QString().sprintf("TFC_SECONDS_OFFSET=%d,",q->value(33).toInt())+ - QString().sprintf("TFC_SECONDS_LENGTH=%d,",q->value(34).toInt())+ - QString().sprintf("TFC_DATA_OFFSET=%d,",q->value(35).toInt())+ - QString().sprintf("TFC_DATA_LENGTH=%d,",q->value(36).toInt())+ - QString().sprintf("TFC_EVENT_ID_OFFSET=%d,",q->value(37).toInt())+ - QString().sprintf("TFC_EVENT_ID_LENGTH=%d,",q->value(38).toInt())+ - QString().sprintf("TFC_ANNC_TYPE_OFFSET=%d,",q->value(39).toInt())+ - QString().sprintf("TFC_ANNC_TYPE_LENGTH=%d,",q->value(40).toInt())+ - "MUS_PREIMPORT_CMD=\""+RDEscapeString(q->value(41).toString())+"\","+ - "MUS_IMPORT_TEMPLATE=\""+RDEscapeString(q->value(42).toString())+"\","+ - "MUS_PATH=\""+RDEscapeString(q->value(43).toString())+"\","+ - "MUS_LABEL_CART=\""+RDEscapeString(q->value(44).toString())+"\","+ - "MUS_TRACK_CART=\""+RDEscapeString(q->value(45).toString())+"\","+ - "MUS_BREAK_STRING=\""+RDEscapeString(q->value(46).toString())+"\","+ - "MUS_TRACK_STRING=\""+RDEscapeString(q->value(47).toString())+"\","+ - QString().sprintf("MUS_CART_OFFSET=%d,",q->value(48).toInt())+ - QString().sprintf("MUS_CART_LENGTH=%d,",q->value(49).toInt())+ - QString().sprintf("MUS_TITLE_OFFSET=%d,",q->value(50).toInt())+ - QString().sprintf("MUS_TITLE_LENGTH=%d,",q->value(51).toInt())+ - QString().sprintf("MUS_LEN_HOURS_OFFSET=%d,",q->value(52).toInt())+ - QString().sprintf("MUS_LEN_HOURS_LENGTH=%d,",q->value(53).toInt())+ - QString().sprintf("MUS_LEN_MINUTES_OFFSET=%d,",q->value(54).toInt())+ - QString().sprintf("MUS_LEN_MINUTES_LENGTH=%d,",q->value(55).toInt())+ - QString().sprintf("MUS_LEN_SECONDS_OFFSET=%d,",q->value(56).toInt())+ - QString().sprintf("MUS_LEN_SECONDS_LENGTH=%d,",q->value(57).toInt())+ - QString().sprintf("MUS_HOURS_OFFSET=%d,",q->value(58).toInt())+ - QString().sprintf("MUS_HOURS_LENGTH=%d,",q->value(59).toInt())+ - QString().sprintf("MUS_MINUTES_OFFSET=%d,",q->value(60).toInt())+ - QString().sprintf("MUS_MINUTES_LENGTH=%d,",q->value(61).toInt())+ - QString().sprintf("MUS_SECONDS_OFFSET=%d,",q->value(62).toInt())+ - QString().sprintf("MUS_SECONDS_LENGTH=%d,",q->value(63).toInt())+ - QString().sprintf("MUS_DATA_OFFSET=%d,",q->value(64).toInt())+ - QString().sprintf("MUS_DATA_LENGTH=%d,",q->value(65).toInt())+ - QString().sprintf("MUS_EVENT_ID_OFFSET=%d,",q->value(66).toInt())+ - QString().sprintf("MUS_EVENT_ID_LENGTH=%d,",q->value(67).toInt())+ - QString().sprintf("MUS_ANNC_TYPE_OFFSET=%d,",q->value(68).toInt())+ - QString().sprintf("MUS_ANNC_TYPE_LENGTH=%d,",q->value(69).toInt())+ - "NAME=\""+RDEscapeString(name)+"\""; + sql=QString("insert into `SERVICES` set ")+ + "`DESCRIPTION`='"+ + RDEscapeString(tr("Copy of")+" "+q->value(0).toString())+"',"+ + "`NAME_TEMPLATE`='"+RDEscapeString(q->value(1).toString())+"',"+ + "`DESCRIPTION_TEMPLATE`='"+RDEscapeString(q->value(2).toString())+"',"+ + "`PROGRAM_CODE`='"+RDEscapeString(q->value(3).toString())+"',"+ + "`CHAIN_LOG`='"+RDEscapeString(q->value(4).toString())+"',"+ + QString().sprintf("`SUB_EVENT_INHERITANCE`=%d,",q->value(5).toInt())+ + "`TRACK_GROUP`='"+RDEscapeString(q->value(6).toString())+"',"+ + "`AUTOSPOT_GROUP`='"+RDEscapeString(q->value(7).toString())+"',"+ + QString().sprintf("`DEFAULT_LOG_SHELFLIFE`=%d,",q->value(8).toInt())+ + QString().sprintf("`LOG_SHELFLIFE_ORIGIN`=%d,",q->value(9).toInt())+ + "`AUTO_REFRESH`='"+RDEscapeString(q->value(10).toString())+"',"+ + QString().sprintf("`ELR_SHELFLIFE`=%d,",q->value(11).toInt())+ + "`TFC_PREIMPORT_CMD`='"+RDEscapeString(q->value(12).toString())+"',"+ + "`TFC_IMPORT_TEMPLATE`='"+RDEscapeString(q->value(13).toString())+"',"+ + "`TFC_PATH`='"+RDEscapeString(q->value(14).toString())+"',"+ + "`TFC_LABEL_CART`='"+RDEscapeString(q->value(15).toString())+"',"+ + "`TFC_TRACK_CART`='"+RDEscapeString(q->value(16).toString())+"',"+ + "`TFC_BREAK_STRING`='"+RDEscapeString(q->value(17).toString())+"',"+ + "`TFC_TRACK_STRING`='"+RDEscapeString(q->value(18).toString())+"',"+ + QString().sprintf("`TFC_CART_OFFSET`=%d,",q->value(19).toInt())+ + QString().sprintf("`TFC_CART_LENGTH`=%d,",q->value(20).toInt())+ + QString().sprintf("`TFC_TITLE_OFFSET`=%d,",q->value(21).toInt())+ + QString().sprintf("`TFC_TITLE_LENGTH`=%d,",q->value(22).toInt())+ + QString().sprintf("`TFC_LEN_HOURS_OFFSET`=%d,",q->value(23).toInt())+ + QString().sprintf("`TFC_LEN_HOURS_LENGTH`=%d,",q->value(24).toInt())+ + QString().sprintf("`TFC_LEN_MINUTES_OFFSET`=%d,",q->value(25).toInt())+ + QString().sprintf("`TFC_LEN_MINUTES_LENGTH`=%d,",q->value(26).toInt())+ + QString().sprintf("`TFC_LEN_SECONDS_OFFSET`=%d,",q->value(27).toInt())+ + QString().sprintf("`TFC_LEN_SECONDS_LENGTH`=%d,",q->value(28).toInt())+ + QString().sprintf("`TFC_HOURS_OFFSET`=%d,",q->value(29).toInt())+ + QString().sprintf("`TFC_HOURS_LENGTH`=%d,",q->value(30).toInt())+ + QString().sprintf("`TFC_MINUTES_OFFSET`=%d,",q->value(31).toInt())+ + QString().sprintf("`TFC_MINUTES_LENGTH`=%d,",q->value(32).toInt())+ + QString().sprintf("`TFC_SECONDS_OFFSET`=%d,",q->value(33).toInt())+ + QString().sprintf("`TFC_SECONDS_LENGTH`=%d,",q->value(34).toInt())+ + QString().sprintf("`TFC_DATA_OFFSET`=%d,",q->value(35).toInt())+ + QString().sprintf("`TFC_DATA_LENGTH`=%d,",q->value(36).toInt())+ + QString().sprintf("`TFC_EVENT_ID_OFFSET`=%d,",q->value(37).toInt())+ + QString().sprintf("`TFC_EVENT_ID_LENGTH`=%d,",q->value(38).toInt())+ + QString().sprintf("`TFC_ANNC_TYPE_OFFSET`=%d,",q->value(39).toInt())+ + QString().sprintf("`TFC_ANNC_TYPE_LENGTH`=%d,",q->value(40).toInt())+ + "`MUS_PREIMPORT_CMD`='"+RDEscapeString(q->value(41).toString())+"',"+ + "`MUS_IMPORT_TEMPLATE`='"+RDEscapeString(q->value(42).toString())+"',"+ + "`MUS_PATH`='"+RDEscapeString(q->value(43).toString())+"',"+ + "`MUS_LABEL_CART`='"+RDEscapeString(q->value(44).toString())+"',"+ + "`MUS_TRACK_CART`='"+RDEscapeString(q->value(45).toString())+"',"+ + "`MUS_BREAK_STRING`='"+RDEscapeString(q->value(46).toString())+"',"+ + "`MUS_TRACK_STRING`='"+RDEscapeString(q->value(47).toString())+"',"+ + QString().sprintf("`MUS_CART_OFFSET`=%d,",q->value(48).toInt())+ + QString().sprintf("`MUS_CART_LENGTH`=%d,",q->value(49).toInt())+ + QString().sprintf("`MUS_TITLE_OFFSET`=%d,",q->value(50).toInt())+ + QString().sprintf("`MUS_TITLE_LENGTH`=%d,",q->value(51).toInt())+ + QString().sprintf("`MUS_LEN_HOURS_OFFSET`=%d,",q->value(52).toInt())+ + QString().sprintf("`MUS_LEN_HOURS_LENGTH`=%d,",q->value(53).toInt())+ + QString().sprintf("`MUS_LEN_MINUTES_OFFSET`=%d,",q->value(54).toInt())+ + QString().sprintf("`MUS_LEN_MINUTES_LENGTH`=%d,",q->value(55).toInt())+ + QString().sprintf("`MUS_LEN_SECONDS_OFFSET`=%d,",q->value(56).toInt())+ + QString().sprintf("`MUS_LEN_SECONDS_LENGTH`=%d,",q->value(57).toInt())+ + QString().sprintf("`MUS_HOURS_OFFSET`=%d,",q->value(58).toInt())+ + QString().sprintf("`MUS_HOURS_LENGTH`=%d,",q->value(59).toInt())+ + QString().sprintf("`MUS_MINUTES_OFFSET`=%d,",q->value(60).toInt())+ + QString().sprintf("`MUS_MINUTES_LENGTH`=%d,",q->value(61).toInt())+ + QString().sprintf("`MUS_SECONDS_OFFSET`=%d,",q->value(62).toInt())+ + QString().sprintf("`MUS_SECONDS_LENGTH`=%d,",q->value(63).toInt())+ + QString().sprintf("`MUS_DATA_OFFSET`=%d,",q->value(64).toInt())+ + QString().sprintf("`MUS_DATA_LENGTH`=%d,",q->value(65).toInt())+ + QString().sprintf("`MUS_EVENT_ID_OFFSET`=%d,",q->value(66).toInt())+ + QString().sprintf("`MUS_EVENT_ID_LENGTH`=%d,",q->value(67).toInt())+ + QString().sprintf("`MUS_ANNC_TYPE_OFFSET`=%d,",q->value(68).toInt())+ + QString().sprintf("`MUS_ANNC_TYPE_LENGTH`=%d,",q->value(69).toInt())+ + "`NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); delete q; - q=new RDSqlQuery(sql); - delete q; - sql=QString("select HOUR,CLOCK_NAME from SERVICE_CLOCKS where ")+ - "SERVICE_NAME=\""+RDEscapeString(exemplar)+"\""; + + sql=QString("select ")+ + "`HOUR`,"+ // 00 + "`CLOCK_NAME` "+ // 01 + "from `SERVICE_CLOCKS` where "+ + "`SERVICE_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into SERVICE_CLOCKS set ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\","+ - QString().sprintf("HOUR=%d,",q->value(0).toInt()); + sql=QString("insert into `SERVICE_CLOCKS` set ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"',"+ + QString().sprintf("`HOUR`=%d,",q->value(0).toInt()); if(q->value(1).isNull()) { - sql+="CLOCK_NAME=null"; + sql+="`CLOCK_NAME`=null"; } else { - sql+="CLOCK_NAME=\""+RDEscapeString(q->value(1).toString())+"\""; + sql+="`CLOCK_NAME`='"+RDEscapeString(q->value(1).toString())+"'"; } - q1=new RDSqlQuery(sql); - delete q1; + RDSqlQuery::apply(sql); } delete q; } @@ -1464,75 +1461,70 @@ bool RDSvc::create(const QString &name,QString *err_msg, // // Clone Audio Perms // - sql=QString("select GROUP_NAME from AUDIO_PERMS where ")+ - "SERVICE_NAME=\""+RDEscapeString(exemplar)+"\""; + sql=QString("select `GROUP_NAME` from `AUDIO_PERMS` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into AUDIO_PERMS set ")+ - "GROUP_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `AUDIO_PERMS` set ")+ + "`GROUP_NAME`='"+RDEscapeString(q->value(0).toString())+"',"+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; // // Clone Service Perms // - sql=QString("select STATION_NAME from SERVICE_PERMS where ")+ - "SERVICE_NAME=\""+RDEscapeString(exemplar)+"\""; + sql=QString("select `STATION_NAME` from `SERVICE_PERMS` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into SERVICE_PERMS set ")+ - "STATION_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `SERVICE_PERMS` set ")+ + "`STATION_NAME`=;"+RDEscapeString(q->value(0).toString())+"',"+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; // // Clone Autofill List // - sql=QString("select CART_NUMBER from AUTOFILLS where ")+ - "SERVICE=\""+RDEscapeString(exemplar)+"\""; + sql=QString("select `CART_NUMBER` from `AUTOFILLS` where ")+ + "`SERVICE`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into AUTOFILLS set ")+ - QString().sprintf("CART_NUMBER=%u,",q->value(0).toUInt())+ - "SERVICE=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `AUTOFILLS` set ")+ + QString().sprintf("`CART_NUMBER`=%u,",q->value(0).toUInt())+ + "`SERVICE`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; // // Clone Clock Perms // - sql=QString("select CLOCK_NAME from CLOCK_PERMS where ")+ - "SERVICE_NAME=\""+RDEscapeString(exemplar)+"\""; + sql=QString("select `CLOCK_NAME` from `CLOCK_PERMS` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into CLOCK_PERMS set ")+ - "CLOCK_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `CLOCK_PERMS` set ")+ + "`CLOCK_NAME`='"+RDEscapeString(q->value(0).toString())+"',"+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; // // Clone Event Perms // - sql=QString("select EVENT_NAME from EVENT_PERMS where ")+ - "SERVICE_NAME=\""+RDEscapeString(exemplar)+"\""; + sql=QString("select `EVENT_NAME` from `EVENT_PERMS` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(exemplar)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("insert into EVENT_PERMS set ")+ - "EVENT_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; - q1=new RDSqlQuery(sql); - delete q1; + sql=QString("insert into `EVENT_PERMS` set ")+ + "`EVENT_NAME`='"+RDEscapeString(q->value(0).toString())+"',"+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; + RDSqlQuery::apply(sql); } delete q; } @@ -1547,84 +1539,81 @@ void RDSvc::remove(const QString &name) RDSqlQuery *q; QString logname; - sql=QString("delete from AUDIO_PERMS where ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; + sql=QString("delete from `AUDIO_PERMS` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("delete from SERVICE_PERMS where ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; + sql=QString("delete from `SERVICE_PERMS` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("update RDAIRPLAY set ")+ - "DEFAULT_SERVICE=\"\" where "+ - "DEFAULT_SERVICE=\""+RDEscapeString(name)+"\""; + sql=QString("update `RDAIRPLAY` set ")+ + "`DEFAULT_SERVICE`='' where "+ + "`DEFAULT_SERVICE`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("delete from EVENT_PERMS where ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; + sql=QString("delete from `EVENT_PERMS` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("delete from CLOCK_PERMS where ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; + sql=QString("delete from `CLOCK_PERMS` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("delete from AUTOFILLS where ")+ - "SERVICE=\""+RDEscapeString(name)+"\""; + sql=QString("delete from `AUTOFILLS` where ")+ + "`SERVICE`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("delete from REPORT_SERVICES where ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; + sql=QString("delete from `REPORT_SERVICES` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("delete from SERVICES where ")+ - "NAME=\""+RDEscapeString(name)+"\""; + sql=QString("delete from `SERVICES` where ")+ + "`NAME`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("delete from SERVICE_CLOCKS where ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; + sql=QString("delete from `SERVICE_CLOCKS` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); delete q; - sql=QString("select NAME from LOGS where ")+ - "SERVICE=\""+RDEscapeString(name)+"\""; + sql=QString("select `NAME` from `LOGS` where ")+ + "`SERVICE`='"+RDEscapeString(name)+"'"; q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("delete from LOG_LINES where ")+ - "LOG_NAME=\""+RDEscapeString(q->value(0).toString())+"\""; - RDSqlQuery::apply(sql); - logname=q->value(0).toString(); - logname.replace(" ","_"); - rda->dropTable(logname+"_REC"); - } - delete q; - - sql=QString("select ID from STACK_LINES where ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; - q=new RDSqlQuery(sql); - while(q->next()) { - sql=QString("delete from STACK_SCHED_CODES where ")+ - QString().sprintf("STACK_LINES_ID=%u",q->value(0).toUInt()); + sql=QString("delete from `LOG_LINES` where ")+ + "`LOG_NAME`='"+RDEscapeString(q->value(0).toString())+"'"; RDSqlQuery::apply(sql); } delete q; - sql=QString("delete from STACK_LINES where ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; + + sql=QString("select ID from `STACK_LINES` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; + q=new RDSqlQuery(sql); + while(q->next()) { + sql=QString("delete from `STACK_SCHED_CODES` where ")+ + QString().sprintf("`STACK_LINES_ID`=%u",q->value(0).toUInt()); + RDSqlQuery::apply(sql); + } + delete q; + sql=QString("delete from `STACK_LINES` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; RDSqlQuery::apply(sql); - sql=QString("delete from ELR_LINES where ")+ - "SERVICE_NAME=\""+RDEscapeString(name)+"\""; + sql=QString("delete from `ELR_LINES` where ")+ + "`SERVICE_NAME`='"+RDEscapeString(name)+"'"; RDSqlQuery::apply(sql); - sql=QString("delete from LOGS where ")+ - "SERVICE=\""+RDEscapeString(name)+"\""; + sql=QString("delete from `LOGS` where ")+ + "`SERVICE`='"+RDEscapeString(name)+"'"; RDSqlQuery::apply(sql); } @@ -1722,28 +1711,23 @@ QString RDSvc::FieldString(ImportField field) const void RDSvc::SetRow(const QString ¶m,QString value) const { - RDSqlQuery *q; QString sql; - // 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; + sql=QString("update `SERVICES` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`NAME`='"+RDEscapeString(svc_name)+"'"; + RDSqlQuery::apply(sql); } void RDSvc::SetRow(const QString ¶m,int value) const { - RDSqlQuery *q; QString sql; - sql=QString("update SERVICES set ")+ - param+QString().sprintf("=%d where ",value)+ - "NAME=\""+RDEscapeString(svc_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `SERVICES` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`NAME`='"+RDEscapeString(svc_name)+"'"; + RDSqlQuery::apply(sql); } @@ -1753,12 +1737,12 @@ void RDSvc::GetParserStrings(ImportSource src,QString *break_str, { QString src_str=SourceString(src); 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)+"\""; + "`"+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(); @@ -1821,17 +1805,17 @@ bool RDSvc::ResolveInlineEvents(const QString &logname,QString *err_msg) start=logline->linkStartTime(); end=logline->linkStartTime().addSecs(logline->linkLength()); sql=QString("select ")+ - "ID,"+ // 00 - "FILE_LINE "+ // 01 - "from IMPORTER_LINES where "+ - "IMPORTER_LINES.STATION_NAME=\""+ + "`ID`,"+ // 00 + "`FILE_LINE` "+ // 01 + "from `IMPORTER_LINES` where "+ + "`IMPORTER_LINES`.`STATION_NAME`=\""+ RDEscapeString(svc_station->name())+"\" && "+ - QString().sprintf("IMPORTER_LINES.PROCESS_ID=%u && ",getpid())+ - QString().sprintf("TYPE=%u && ",RDLogLine::TrafficLink)+ - QString().sprintf("START_HOUR=%d && ",start.hour())+ - QString().sprintf("START_SECS>=%d && ", + QString().sprintf("`IMPORTER_LINES`.`PROCESS_ID`=%u && ",getpid())+ + QString().sprintf("`TYPE`=%u && ",RDLogLine::TrafficLink)+ + QString().sprintf("`START_HOUR`=%d && ",start.hour())+ + QString().sprintf("`START_SECS`>=%d && ", 60*start.minute()+start.second())+ - QString().sprintf("START_SECS<%d",60*start.minute()+start.second()+logline->linkLength()/1000); + QString().sprintf("`START_SECS`<%d",60*start.minute()+start.second()+logline->linkLength()/1000); q=new RDSqlQuery(sql); if(q->size()>1) { *err_msg+=tr("In event")+" \""+logline->linkEventName()+"\"@"+ @@ -1844,11 +1828,11 @@ bool RDSvc::ResolveInlineEvents(const QString &logname,QString *err_msg) ok=false; } if(q->first()) { - sql=QString("update IMPORTER_LINES set ")+ - "LINK_START_TIME=\""+ - logline->linkStartTime().toString("hh:mm:ss")+"\","+ - QString().sprintf("LINK_LENGTH=%d where ",logline->linkLength())+ - QString().sprintf("ID=%u",q->value(0).toUInt()); + sql=QString("update `IMPORTER_LINES` set ")+ + "`LINK_START_TIME`='"+ + logline->linkStartTime().toString("hh:mm:ss")+"',"+ + QString().sprintf("`LINK_LENGTH`=%d where ",logline->linkLength())+ + QString().sprintf("`ID`=%u",q->value(0).toUInt()); RDSqlQuery::apply(sql); } delete q; @@ -1868,16 +1852,16 @@ bool RDSvc::ResolveInlineEvents(const QString &logname,QString *err_msg) // start times and length // sql=QString("select ")+ - "FILE_LINE,"+ // 00 - "TYPE "+ // 01 - "from IMPORTER_LINES where "+ - "IMPORTER_LINES.STATION_NAME=\""+ + "`FILE_LINE`,"+ // 00 + "`TYPE` "+ // 01 + "from `IMPORTER_LINES` where "+ + "`IMPORTER_LINES`.`STATION_NAME`=\""+ RDEscapeString(svc_station->name())+"\" && "+ - QString().sprintf("IMPORTER_LINES.PROCESS_ID=%u && ",getpid())+ - QString().sprintf("((TYPE=%u) || ",RDLogLine::TrafficLink)+ - QString().sprintf("(TYPE=%u) ||",RDLogLine::Marker)+ - QString().sprintf("(TYPE=%u)) && ",RDLogLine::Track)+ - "(START_HOUR is null || START_SECS is null || LENGTH is null)"; + QString().sprintf("`IMPORTER_LINES`.`PROCESS_ID`=%u && ",getpid())+ + QString().sprintf("((`TYPE`=%u) || ",RDLogLine::TrafficLink)+ + QString().sprintf("(`TYPE`=%u) ||",RDLogLine::Marker)+ + QString().sprintf("(`TYPE`=%u)) && ",RDLogLine::Track)+ + "(`START_HOUR` is null || `START_SECS` is null || `LENGTH` is null)"; ok=true; q=new RDSqlQuery(sql); while(q->next()) { @@ -1920,19 +1904,19 @@ bool RDSvc::ResolveInlineEvents(const QString &logname,QString *err_msg) // Resolve link parameters // sql=QString("select ")+ - "ID,"+ // 00 - "START_HOUR,"+ // 01 - "START_SECS,"+ // 02 - "LENGTH "+ // 03 - "from IMPORTER_LINES where "+ - QString().sprintf("TYPE=%u",RDLogLine::TrafficLink); + "`ID`,"+ // 00 + "`START_HOUR`,"+ // 01 + "`START_SECS`,"+ // 02 + "`LENGTH` "+ // 03 + "from `IMPORTER_LINES` where "+ + QString().sprintf("`TYPE`=%u",RDLogLine::TrafficLink); q=new RDSqlQuery(sql); while(q->next()) { - sql=QString("update IMPORTER_LINES set ")+ - "LINK_START_TIME=\""+QTime(q->value(1).toInt(),0,0). - addSecs(q->value(2).toInt()).toString("hh:mm:ss")+"\","+ - QString().sprintf("LINK_LENGTH=%d where ",q->value(3).toInt())+ - QString().sprintf("ID=%u",q->value(0).toUInt()); + sql=QString("update `IMPORTER_LINES` set ")+ + "`LINK_START_TIME`='"+QTime(q->value(1).toInt(),0,0). + addSecs(q->value(2).toInt()).toString("hh:mm:ss")+"',"+ + QString().sprintf("`LINK_LENGTH`=%d where ",q->value(3).toInt())+ + QString().sprintf("`ID`=%u",q->value(0).toUInt()); RDSqlQuery::apply(sql); } delete q; diff --git a/lib/rdsystem.cpp b/lib/rdsystem.cpp index a889fd3e..1a5e8ab3 100644 --- a/lib/rdsystem.cpp +++ b/lib/rdsystem.cpp @@ -2,7 +2,7 @@ // // System-wide Rivendell settings // -// (C) Copyright 2009,2016 Fred Gleason +// (C) Copyright 2009-2021 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 @@ -48,7 +48,7 @@ bool RDSystem::allowDuplicateCartTitles() const QString sql; RDSqlQuery *q; - sql="select DUP_CART_TITLES from SYSTEM"; + sql="select `DUP_CART_TITLES` from `SYSTEM`"; q=new RDSqlQuery(sql); if(q->first()) { ret=RDBool(q->value(0).toString()); @@ -61,12 +61,10 @@ bool RDSystem::allowDuplicateCartTitles() const void RDSystem::setAllowDuplicateCartTitles(bool state) const { QString sql; - RDSqlQuery *q; - sql=QString("update SYSTEM set ")+ - "DUP_CART_TITLES=\""+RDYesNo(state)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `SYSTEM` set ")+ + "`DUP_CART_TITLES`='"+RDYesNo(state)+"'"; + RDSqlQuery::apply(sql); } @@ -76,7 +74,7 @@ bool RDSystem::fixDuplicateCartTitles() const QString sql; RDSqlQuery *q; - sql="select FIX_DUP_CART_TITLES from SYSTEM"; + sql="select `FIX_DUP_CART_TITLES` from `SYSTEM`"; q=new RDSqlQuery(sql); if(q->first()) { ret=RDBool(q->value(0).toString()); @@ -89,12 +87,10 @@ bool RDSystem::fixDuplicateCartTitles() const void RDSystem::setFixDuplicateCartTitles(bool state) const { QString sql; - RDSqlQuery *q; - sql=QString("update SYSTEM set ")+ - "FIX_DUP_CART_TITLES=\""+RDYesNo(state)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `SYSTEM` set ")+ + "`FIX_DUP_CART_TITLES`='"+RDYesNo(state)+"'"; + RDSqlQuery::apply(sql); } @@ -102,7 +98,7 @@ unsigned RDSystem::maxPostLength() const { unsigned ret; - QString sql="select MAX_POST_LENGTH from SYSTEM"; + QString sql="select `MAX_POST_LENGTH` from `SYSTEM`"; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0).toUInt(); @@ -117,9 +113,9 @@ unsigned RDSystem::maxPostLength() const void RDSystem::setMaxPostLength(unsigned bytes) const { - QString sql=QString().sprintf("update SYSTEM set MAX_POST_LENGTH=%u",bytes); - RDSqlQuery *q=new RDSqlQuery(sql); - delete q; + QString sql= + QString().sprintf("update `SYSTEM` set `MAX_POST_LENGTH`=%u",bytes); + RDSqlQuery::apply(sql); } @@ -165,7 +161,7 @@ bool RDSystem::showUserList() const QString sql; RDSqlQuery *q; - sql="select SHOW_USER_LIST from SYSTEM"; + sql="select `SHOW_USER_LIST` from `SYSTEM`"; q=new RDSqlQuery(sql); if(q->first()) { ret=RDBool(q->value(0).toString()); @@ -178,12 +174,10 @@ bool RDSystem::showUserList() const void RDSystem::setShowUserList(bool state) const { QString sql; - RDSqlQuery *q; - sql=QString("update SYSTEM set ")+ - "SHOW_USER_LIST=\""+RDYesNo(state)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `SYSTEM` set ")+ + "`SHOW_USER_LIST`='"+RDYesNo(state)+"'"; + RDSqlQuery::apply(sql); } @@ -229,8 +223,8 @@ QString RDSystem::xml() const QVariant RDSystem::GetValue(const QString &field) const { QVariant ret; - QString sql=QString("select ")+ - field+" from SYSTEM"; + QString sql=QString("select `")+ + field+"` from `SYSTEM`"; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=q->value(0); @@ -245,12 +239,12 @@ void RDSystem::SetRow(const QString ¶m,QString value) const QString sql; if(value.isNull()) { - sql=QString("update SYSTEM set ")+ - param+"=NULL"; + sql=QString("update `SYSTEM` set `")+ + param+"`=NULL"; } else { - sql=QString("update SYSTEM set ")+ - param+"=\""+RDEscapeString(value)+"\""; + sql=QString("update `SYSTEM` set ")+ + param+"`='"+RDEscapeString(value)+"'"; } RDSqlQuery::apply(sql); } @@ -260,7 +254,7 @@ void RDSystem::SetRow(const QString ¶m,int value) const { QString sql; - sql=QString("update SYSTEM set ")+ - param+QString().sprintf("=%d",value); + sql=QString("update `SYSTEM` set `")+ + param+QString().sprintf("`=%d",value); RDSqlQuery::apply(sql); } diff --git a/lib/rdtty.cpp b/lib/rdtty.cpp index b8c3e2ba..19baf659 100644 --- a/lib/rdtty.cpp +++ b/lib/rdtty.cpp @@ -1,8 +1,8 @@ // rdtty.cpp // -// Abstract a Rivendell TTY. +// Abstract a Rivendell serial device. // -// (C) Copyright 2002-2003,2016 Fred Gleason +// (C) Copyright 2002-2021 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,21 +32,17 @@ RDTty::RDTty(const QString &station,unsigned port_id,bool create) tty_id=port_id; if(create) { - sql=QString("select ID from TTYS where ")+ - "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ - QString().sprintf("(PORT_ID=%d)",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("insert into TTYS set ")+ - "STATION_NAME=\""+RDEscapeString(tty_station)+"\","+ - QString().sprintf("PORT_ID=%d",tty_id); - q=new RDSqlQuery(sql); - delete q; - } - else { - delete q; + sql=QString("insert into `TTYS` set ")+ + "`STATION_NAME`='"+RDEscapeString(tty_station)+"',"+ + QString().sprintf("`PORT_ID`=%d",tty_id); + RDSqlQuery::apply(sql); } + delete q; } } @@ -153,10 +149,10 @@ bool RDTty::GetBoolValue(const QString &field) RDSqlQuery *q; bool state; - sql=QString("select ")+ - field+" from TTYS where "+ - "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ - QString().sprintf("(PORT_ID=%d)",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()); @@ -174,10 +170,10 @@ QString RDTty::GetStringValue(const QString &field) RDSqlQuery *q; QString accum; - sql=QString("select ")+ - field+" from TTYS where "+ - "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ - QString().sprintf("(PORT_ID=%d)",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(); @@ -195,10 +191,10 @@ int RDTty::GetIntValue(const QString &field) RDSqlQuery *q; int accum; - sql=QString("select ")+ - field+" from TTYS where "+ - "(STATION_NAME=\""+RDEscapeString(tty_station)+"\")&&"+ - QString().sprintf("(PORT_ID=%d)",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,41 +208,35 @@ int RDTty::GetIntValue(const QString &field) void RDTty::SetRow(const QString ¶m,bool value) { - RDSqlQuery *q; QString sql; - 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; + sql=QString("update `TTYS` set `")+ + param+"`='"+RDYesNo(value)+"' where "+ + "(`STATION_NAME`='"+RDEscapeString(tty_station)+"')&&"+ + QString().sprintf("(`PORT_ID`=%d)",tty_id); + RDSqlQuery::apply(sql); } void RDTty::SetRow(const QString ¶m,const QString &value) { - RDSqlQuery *q; QString sql; - 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; + sql=QString("update `TTYS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "(`STATION_NAME`='"+RDEscapeString(tty_station)+"')&&"+ + QString().sprintf("(`PORT_ID`=%d)",tty_id); + RDSqlQuery::apply(sql); } void RDTty::SetRow(const QString ¶m,int value) { - RDSqlQuery *q; QString sql; - 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; + sql=QString("update `TTYS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "(`STATION_NAME`='"+RDEscapeString(tty_station)+"')&&"+ + QString().sprintf("(`PORT_ID`=%d)",tty_id); + RDSqlQuery::apply(sql); } diff --git a/lib/rduser.cpp b/lib/rduser.cpp index dc87b1b6..887ce5b2 100644 --- a/lib/rduser.cpp +++ b/lib/rduser.cpp @@ -2,7 +2,7 @@ // // Abstract a Rivendell User. // -// (C) Copyright 2002-2020 Fred Gleason +// (C) Copyright 2002-2021 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,11 +23,11 @@ #include -#include -#include -#include -#include -#include +#include "rdconf.h" +#include "rddb.h" +#include "rdescape_string.h" +#include "rdpam.h" +#include "rduser.h" // // Global Classes @@ -63,10 +63,10 @@ RDUser::Type RDUser::type() const RDUser::Type type=RDUser::TypeAll; sql=QString("select ")+ - "ADMIN_CONFIG_PRIV,"+ // 00 - "ADMIN_RSS_PRIV "+ // 01 - "from USERS where "+ - "LOGIN_NAME=\""+RDEscapeString(user_name)+"\""; + "`ADMIN_CONFIG_PRIV`,"+ // 00 + "`ADMIN_RSS_PRIV` "+ // 01 + "from `USERS` where "+ + "`LOGIN_NAME`='"+RDEscapeString(user_name)+"'"; q=new RDSqlQuery(sql); if(q->first()) { if(q->value(0).toString()=="Y") { @@ -99,11 +99,11 @@ bool RDUser::authenticated(bool webuser) const if(localAuthentication()) { sql=QString("select ")+ - "LOGIN_NAME,"+ - "ENABLE_WEB "+ - "from USERS where "+ - "LOGIN_NAME=\""+RDEscapeString(user_name)+"\" && "+ - "PASSWORD=\""+RDEscapeString(user_password)+"\""; + "`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())|| @@ -213,10 +213,10 @@ QString RDUser::emailContact() const QString ret; QString sql=QString("select ")+ - "EMAIL_ADDRESS,"+ // 00 - "FULL_NAME "+ // 01 - "from USERS where "+ - "LOGIN_NAME=\""+RDEscapeString(user_name)+"\""; + "`EMAIL_ADDRESS`,"+ // 00 + "`FULL_NAME` "+ // 01 + "from `USERS` where "+ + "`LOGIN_NAME`='"+RDEscapeString(user_name)+"'"; RDSqlQuery *q=new RDSqlQuery(sql); if(q->first()) { ret=RDUser::emailContact(q->value(0).toString(),q->value(1).toString()); @@ -544,9 +544,9 @@ bool RDUser::groupAuthorized(const QString &group_name) RDSqlQuery *q; bool ret=false; - sql=QString("select GROUP_NAME from USER_PERMS where ")+ - "(USER_NAME=\""+RDEscapeString(user_name)+"\")&&"+ - "(GROUP_NAME=\""+RDEscapeString(group_name)+"\")"; + sql=QString("select `GROUP_NAME` from `USER_PERMS` where ")+ + "(`USER_NAME`='"+RDEscapeString(user_name)+"')&&"+ + "(`GROUP_NAME`='"+RDEscapeString(group_name)+"')"; q=new RDSqlQuery(sql); ret=q->first(); delete q; @@ -560,8 +560,8 @@ QStringList RDUser::groups() const RDSqlQuery *q; QStringList ret; - sql=QString("select GROUP_NAME from USER_PERMS where ")+ - "USER_NAME=\""+RDEscapeString(user_name)+"\" order by GROUP_NAME"; + sql=QString("select `GROUP_NAME` from `USER_PERMS` where ")+ + "`USER_NAME`='"+RDEscapeString(user_name)+"' order by GROUP_NAME"; q=new RDSqlQuery(sql); while(q->next()) { ret.push_back(q->value(0).toString()); @@ -578,11 +578,11 @@ bool RDUser::cartAuthorized(unsigned cartnum) const RDSqlQuery *q; bool ret=false; - 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); + 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; @@ -596,9 +596,9 @@ bool RDUser::feedAuthorized(const QString &keyname) RDSqlQuery *q; bool ret=false; - sql=QString("select ID from FEED_PERMS where ")+ - "(USER_NAME=\""+RDEscapeString(user_name)+"\")&&"+ - "(KEY_NAME=\""+RDEscapeString(keyname)+"\")"; + sql=QString("select `ID` from `FEED_PERMS` where ")+ + "(`USER_NAME`='"+RDEscapeString(user_name)+"')&&"+ + "(`KEY_NAME`='"+RDEscapeString(keyname)+"')"; q=new RDSqlQuery(sql); ret=q->first(); delete q; @@ -633,14 +633,14 @@ QStringList RDUser::services() const QStringList services_list; if (adminConfig()) { - sql=QString().sprintf("SELECT NAME FROM SERVICES" ); + sql=QString().sprintf("select `NAME` from `SERVICES`" ); } else { 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)+"\""; + "`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); @@ -687,12 +687,12 @@ bool RDUser::createTicket(QString *ticket,QDateTime *expire_dt, *ticket+=QString().sprintf("%02x",0xFF&rawstr[i]); } *expire_dt=start_dt.addSecs(webapiAuthTimeout()); - sql=QString("insert into WEBAPI_AUTHS set ")+ - "TICKET=\""+RDEscapeString(*ticket)+"\","+ - "LOGIN_NAME=\""+RDEscapeString(name())+"\","+ - "IPV4_ADDRESS=\""+client_addr.toString()+"\","+ - "EXPIRATION_DATETIME=\""+ - expire_dt->toString("yyyy-MM-dd hh:mm:ss")+"\""; + sql=QString("insert into `WEBAPI_AUTHS` set ")+ + "`TICKET`='"+RDEscapeString(*ticket)+"',"+ + "`LOGIN_NAME`='"+RDEscapeString(name())+"',"+ + "`IPV4_ADDRESS`='"+client_addr.toString()+"',"+ + "`EXPIRATION_DATETIME`='"+ + expire_dt->toString("yyyy-MM-dd hh:mm:ss")+"'"; RDSqlQuery::apply(sql); return true; @@ -710,12 +710,12 @@ bool RDUser::ticketIsValid(const QString &ticket, RDSqlQuery *q=NULL; sql=QString("select ")+ - "LOGIN_NAME,"+ // 00 - "EXPIRATION_DATETIME "+ // 01 - "from WEBAPI_AUTHS where "+ - "(TICKET=\""+RDEscapeString(ticket)+"\")&&"+ - "(IPV4_ADDRESS=\""+client_addr.toString()+"\")&&"+ - "(EXPIRATION_DATETIME>now())"; + "`LOGIN_NAME`,"+ // 00 + "`EXPIRATION_DATETIME` "+ // 01 + "from `WEBAPI_AUTHS` where "+ + "(`TICKET`='"+RDEscapeString(ticket)+"')&&"+ + "(`IPV4_ADDRESS`='"+client_addr.toString()+"')&&"+ + "(`EXPIRATION_DATETIME`>now())"; q=new RDSqlQuery(sql); if(q->first()) { if(username!=NULL) { @@ -801,27 +801,23 @@ QString RDUser::typeText(RDUser::Type type) void RDUser::SetRow(const QString ¶m,const QString &value) const { - RDSqlQuery *q; QString sql; - sql=QString("update USERS set ")+ - param+"=\""+RDEscapeString(value)+"\" where "+ - "LOGIN_NAME=\""+RDEscapeString(user_name)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `USERS` set `")+ + param+"`='"+RDEscapeString(value)+"' where "+ + "`LOGIN_NAME`='"+RDEscapeString(user_name)+"'"; + RDSqlQuery::apply(sql); } void RDUser::SetRow(const QString ¶m,int value) const { - RDSqlQuery *q; QString sql; - sql=QString("update USERS set ")+ - param+QString().sprintf("=%d where ",value)+ - "LOGIN_NAME=\""+user_name+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `USERS` set `")+ + param+QString().sprintf("`=%d where ",value)+ + "`LOGIN_NAME`='"+user_name+"'"; + RDSqlQuery::apply(sql); } diff --git a/lib/rduserlistmodel.cpp b/lib/rduserlistmodel.cpp index 02b6c426..2bfb4e28 100644 --- a/lib/rduserlistmodel.cpp +++ b/lib/rduserlistmodel.cpp @@ -199,7 +199,7 @@ void RDUserListModel::refresh(const QModelIndex &row) { if(row.row()next()) { d_texts.push_back(texts); @@ -323,15 +322,15 @@ void RDUserListModel::updateRow(int row,RDSqlQuery *q) QString RDUserListModel::sqlFields() const { QString sql=QString("select ")+ - "USERS.LOGIN_NAME,"+ // 00 - "USERS.ADMIN_CONFIG_PRIV,"+ // 01 - "USERS.ADMIN_RSS_PRIV,"+ // 02 - "USERS.FULL_NAME,"+ // 03 - "USERS.DESCRIPTION,"+ // 04 - "USERS.EMAIL_ADDRESS,"+ // 05 - "USERS.PHONE_NUMBER,"+ // 06 - "USERS.LOCAL_AUTH "+ // 07 - "from USERS "; + "`USERS`.`LOGIN_NAME`,"+ // 00 + "`USERS`.`ADMIN_CONFIG_PRIV`,"+ // 01 + "`USERS`.`ADMIN_RSS_PRIV`,"+ // 02 + "`USERS`.`FULL_NAME`,"+ // 03 + "`USERS`.`DESCRIPTION`,"+ // 04 + "`USERS`.`EMAIL_ADDRESS`,"+ // 05 + "`USERS`.`PHONE_NUMBER`,"+ // 06 + "`USERS`.`LOCAL_AUTH` "+ // 07 + "from `USERS` "; return sql; } @@ -344,51 +343,51 @@ QString RDUserListModel::filterSql(const QString &username) const switch(d_type_filter) { case RDUser::TypeAll: if(!username.isEmpty()) { - sql=" where LOGIN_NAME=\""+RDEscapeString(username)+"\""; + sql=" where `LOGIN_NAME`='"+RDEscapeString(username)+"'"; } break; case RDUser::TypeAdminConfig: - sql=" where (ADMIN_CONFIG_PRIV=\"Y\")"; + sql=" where (`ADMIN_CONFIG_PRIV`='Y')"; if(!username.isEmpty()) { - sql+=" && (LOGIN_NAME=\""+RDEscapeString(username)+"\")"; + sql+=" && (`LOGIN_NAME`='"+RDEscapeString(username)+"')"; } break; case RDUser::TypeAdminRss: - sql=" where (ADMIN_RSS_PRIV=\"Y\")"; + sql=" where (`ADMIN_RSS_PRIV`='Y')"; if(!username.isEmpty()) { - sql+=" && (LOGIN_NAME=\""+RDEscapeString(username)+"\")"; + sql+=" && (`LOGIN_NAME`='"+RDEscapeString(username)+"')"; } break; case RDUser::TypeLocalUser: - sql=QString("where (ADMIN_CONFIG_PRIV='N')&&(ADMIN_RSS_PRIV='N')&&")+ - "(LOCAL_AUTH='Y')"; + sql=QString("where (`ADMIN_CONFIG_PRIV`='N')&&(`ADMIN_RSS_PRIV`='N')&&")+ + "(`LOCAL_AUTH`='Y')"; if(!username.isEmpty()) { - sql+=" && (LOGIN_NAME=\""+RDEscapeString(username)+"\")"; + sql+=" && (`LOGIN_NAME`='"+RDEscapeString(username)+"')"; } break; case RDUser::TypeExternalUser: - sql=QString("where (ADMIN_CONFIG_PRIV='N')&&(ADMIN_RSS_PRIV='N')&&")+ - "(LOCAL_AUTH='N')"; + sql=QString("where (`ADMIN_CONFIG_PRIV`='N')&&(`ADMIN_RSS_PRIV`='N')&&")+ + "(`LOCAL_AUTH`='N')"; if(!username.isEmpty()) { - sql+=" && (LOGIN_NAME=\""+RDEscapeString(username)+"\")"; + sql+=" && (`LOGIN_NAME`='"+RDEscapeString(username)+"')"; } break; case RDUser::TypeUser: - sql=QString("where (ADMIN_CONFIG_PRIV='N')&&(ADMIN_RSS_PRIV='N')"); + sql=QString("where (`ADMIN_CONFIG_PRIV`='N')&&(`ADMIN_RSS_PRIV`='N')"); if(!username.isEmpty()) { - sql+=" && (LOGIN_NAME=\""+RDEscapeString(username)+"\")"; + sql+=" && (`LOGIN_NAME`='"+RDEscapeString(username)+"')"; } break; case RDUser::TypeAdmin: - sql=QString("where ((ADMIN_CONFIG_PRIV='Y')||(ADMIN_RSS_PRIV='Y'))"); + sql=QString("where ((`ADMIN_CONFIG_PRIV`='Y')||(`ADMIN_RSS_PRIV`='Y'))"); if(!username.isEmpty()) { - sql+=" && (LOGIN_NAME=\""+RDEscapeString(username)+"\")"; + sql+=" && (`LOGIN_NAME`='"+RDEscapeString(username)+"')"; } break; diff --git a/lib/rdversion.cpp b/lib/rdversion.cpp index 44e8b916..9118f188 100644 --- a/lib/rdversion.cpp +++ b/lib/rdversion.cpp @@ -2,7 +2,7 @@ // // Get / Set Version Numbers of Rivendell Components // -// (C) Copyright 2002-2003,2016 Fred Gleason +// (C) Copyright 2002-2021 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 @@ -34,7 +34,7 @@ int RDVersion::database() { int ver; - RDSqlQuery *q=new RDSqlQuery("select DB from VERSION"); + RDSqlQuery *q=new RDSqlQuery("select `DB` from `VERSION`"); if(!q->first()) { delete q; return 0; @@ -47,10 +47,8 @@ int RDVersion::database() void RDVersion::setDatabase(int ver) { - RDSqlQuery *q; QString sql; - sql=QString().sprintf("update VERSION set DB=%d",ver); - q=new RDSqlQuery(sql); - delete q; + sql=QString().sprintf("update `VERSION` set `DB`=%d",ver); + RDSqlQuery::apply(sql); } diff --git a/lib/rdweb.cpp b/lib/rdweb.cpp index 08162693..aa44f7da 100644 --- a/lib/rdweb.cpp +++ b/lib/rdweb.cpp @@ -3,7 +3,7 @@ // Functions for interfacing with web components using the // Common Gateway Interface (CGI) Standard // -// (C) Copyright 1996-2018 Fred Gleason +// (C) Copyright 1996-2021 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 @@ -27,9 +27,6 @@ #include #include -#include -#include - #include "rdconf.h" #include "rddatetime.h" #include "rddb.h" @@ -686,13 +683,12 @@ long int RDAuthenticateLogin(const QString &username,const QString &passwd, timeval=time(&timeval); srandom(timeval); long int session=random(); - QString sql=QString("insert into WEB_CONNECTIONS set ")+ - QString().sprintf("SESSION_ID=%ld,",session)+ - "LOGIN_NAME=\""+RDEscapeString(username)+"\","+ - "IP_ADDRESS=\""+addr.toString()+"\","+ - "TIME_STAMP=now()"; - RDSqlQuery *q=new RDSqlQuery(sql); - delete q; + QString sql=QString("insert into `WEB_CONNECTIONS` set ")+ + QString().sprintf("`SESSION_ID`=%ld,",session)+ + "`LOGIN_NAME`='"+RDEscapeString(username)+"',"+ + "`IP_ADDRESS`='"+addr.toString()+"',"+ + "`TIME_STAMP`=now()"; + RDSqlQuery::apply(sql); return session; } @@ -708,17 +704,19 @@ QString RDAuthenticateSession(long int session_id,const QHostAddress &addr) // QDateTime current_datetime= QDateTime(QDate::currentDate(),QTime::currentTime()); - sql=QString("delete from WEB_CONNECTIONS where ")+ - "TIME_STAMP<\""+current_datetime.addSecs(-RD_WEB_SESSION_TIMEOUT). - toString("yyyy-MM-dd hh:mm:ss")+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("delete from `WEB_CONNECTIONS` where ")+ + "`TIME_STAMP`<'"+current_datetime.addSecs(-RD_WEB_SESSION_TIMEOUT). + toString("yyyy-MM-dd hh:mm:ss")+"'"; + RDSqlQuery::apply(sql); // // Check for Session // - sql=QString("select LOGIN_NAME,IP_ADDRESS from WEB_CONNECTIONS where ")+ - QString().sprintf("SESSION_ID=%ld",session_id); + sql=QString("select ")+ + "`LOGIN_NAME`,"+ // 00 + "`IP_ADDRESS` "+ // 01 + "from `WEB_CONNECTIONS` where "+ + QString().sprintf("`SESSION_ID`=%ld",session_id); q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -734,11 +732,10 @@ QString RDAuthenticateSession(long int session_id,const QHostAddress &addr) // // Update Session // - sql=QString("update WEB_CONNECTIONS set ")+ - "TIME_STAMP=\""+current_datetime.toString("yyyy-MM-dd hh:mm:dd")+"\" "+ - QString().sprintf("where SESSION_ID=%ld",session_id); - q=new RDSqlQuery(sql); - delete q; + sql=QString("update `WEB_CONNECTIONS` set ")+ + "`TIME_STAMP`='"+current_datetime.toString("yyyy-MM-dd hh:mm:dd")+"' "+ + QString().sprintf("where `SESSION_ID`=%ld",session_id); + RDSqlQuery::apply(sql); return name; } @@ -746,9 +743,8 @@ QString RDAuthenticateSession(long int session_id,const QHostAddress &addr) void RDLogoutSession(long int session_id,const QHostAddress &addr) { - QString sql=QString().sprintf("select IP_ADDRESS from WEB_CONNECTIONS \ - where SESSION_ID=%ld", - session_id); + QString sql=QString("select `IP_ADDRESS` from `WEB_CONNECTIONS` ")+ + QString().sprintf("where `SESSION_ID`=%ld",session_id); RDSqlQuery *q=new RDSqlQuery(sql); if(!q->first()) { delete q; @@ -759,10 +755,9 @@ void RDLogoutSession(long int session_id,const QHostAddress &addr) return; } delete q; - sql=QString().sprintf("delete from WEB_CONNECTIONS where SESSION_ID=%ld", - session_id); - q=new RDSqlQuery(sql); - delete q; + sql=QString("delete from `WEB_CONNECTIONS` ")+ + QString().sprintf("where `SESSION_ID`=%ld",session_id); + RDSqlQuery::apply(sql); } diff --git a/rdadmin/edit_feed.cpp b/rdadmin/edit_feed.cpp index 7b43d371..b0941610 100644 --- a/rdadmin/edit_feed.cpp +++ b/rdadmin/edit_feed.cpp @@ -43,7 +43,7 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) setMaximumSize(sizeHint()); feed_feed=new RDFeed(feed,rda->config(),this); - feed_image_model=new RDImagePickerModel("FEED_IMAGES","FEED_ID","ID",this); + feed_image_model=new RDImagePickerModel("FEED_IMAGES","FEED_ID",this); feed_image_model->setCategoryId(feed_feed->id()); setWindowTitle("RDAdmin - "+tr("Feed: ")+feed); @@ -199,7 +199,7 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) // Channel Image // feed_channel_image_box= - new RDImagePickerBox("FEED_IMAGES","FEED_ID","ID",this); + new RDImagePickerBox("FEED_IMAGES","FEED_ID",this); feed_channel_image_box->setCategoryId(feed_feed->id()); feed_channel_image_label=new QLabel(tr("Image")+":",this); feed_channel_image_label->setFont(labelFont()); @@ -354,7 +354,7 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) // // Default Item Image // - feed_item_image_box=new RDImagePickerBox("FEED_IMAGES","FEED_ID","ID",this); + feed_item_image_box=new RDImagePickerBox("FEED_IMAGES","FEED_ID",this); feed_item_image_box->setCategoryId(feed_feed->id()); feed_item_image_label=new QLabel(tr("Default Item Image")+":",this); feed_item_image_label->setFont(labelFont()); diff --git a/rdcastmanager/edit_cast.cpp b/rdcastmanager/edit_cast.cpp index a32fe27b..bf60a67a 100644 --- a/rdcastmanager/edit_cast.cpp +++ b/rdcastmanager/edit_cast.cpp @@ -124,7 +124,7 @@ EditCast::EditCast(unsigned cast_id,QWidget *parent) cast_item_explicit_label->setFont(labelFont()); cast_item_explicit_label->setAlignment(Qt::AlignLeft|Qt::AlignVCenter); - cast_item_image_box=new RDImagePickerBox("FEED_IMAGES","FEED_ID","ID",this); + cast_item_image_box=new RDImagePickerBox("FEED_IMAGES","FEED_ID",this); cast_item_image_label=new QLabel(tr("Image")+":",this); cast_item_image_label->setFont(labelFont()); cast_item_image_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);