diff --git a/ChangeLog b/ChangeLog index 9912605f..b7131842 100644 --- a/ChangeLog +++ b/ChangeLog @@ -21479,3 +21479,7 @@ * Fixed various regressions in rdadmin(1) that caused SQL errors. 2021-04-19 Fred Gleason * Fixed regression in 'RDSystem' that caused SQL errors. +2021-04-19 Fred Gleason + * Escaped all SQL identifiers in 'importers/'. + * Replaced " with ' delimiters in all SQL literal strings in + 'importers/'. diff --git a/importers/nexgen_filter.cpp b/importers/nexgen_filter.cpp index b680f606..2757713c 100644 --- a/importers/nexgen_filter.cpp +++ b/importers/nexgen_filter.cpp @@ -29,11 +29,6 @@ #include #include -#include -#include -#include -#include - #include #include #include @@ -394,9 +389,9 @@ void MainObject::ProcessXmlFile(const QString &xml,const QString &wavname, cart=new RDCart(cartnum); cart->setMetadata(&data); delete cart; - sql=QString("select CUT_NAME from CUTS where ")+ - QString().sprintf("CART_NUMBER=%d ",cartnum)+ - "order by ORIGIN_DATETIME desc"; + sql=QString("select `CUT_NAME` from `CUTS` where ")+ + QString().sprintf("`CART_NUMBER`=%d ",cartnum)+ + "order by `ORIGIN_DATETIME` desc"; q=new RDSqlQuery(sql); if(q->first()) { cut=new RDCut(q->value(0).toString()); diff --git a/importers/panel_copy.cpp b/importers/panel_copy.cpp index bed1a4cf..96fd0d71 100644 --- a/importers/panel_copy.cpp +++ b/importers/panel_copy.cpp @@ -47,8 +47,7 @@ MainObject::MainObject(QObject *parent) // // Read Command Options // - RDCmdSwitch *cmd= - new RDCmdSwitch("panel_copy",PANEL_COPY_USAGE); + RDCmdSwitch *cmd=new RDCmdSwitch("panel_copy",PANEL_COPY_USAGE); delete cmd; rd_config=new RDConfig(RD_CONF_FILE); @@ -122,7 +121,7 @@ MainObject::MainObject(QObject *parent) // // Check Database Versions // - sql=QString("select DB from VERSION"); + sql=QString("select `DB` from `VERSION`"); q=new QSqlQuery(sql,src_db); if(!q->first()) { fprintf(stderr,"panel_copy: unable to read source database version\n"); @@ -169,26 +168,26 @@ MainObject::MainObject(QObject *parent) // Copy Entries // sql=QString("select ")+ - "TYPE,"+ // 00 - "OWNER,"+ // 01 - "PANEL_NO,"+ // 02 - "ROW_NO,"+ // 03 - "COLUMN_NO,"+ // 04 - "LABEL,"+ // 05 - "CART,"+ // 06 - "DEFAULT_COLOR "+ // 07 - "from PANELS"; + "`TYPE`,"+ // 00 + "`OWNER`,"+ // 01 + "`PANEL_NO`,"+ // 02 + "`ROW_NO`,"+ // 03 + "`COLUMN_NO`,"+ // 04 + "`LABEL`,"+ // 05 + "`CART`,"+ // 06 + "`DEFAULT_COLOR` "+ // 07 + "from `PANELS`"; q=new QSqlQuery(sql,src_db); while(q->next()) { - sql=QString("insert into PANELS set ")+ - QString().sprintf("TYPE=%d,",q->value(0).toInt())+ - "OWNER=\""+RDEscapeString(q->value(1).toString())+"\","+ - QString().sprintf("PANEL_NO=%d,",q->value(2).toInt())+ - QString().sprintf("ROW_NO=%d,",q->value(3).toInt())+ - QString().sprintf("COLUMN_NO=%d,",q->value(4).toInt())+ - "LABEL=\""+RDEscapeString(q->value(5).toString())+"\","+ - QString().sprintf("CART=%d,",q->value(6).toInt())+ - "DEFAULT_COLOR=\""+RDEscapeString(q->value(7).toString())+"\""; + sql=QString("insert into `PANELS` set ")+ + QString().sprintf("`TYPE`=%d,",q->value(0).toInt())+ + "`OWNER`='"+RDEscapeString(q->value(1).toString())+"',"+ + QString().sprintf("`PANEL_NO`=%d,",q->value(2).toInt())+ + QString().sprintf("`ROW_NO`=%d,",q->value(3).toInt())+ + QString().sprintf("`COLUMN_NO`=%d,",q->value(4).toInt())+ + "`LABEL`='"+RDEscapeString(q->value(5).toString())+"',"+ + QString().sprintf("`CART`=%d,",q->value(6).toInt())+ + "`DEFAULT_COLOR`='"+RDEscapeString(q->value(7).toString())+"'"; q1=new QSqlQuery(sql,dest_db); delete q1; } diff --git a/importers/rdcatch_copy.cpp b/importers/rdcatch_copy.cpp index 8796b2e4..927e43ce 100644 --- a/importers/rdcatch_copy.cpp +++ b/importers/rdcatch_copy.cpp @@ -154,7 +154,7 @@ MainObject::MainObject(QObject *parent) // // Check Database Versions // - sql=QString("select DB from VERSION"); + sql=QString("select `DB` from `VERSION`"); q=new QSqlQuery(sql,src_db); if(!q->first()) { fprintf(stderr, @@ -182,8 +182,8 @@ MainObject::MainObject(QObject *parent) // // Check Rivendell Hosts // - sql=QString("select NAME from STATIONS where ")+ - "NAME=\""+RDEscapeString(src_station)+"\""; + sql=QString("select `NAME` from `STATIONS` where ")+ + "NAME='"+RDEscapeString(src_station)+"'"; q=new QSqlQuery(sql,src_db); if(!q->first()) { fprintf(stderr, @@ -192,8 +192,8 @@ MainObject::MainObject(QObject *parent) } delete q; - sql=QString("select NAME from STATIONS where ")+ - "NAME=\""+RDEscapeString(dest_station)+"\""; + sql=QString("select `NAME` from `STATIONS` where ")+ + "`NAME`='"+RDEscapeString(dest_station)+"'"; q=new QSqlQuery(sql,dest_db); if(!q->first()) { fprintf(stderr, @@ -217,8 +217,8 @@ MainObject::MainObject(QObject *parent) // // Delete current destination entries // - sql=QString("delete from RECORDINGS where ")+ - "STATION_NAME\""+RDEscapeString(dest_station)+"\""; + sql=QString("delete from `RECORDINGS` where ")+ + "`STATION_NAME`='"+RDEscapeString(dest_station)+"'"; q=new QSqlQuery(sql,dest_db); delete q; @@ -226,94 +226,94 @@ MainObject::MainObject(QObject *parent) // Copy Entries // sql=QString("select ")+ - "IS_ACTIVE,"+ // 00 - "TYPE,"+ // 01 - "CHANNEL,"+ // 02 - "CUT_NAME,"+ // 03 - "SUN,"+ // 04 - "MON,"+ // 05 - "TUE,"+ // 06 - "WED,"+ // 07 - "THU,"+ // 08 - "FRI,"+ // 09 - "SAT,"+ // 10 - "DESCRIPTION,"+ // 11 - "START_TYPE,"+ // 12 - "START_TIME,"+ // 13 - "START_LENGTH,"+ // 14 - "START_MATRIX,"+ // 15 - "START_LINE,"+ // 16 - "START_OFFSET,"+ // 17 - "END_TYPE,"+ // 18 - "END_TIME,"+ // 19 - "END_LENGTH,"+ // 20 - "END_MATRIX,"+ // 21 - "END_LINE,"+ // 22 - "LENGTH,"+ // 23 - "TRIM_THRESHOLD,"+ // 24 - "NORMALIZE_LEVEL,"+ // 25 - "STARTDATE_OFFSET,"+ // 26 - "ENDDATE_OFFSET,"+ // 27 - "FORMAT,"+ // 28 - "CHANNELS,"+ // 29 - "SAMPRATE,"+ // 30 - "BITRATE,"+ // 31 - "QUALITY,"+ // 32 - "MACRO_CART,"+ // 33 - "SWITCH_INPUT,"+ // 34 - "SWITCH_OUTPUT,"+ // 35 - "EXIT_CODE,"+ // 36 - "ONE_SHOT,"+ // 37 - "URL,"+ // 38 - "URL_USERNAME,"+ // 39 - "URL_PASSWORD "+ // 40 - "from RECORDINGS where "+ - "STATION_NAME=\""+RDEscapeString(src_station)+"\""; + "`IS_ACTIVE`,"+ // 00 + "`TYPE`,"+ // 01 + "`CHANNEL`,"+ // 02 + "`CUT_NAME`,"+ // 03 + "`SUN`,"+ // 04 + "`MON`,"+ // 05 + "`TUE`,"+ // 06 + "`WED`,"+ // 07 + "`THU`,"+ // 08 + "`FRI`,"+ // 09 + "`SAT`,"+ // 10 + "`DESCRIPTION`,"+ // 11 + "`START_TYPE`,"+ // 12 + "`START_TIME`,"+ // 13 + "`START_LENGTH`,"+ // 14 + "`START_MATRIX`,"+ // 15 + "`START_LINE`,"+ // 16 + "`START_OFFSET`,"+ // 17 + "`END_TYPE`,"+ // 18 + "`END_TIME`,"+ // 19 + "`END_LENGTH`,"+ // 20 + "`END_MATRIX`,"+ // 21 + "`END_LINE`,"+ // 22 + "`LENGTH`,"+ // 23 + "`TRIM_THRESHOLD`,"+ // 24 + "`NORMALIZE_LEVEL`,"+ // 25 + "`STARTDATE_OFFSET`,"+ // 26 + "`ENDDATE_OFFSET`,"+ // 27 + "`FORMAT`,"+ // 28 + "`CHANNELS`,"+ // 29 + "`SAMPRATE`,"+ // 30 + "`BITRATE`,"+ // 31 + "`QUALITY`,"+ // 32 + "`MACRO_CART`,"+ // 33 + "`SWITCH_INPUT`,"+ // 34 + "`SWITCH_OUTPUT`,"+ // 35 + "`EXIT_CODE`,"+ // 36 + "`ONE_SHOT`,"+ // 37 + "`URL`,"+ // 38 + "`URL_USERNAME`,"+ // 39 + "`URL_PASSWORD` "+ // 40 + "from `RECORDINGS` where "+ + "`STATION_NAME`='"+RDEscapeString(src_station)+"'"; q=new QSqlQuery(sql,src_db); while(q->next()) { - sql=QString("insert into RECORDINGS set ")+ - ":IS_ACTIVE=\""+RDEscapeString(q->value(0).toString())+"\","+ - QString().sprintf("TYPE=%d,",q->value(1).toInt())+ - QString().sprintf("CHANNEL=%u,",q->value(2).toUInt())+ - "CUT_NAME=\""+RDEscapeString(q->value(3).toString())+"\","+ - "SUN=\""+RDEscapeString(q->value(4).toString())+"\","+ - "MON=\""+RDEscapeString(q->value(5).toString())+"\","+ - "TUE=\""+RDEscapeString(q->value(6).toString())+"\","+ - "WED=\""+RDEscapeString(q->value(7).toString())+"\","+ - "THU=\""+RDEscapeString(q->value(8).toString())+"\","+ - "FRI=\""+RDEscapeString(q->value(9).toString())+"\","+ - "SAT=\""+RDEscapeString(q->value(10).toString())+"\","+ - "DESCRIPTION=\""+RDEscapeString(q->value(11).toString())+"\","+ - QString().sprintf("START_TYPE=%d,",q->value(12).toInt())+ - "START_TIME=\""+RDEscapeString(q->value(13).toString())+"\","+ - QString().sprintf("START_LENGTH=%d,",q->value(14).toInt())+ - QString().sprintf("START_MATRIX=%d,",q->value(15).toInt())+ - QString().sprintf("START_LINE=%d,",q->value(16).toInt())+ - QString().sprintf("START_OFFSET=%d,",q->value(17).toInt())+ - QString().sprintf("END_TYPE=%d,",q->value(18).toInt())+ - "END_TIME=\""+RDEscapeString(q->value(19).toString())+"\","+ - QString().sprintf("END_LENGTH=%d,",q->value(20).toInt())+ - QString().sprintf("END_MATRIX=%d,",q->value(21).toInt())+ - QString().sprintf("END_LINE=%d,",q->value(22).toInt())+ - QString().sprintf("LENGTH=%u,",q->value(23).toUInt())+ - QString().sprintf("TRIM_THRESHOLD=%d,",q->value(24).toInt())+ - QString().sprintf("NORMALIZE_LEVEL=%d,",q->value(25).toInt())+ - QString().sprintf("STARTDATE_OFFSET=%u,",q->value(26).toUInt())+ - QString().sprintf("ENDDATE_OFFSET=%u,",q->value(27).toUInt())+ - QString().sprintf("FORMAT=%d,",q->value(28).toInt())+ - QString().sprintf("CHANNELS=%d,",q->value(29).toInt())+ - QString().sprintf("SAMPRATE=%d,",q->value(30).toInt())+ - QString().sprintf("BITRATE=%d,",q->value(31).toInt())+ - QString().sprintf("QUALITY=%d,",q->value(32).toInt())+ - QString().sprintf("MACRO_CART=%d,",q->value(33).toInt())+ - QString().sprintf("SWITCH_INPUT=%d,",q->value(34).toInt())+ - QString().sprintf("SWITCH_OUTPUT=%d,",q->value(35).toInt())+ - QString().sprintf("EXIT_CODE=%d,",q->value(36).toInt())+ - "ONE_SHOT=\""+RDEscapeString(q->value(37).toString())+"\","+ - "URL=\""+RDEscapeString(q->value(38).toString())+"\","+ - "URL_USERNAME=\""+RDEscapeString(q->value(39).toString())+"\","+ - "URL_PASSWORD=\""+RDEscapeString(q->value(40).toString())+"\","+ - "STATION_NAME=\""+RDEscapeString(dest_station)+"\""; + sql=QString("insert into `RECORDINGS` set ")+ + "`IS_ACTIVE`='"+RDEscapeString(q->value(0).toString())+"',"+ + QString().sprintf("`TYPE`=%d,",q->value(1).toInt())+ + QString().sprintf("`CHANNEL`=%u,",q->value(2).toUInt())+ + "`CUT_NAME`='"+RDEscapeString(q->value(3).toString())+"',"+ + "`SUN`='"+RDEscapeString(q->value(4).toString())+"',"+ + "`MON`='"+RDEscapeString(q->value(5).toString())+"',"+ + "`TUE`='"+RDEscapeString(q->value(6).toString())+"',"+ + "`WED`='"+RDEscapeString(q->value(7).toString())+"',"+ + "`THU`='"+RDEscapeString(q->value(8).toString())+"',"+ + "`FRI`='"+RDEscapeString(q->value(9).toString())+"',"+ + "`SAT`='"+RDEscapeString(q->value(10).toString())+"',"+ + "`DESCRIPTION`='"+RDEscapeString(q->value(11).toString())+"',"+ + QString().sprintf("`START_TYPE`=%d,",q->value(12).toInt())+ + "`START_TIME`='"+RDEscapeString(q->value(13).toString())+"',"+ + QString().sprintf("`START_LENGTH`=%d,",q->value(14).toInt())+ + QString().sprintf("`START_MATRIX`=%d,",q->value(15).toInt())+ + QString().sprintf("`START_LINE`=%d,",q->value(16).toInt())+ + QString().sprintf("`START_OFFSET`=%d,",q->value(17).toInt())+ + QString().sprintf("`END_TYPE`=%d,",q->value(18).toInt())+ + "`END_TIME`='"+RDEscapeString(q->value(19).toString())+"',"+ + QString().sprintf("`END_LENGTH`=%d,",q->value(20).toInt())+ + QString().sprintf("`END_MATRIX`=%d,",q->value(21).toInt())+ + QString().sprintf("`END_LINE`=%d,",q->value(22).toInt())+ + QString().sprintf("`LENGTH`=%u,",q->value(23).toUInt())+ + QString().sprintf("`TRIM_THRESHOLD`=%d,",q->value(24).toInt())+ + QString().sprintf("`NORMALIZE_LEVEL`=%d,",q->value(25).toInt())+ + QString().sprintf("`STARTDATE_OFFSET`=%u,",q->value(26).toUInt())+ + QString().sprintf("`ENDDATE_OFFSET`=%u,",q->value(27).toUInt())+ + QString().sprintf("`FORMAT`=%d,",q->value(28).toInt())+ + QString().sprintf("`CHANNELS`=%d,",q->value(29).toInt())+ + QString().sprintf("`SAMPRATE`=%d,",q->value(30).toInt())+ + QString().sprintf("`BITRATE`=%d,",q->value(31).toInt())+ + QString().sprintf("`QUALITY`=%d,",q->value(32).toInt())+ + QString().sprintf("`MACRO_CART`=%d,",q->value(33).toInt())+ + QString().sprintf("`SWITCH_INPUT`=%d,",q->value(34).toInt())+ + QString().sprintf("`SWITCH_OUTPUT`=%d,",q->value(35).toInt())+ + QString().sprintf("`EXIT_CODE`=%d,",q->value(36).toInt())+ + "`ONE_SHOT`='"+RDEscapeString(q->value(37).toString())+"',"+ + "`URL`='"+RDEscapeString(q->value(38).toString())+"',"+ + "`URL_USERNAME`='"+RDEscapeString(q->value(39).toString())+"',"+ + "`URL_PASSWORD`='"+RDEscapeString(q->value(40).toString())+"',"+ + "`STATION_NAME`='"+RDEscapeString(dest_station)+"'"; q1=new QSqlQuery(sql,dest_db); delete q1; } diff --git a/importers/rivendell_filter.cpp b/importers/rivendell_filter.cpp index a274bcb5..ef5c50c6 100644 --- a/importers/rivendell_filter.cpp +++ b/importers/rivendell_filter.cpp @@ -188,9 +188,9 @@ MainObject::MainObject(QObject *parent) // Verify that default group exists // sql=QString("select ")+ - "NAME "+ - "from GROUPS where "+ - "NAME=\""+RDEscapeString(default_group)+"\""; + "`NAME` "+ + "from `GROUPS` where "+ + "`NAME`='"+RDEscapeString(default_group)+"'"; q=new QSqlQuery(sql,filter_db); if(!q->next()) { fprintf(stderr,"rivendell_filter: default group does not exist\n"); @@ -202,37 +202,37 @@ MainObject::MainObject(QObject *parent) // Transfer Loop // sql=QString().sprintf("select ")+ - "NUMBER,"+ // 00 - "TYPE,"+ // 01 - "GROUP_NAME,"+ // 02 - "TITLE,"+ // 03 - "ARTIST,"+ // 04 - "ALBUM,"+ // 05 - "YEAR,"+ // 06 - "LABEL,"+ // 08 - "CLIENT,"+ // 09 - "AGENCY,"+ // 10 - "PUBLISHER,"+ // 11 - "COMPOSER,"+ // 12 - "USER_DEFINED,"+ // 13 - "USAGE_CODE,"+ // 14 - "FORCED_LENGTH,"+ // 15 - "AVERAGE_LENGTH,"+ // 16 - "LENGTH_DEVIATION,"+ // 17 - "AVERAGE_SEGUE_LENGTH,"+ // 18 - "AVERAGE_HOOK_LENGTH,"+ // 19 - "CUT_QUANTITY,"+ // 20 - "LAST_CUT_PLAYED,"+ // 21 - "PLAY_ORDER,"+ // 22 - "VALIDITY,"+ // 23 - "ENFORCE_LENGTH,"+ // 24 - "PRESERVE_PITCH,"+ // 25 - "ASYNCRONOUS,"+ // 26 - "OWNER,"+ // 27 - "MACROS,"+ // 28 - "SCHED_CODES "+ // 29 - "from CART where "+ - QString().sprintf("(NUMBER>=%u)&&(NUMBER<=%u)",start_cartnum,end_cartnum); + "`NUMBER`,"+ // 00 + "`TYPE`,"+ // 01 + "`GROUP_NAME`,"+ // 02 + "`TITLE`,"+ // 03 + "`ARTIST`,"+ // 04 + "`ALBUM`,"+ // 05 + "`YEAR`,"+ // 06 + "`LABEL`,"+ // 08 + "`CLIENT`,"+ // 09 + "`AGENCY`,"+ // 10 + "`PUBLISHER`,"+ // 11 + "`COMPOSER`,"+ // 12 + "`USER_DEFINED`,"+ // 13 + "`USAGE_CODE`,"+ // 14 + "`FORCED_LENGTH`,"+ // 15 + "`AVERAGE_LENGTH`,"+ // 16 + "`LENGTH_DEVIATION`,"+ // 17 + "`AVERAGE_SEGUE_LENGTH`,"+ // 18 + "`AVERAGE_HOOK_LENGTH`,"+ // 19 + "`CUT_QUANTITY`,"+ // 20 + "`LAST_CUT_PLAYED`,"+ // 21 + "`PLAY_ORDER`,"+ // 22 + "`VALIDITY`,"+ // 23 + "`ENFORCE_LENGTH`,"+ // 24 + "`PRESERVE_PITCH`,"+ // 25 + "`ASYNCRONOUS`,"+ // 26 + "`OWNER`,"+ // 27 + "`MACROS`,"+ // 28 + "`SCHED_CODES` "+ // 29 + "from `CART` where "+ + QString().sprintf("(`NUMBER`>=%u)&&(`NUMBER`<=%u)",start_cartnum,end_cartnum); q=new QSqlQuery(sql,ext_db); while(q->next()) { printf("Transferring cart %06u [%s]...",q->value(0).toUInt(), @@ -242,8 +242,8 @@ MainObject::MainObject(QObject *parent) // // Validate Group // - sql=QString("select NAME from GROUPS where ")+ - "NAME=\""+RDEscapeString(q->value(2).toString())+"\""; + sql=QString("select `NAME` from `GROUPS` where ")+ + "`NAME`='"+RDEscapeString(q->value(2).toString())+"'"; q1=new QSqlQuery(sql,filter_db); if(q1->first()) { group=q->value(2).toString(); @@ -256,18 +256,18 @@ MainObject::MainObject(QObject *parent) // // Purge old entries // - sql=QString().sprintf("select CUT_NAME from CUTS where CART_NUMBER=%u", + sql=QString().sprintf("select `CUT_NAME` from `CUTS` where `CART_NUMBER`=%u", q->value(0).toUInt()); q1=new QSqlQuery(sql,filter_db); while(q1->next()) { unlink(RDCut::pathName(q1->value(0).toString()).toUtf8()); } delete q1; - sql=QString().sprintf("delete from CUTS where CART_NUMBER=%u", + sql=QString().sprintf("delete from `CUTS` where `CART_NUMBER`=%u", q->value(0).toUInt()); q1=new QSqlQuery(sql,filter_db); delete q1; - sql=QString().sprintf("delete from CART where NUMBER=%u", + sql=QString().sprintf("delete from `CART` where `NUMBER`=%u", q->value(0).toUInt()); q1=new QSqlQuery(sql,filter_db); delete q1; @@ -279,79 +279,79 @@ MainObject::MainObject(QObject *parent) owner="null"; } else { - owner=QString("\"")+RDEscapeString(q->value(26).toString())+"\""; + owner=QString("'")+RDEscapeString(q->value(26).toString())+"'"; } - sql=QString("insert into CART set ")+ - QString().sprintf("NUMBER=%u,",q->value(0).toUInt())+ - QString().sprintf("TYPE=%u,",q->value(1).toUInt())+ - "GROUP_NAME=\""+RDEscapeString(group)+"\","+ - "TITLE=\""+RDEscapeString(q->value(3).toString())+"\","+ - "ARTIST=\""+RDEscapeString(q->value(4).toString())+"\","+ - "ALBUM=\""+RDEscapeString(q->value(5).toString())+"\","+ - "YEAR=%s,"+RDCheckDateTime(q->value(6).toDate(),"yyyy-MM-dd")+","+ - "LABEL=\""+RDEscapeString(q->value(7).toString())+"\","+ - "CLIENT=\""+RDEscapeString(q->value(8).toString())+"\","+ - "AGENCY=\""+RDEscapeString(q->value(9).toString())+"\","+ - "PUBLISHER=\""+RDEscapeString(q->value(10).toString())+"\","+ - "COMPOSER=\""+RDEscapeString(q->value(11).toString())+"\","+ - "USER_DEFINED=\""+RDEscapeString(q->value(12).toString())+"\","+ - "USAGE_CODE=\""+RDEscapeString(q->value(13).toString())+"\","+ - QString().sprintf("FORCED_LENGTH=%u,",q->value(14).toUInt())+ - QString().sprintf("AVERAGE_LENGTH=%u,",q->value(15).toUInt())+ - QString().sprintf("LENGTH_DEVIATION=%u,",q->value(16).toUInt())+ - QString().sprintf("AVERAGE_SEGUE_LENGTH=%u,",q->value(17).toUInt())+ - QString().sprintf("AVERAGE_HOOK_LENGTH=%u,",q->value(18).toUInt())+ - QString().sprintf("CUT_QUANTITY=%u,",q->value(19).toUInt())+ - QString().sprintf("LAST_CUT_PLAYED=%u,",q->value(20).toUInt())+ - QString().sprintf("PLAY_ORDER=%u,",q->value(21).toUInt())+ - QString().sprintf("VALIDITY=%u,",q->value(22).toUInt())+ - "ENFORCE_LENGTH=\""+RDEscapeString(q->value(23).toString())+"\","+ - "PRESERVE_PITCH=\""+RDEscapeString(q->value(24).toString())+"\","+ - "ASYNCRONOUS=\""+RDEscapeString(q->value(25).toString())+"\","+ - "OWNER="+owner+","+ - "MACROS=\""+RDEscapeString(q->value(27).toString())+"\","+ - "SCHED_CODES=\""+RDEscapeString(q->value(28).toString())+"\""; + sql=QString("insert into `CART` set ")+ + QString().sprintf("`NUMBER`=%u,",q->value(0).toUInt())+ + QString().sprintf("`TYPE`=%u,",q->value(1).toUInt())+ + "`GROUP_NAME`='"+RDEscapeString(group)+"',"+ + "`TITLE`='"+RDEscapeString(q->value(3).toString())+"',"+ + "`ARTIST`='"+RDEscapeString(q->value(4).toString())+"',"+ + "`ALBUM`='"+RDEscapeString(q->value(5).toString())+"',"+ + "`YEAR`=%s,"+RDCheckDateTime(q->value(6).toDate(),"yyyy-MM-dd")+","+ + "`LABEL`='"+RDEscapeString(q->value(7).toString())+"',"+ + "`CLIENT`='"+RDEscapeString(q->value(8).toString())+"',"+ + "`AGENCY`='"+RDEscapeString(q->value(9).toString())+"',"+ + "`PUBLISHER`='"+RDEscapeString(q->value(10).toString())+"',"+ + "`COMPOSER`='"+RDEscapeString(q->value(11).toString())+"',"+ + "`USER_DEFINED`='"+RDEscapeString(q->value(12).toString())+"',"+ + "`USAGE_CODE`='"+RDEscapeString(q->value(13).toString())+"',"+ + QString().sprintf("`FORCED_LENGTH`=%u,",q->value(14).toUInt())+ + QString().sprintf("`AVERAGE_LENGTH`=%u,",q->value(15).toUInt())+ + QString().sprintf("`LENGTH_DEVIATION`=%u,",q->value(16).toUInt())+ + QString().sprintf("`AVERAGE_SEGUE_LENGTH`=%u,",q->value(17).toUInt())+ + QString().sprintf("`AVERAGE_HOOK_LENGTH`=%u,",q->value(18).toUInt())+ + QString().sprintf("`CUT_QUANTITY`=%u,",q->value(19).toUInt())+ + QString().sprintf("`LAST_CUT_PLAYED`=%u,",q->value(20).toUInt())+ + QString().sprintf("`PLAY_ORDER`=%u,",q->value(21).toUInt())+ + QString().sprintf("`VALIDITY`=%u,",q->value(22).toUInt())+ + "`ENFORCE_LENGTH`='"+RDEscapeString(q->value(23).toString())+"',"+ + "`PRESERVE_PITCH`='"+RDEscapeString(q->value(24).toString())+"',"+ + "`ASYNCRONOUS`='"+RDEscapeString(q->value(25).toString())+"',"+ + "`OWNER`="+owner+","+ + "`MACROS`='"+RDEscapeString(q->value(27).toString())+"',"+ + "`SCHED_CODES`='"+RDEscapeString(q->value(28).toString())+"'"; q1=new QSqlQuery(sql,filter_db); delete q1; sql=QString("select ")+ - "CUT_NAME,"+ // 00 - "EVERGREEN,"+ // 01 - "DESCRIPTION,"+ // 02 - "OUTCUE,"+ // 03 - "ISRC,"+ // 04 - "LENGTH,"+ // 05 - "ORIGIN_DATETIME,"+ // 06 - "START_DATETIME,"+ // 07 - "END_DATETIME,"+ // 08 - "SUN,"+ // 09 - "MON,"+ // 10 - "TUE,"+ // 11 - "WED,"+ // 12 - "THU,"+ // 13 - "FRI,"+ // 14 - "SAT,"+ // 15 - "START_DAYPART,"+ // 16 - "END_DAYPART,"+ // 17 - "ORIGIN_NAME,"+ // 18 - "WEIGHT,"+ // 19 - "VALIDITY,"+ // 20 - "CODING_FORMAT,"+ // 21 - "BIT_RATE,"+ // 22 - "CHANNELS,"+ // 23 - "PLAY_GAIN,"+ // 24 - "START_POINT,"+ // 25 - "END_POINT,"+ // 26 - "FADEUP_POINT,"+ // 27 - "FADEDOWN_POINT,"+ // 28 - "SEGUE_START_POINT,"+ // 29 - "SEGUE_END_POINT,"+ // 30 - "SEGUE_GAIN,"+ // 31 - "HOOK_START_POINT,"+ // 32 - "HOOK_END_POINT,"+ // 33 - "TALK_START_POINT,"+ // 34 - "TALK_END_POINT "+ // 35 - "from CUTS where "+ - QString().sprintf("CART_NUMBER=%u",q->value(0).toUInt()); + "`CUT_NAME`,"+ // 00 + "`EVERGREEN`,"+ // 01 + "`DESCRIPTION`,"+ // 02 + "`OUTCUE`,"+ // 03 + "`ISRC`,"+ // 04 + "`LENGTH`,"+ // 05 + "`ORIGIN_DATETIME`,"+ // 06 + "`START_DATETIME`,"+ // 07 + "`END_DATETIME`,"+ // 08 + "`SUN`,"+ // 09 + "`MON`,"+ // 10 + "`TUE`,"+ // 11 + "`WED`,"+ // 12 + "`THU`,"+ // 13 + "`FRI`,"+ // 14 + "`SAT`,"+ // 15 + "`START_DAYPART`,"+ // 16 + "`END_DAYPART`,"+ // 17 + "`ORIGIN_NAME`,"+ // 18 + "`WEIGHT`,"+ // 19 + "`VALIDITY`,"+ // 20 + "`CODING_FORMAT`,"+ // 21 + "`BIT_RATE`,"+ // 22 + "`CHANNELS`,"+ // 23 + "`PLAY_GAIN`,"+ // 24 + "`START_POINT`,"+ // 25 + "`END_POINT`,"+ // 26 + "`FADEUP_POINT`,"+ // 27 + "`FADEDOWN_POINT`,"+ // 28 + "`SEGUE_START_POINT`,"+ // 29 + "`SEGUE_END_POINT`,"+ // 30 + "`SEGUE_GAIN`,"+ // 31 + "`HOOK_START_POINT`,"+ // 32 + "`HOOK_END_POINT`,"+ // 33 + "`TALK_START_POINT`,"+ // 34 + "`TALK_END_POINT` "+ // 35 + "from `CUTS` where "+ + QString().sprintf("`CART_NUMBER`=%u",q->value(0).toUInt()); q1=new QSqlQuery(sql,ext_db); while(q1->next()) { if(q1->value(7).isNull()) { @@ -380,45 +380,45 @@ MainObject::MainObject(QObject *parent) else { end_daypart=RDCheckDateTime(q1->value(17).toTime(),"hh:mm:ss"); } - sql=QString("insert into CUTS set ")+ - "CUT_NAME=\""+RDEscapeString(q1->value(0).toString())+"\","+ - QString().sprintf("CART_NUMBER=%u,",q->value(0).toUInt())+ - "EVERGREEN=\""+RDEscapeString(q1->value(1).toString())+"\","+ - "DESCRIPTION=\""+RDEscapeString(q1->value(2).toString())+"\","+ - "OUTCUE=\""+RDEscapeString(q1->value(3).toString())+"\","+ - "ISRC=\""+RDEscapeString(q1->value(4).toString())+"\","+ - QString().sprintf("LENGTH=%u,",q1->value(5).toUInt())+ - "ORIGIN_DATETIME=\""+RDEscapeString(q1->value(6).toString())+"\","+ - "START_DATETIME="+start_datetime+","+ - "END_DATETIME="+end_datetime+","+ - "SUN=\""+RDEscapeString(q1->value(9).toString())+"\","+ - "MON=\""+RDEscapeString(q1->value(10).toString())+"\","+ - "TUE=\""+RDEscapeString(q1->value(11).toString())+"\","+ - "WED=\""+RDEscapeString(q1->value(12).toString())+"\","+ - "THU=\""+RDEscapeString(q1->value(13).toString())+"\","+ - "FRI=\""+RDEscapeString(q1->value(14).toString())+"\","+ - "SAT=\""+RDEscapeString(q1->value(15).toString())+"\","+ - "START_DAYPART="+start_daypart+","+ - "END_DAYPART="+end_daypart+","+ - "ORIGIN_NAME=\""+RDEscapeString(q1->value(18).toString())+"\","+ - QString().sprintf("WEIGHT=%u,",q1->value(19).toUInt())+ - QString().sprintf("VALIDITY=%u,",q1->value(20).toUInt())+ - QString().sprintf("CODING_FORMAT=%u,",q1->value(21).toUInt())+ - QString().sprintf("SAMPLE_RATE=%u,",q1->value(22).toUInt())+ - QString().sprintf("BIT_RATE=%u,",q1->value(23).toUInt())+ - QString().sprintf("CHANNELS=%u,",q1->value(24).toUInt())+ - QString().sprintf("PLAY_GAIN=%d,",q1->value(25).toInt())+ - QString().sprintf("START_POINT=%d,",q1->value(26).toInt())+ - QString().sprintf("END_POINT=%d,",q1->value(27).toInt())+ - QString().sprintf("FADEUP_POINT=%d,",q1->value(28).toInt())+ - QString().sprintf("FADEDOWN_POINT=%d,",q1->value(29).toInt())+ - QString().sprintf("SEGUE_START_POINT=%d,",q1->value(30).toInt())+ - QString().sprintf("SEGUE_END_POINT=%d,",q1->value(31).toInt())+ - QString().sprintf("SEGUE_GAIN=%d,",q1->value(32).toInt())+ - QString().sprintf("HOOK_START_POINT=%d,",q1->value(33).toInt())+ - QString().sprintf("HOOK_END_POINT=%d,",q1->value(34).toInt())+ - QString().sprintf("TALK_START_POINT=%d,",q1->value(35).toInt())+ - QString().sprintf("TALK_END_POINT=%d",q1->value(36).toInt()); + sql=QString("insert into `CUTS` set ")+ + "`CUT_NAME`='"+RDEscapeString(q1->value(0).toString())+"',"+ + QString().sprintf("`CART_NUMBER`=%u,",q->value(0).toUInt())+ + "`EVERGREEN`='"+RDEscapeString(q1->value(1).toString())+"',"+ + "`DESCRIPTION`='"+RDEscapeString(q1->value(2).toString())+"',"+ + "`OUTCUE`='"+RDEscapeString(q1->value(3).toString())+"',"+ + "`ISRC`='"+RDEscapeString(q1->value(4).toString())+"',"+ + QString().sprintf("`LENGTH`=%u,",q1->value(5).toUInt())+ + "`ORIGIN_DATETIME`='"+RDEscapeString(q1->value(6).toString())+"',"+ + "`START_DATETIME`="+start_datetime+","+ + "`END_DATETIME`="+end_datetime+","+ + "`SUN`='"+RDEscapeString(q1->value(9).toString())+"',"+ + "`MON`='"+RDEscapeString(q1->value(10).toString())+"',"+ + "`TUE`='"+RDEscapeString(q1->value(11).toString())+"',"+ + "`WED`='"+RDEscapeString(q1->value(12).toString())+"',"+ + "`THU`='"+RDEscapeString(q1->value(13).toString())+"',"+ + "`FRI`='"+RDEscapeString(q1->value(14).toString())+"',"+ + "`SAT`='"+RDEscapeString(q1->value(15).toString())+"',"+ + "`START_DAYPART`="+start_daypart+","+ + "`END_DAYPART`="+end_daypart+","+ + "`ORIGIN_NAME`='"+RDEscapeString(q1->value(18).toString())+"',"+ + QString().sprintf("`WEIGHT`=%u,",q1->value(19).toUInt())+ + QString().sprintf("`VALIDITY`=%u,",q1->value(20).toUInt())+ + QString().sprintf("`CODING_FORMAT`=%u,",q1->value(21).toUInt())+ + QString().sprintf("`SAMPLE_RATE`=%u,",q1->value(22).toUInt())+ + QString().sprintf("`BIT_RATE`=%u,",q1->value(23).toUInt())+ + QString().sprintf("`CHANNELS`=%u,",q1->value(24).toUInt())+ + QString().sprintf("`PLAY_GAIN`=%d,",q1->value(25).toInt())+ + QString().sprintf("`START_POINT`=%d,",q1->value(26).toInt())+ + QString().sprintf("`END_POINT`=%d,",q1->value(27).toInt())+ + QString().sprintf("`FADEUP_POINT`=%d,",q1->value(28).toInt())+ + QString().sprintf("`FADEDOWN_POINT`=%d,",q1->value(29).toInt())+ + QString().sprintf("`SEGUE_START_POINT`=%d,",q1->value(30).toInt())+ + QString().sprintf("`SEGUE_END_POINT`=%d,",q1->value(31).toInt())+ + QString().sprintf("`SEGUE_GAIN`=%d,",q1->value(32).toInt())+ + QString().sprintf("`HOOK_START_POINT`=%d,",q1->value(33).toInt())+ + QString().sprintf("`HOOK_END_POINT`=%d,",q1->value(34).toInt())+ + QString().sprintf("`TALK_START_POINT`=%d,",q1->value(35).toInt())+ + QString().sprintf("`TALK_END_POINT`=%d",q1->value(36).toInt()); q2=new QSqlQuery(sql,filter_db); delete q2; ok=RDCopy(ext_audiodir+q1->value(0).toString()+"."+RD_AUDIO_EXTENSION, diff --git a/importers/sas_filter.cpp b/importers/sas_filter.cpp index bfdf4caa..9936f114 100644 --- a/importers/sas_filter.cpp +++ b/importers/sas_filter.cpp @@ -128,53 +128,53 @@ void MainObject::InjectLine(char *line) // // Initialize the SQL clause // - QString base_sql=QString("insert into RECORDINGS set ")+ - "STATION_NAME=\""+RDEscapeString(rda->config()->sasStation())+"\","+ - QString().sprintf("CHANNEL=%d,",rda->config()->sasMatrix()); + QString base_sql=QString("insert into `RECORDINGS` set ")+ + "`STATION_NAME`='"+RDEscapeString(rda->config()->sasStation())+"',"+ + QString().sprintf("`CHANNEL`=%d,",rda->config()->sasMatrix()); // // Day of the week fields // if(line[0]=='X') { - base_sql+="MON=\"Y\","; + base_sql+="`MON`='Y',"; } if(line[1]=='X') { - base_sql+="TUE=\"Y\","; + base_sql+="`TUE`='Y',"; } if(line[2]=='X') { - base_sql+="WED=\"Y\","; + base_sql+="`WED`='Y',"; } if(line[3]=='X') { - base_sql+="THU=\"Y\","; + base_sql+="`THU`='Y',"; } if(line[4]=='X') { - base_sql+="FRI=\"Y\","; + base_sql+="`FRI`='Y',"; } if(line[5]=='X') { - base_sql+="SAT=\"Y\","; + base_sql+="`SAT`='Y',"; } if(line[6]=='X') { - base_sql+="SUN=\"Y\","; + base_sql+="`SUN`='Y',"; } // // Time // line[17]=0; - base_sql+=QString().sprintf("START_TIME=\"%s\",",line+9); + base_sql+=QString().sprintf("`START_TIME`='%s',",line+9); // // Title // line[60]=0; temp=QString(line+19).trimmed(); - base_sql+=QString("DESCRIPTION=\"")+RDEscapeString(temp)+"\","; + base_sql+=QString("`DESCRIPTION`='")+RDEscapeString(temp)+"',"; // // Active Flag // if(line[77]=='I') { - base_sql+="IS_ACTIVE=\"N\","; + base_sql+="`IS_ACTIVE`='N',"; } // @@ -214,9 +214,8 @@ void MainObject::InjectSwitchEvent(QString sql,int input,int output) // // Input and Output // - sql+=QString().sprintf("SWITCH_INPUT=%d,SWITCH_OUTPUT=%d",input,output); - RDSqlQuery *q=new RDSqlQuery(sql); - delete q; + sql+=QString().sprintf("`SWITCH_INPUT`=%d,`SWITCH_OUTPUT`=%d",input,output); + RDSqlQuery::apply(sql); filter_switch_count++; } @@ -226,12 +225,12 @@ void MainObject::InjectCartEvent(QString sql,int gpo) // // Event Type // - sql+="TYPE=1,"; + sql+="`TYPE`=1,"; // // Macro Cart // - sql+=QString().sprintf("MACRO_CART=%d",gpo+rda->config()->sasBaseCart()); + sql+=QString().sprintf("`MACRO_CART`=%d",gpo+rda->config()->sasBaseCart()); filter_macro_count++; RDSqlQuery *q=new RDSqlQuery(sql); delete q; diff --git a/importers/wings_filter.cpp b/importers/wings_filter.cpp index aa6ab901..5f91505d 100644 --- a/importers/wings_filter.cpp +++ b/importers/wings_filter.cpp @@ -203,33 +203,33 @@ bool MainObject::ImportCut(RDGroup *group,struct WingsRecord *rec, printf("Importing %s - %s to cart %u, group %s\n", rec->filename,rec->title,cartnum,group->name().toUtf8().constData()); - sql=QString("insert into CART set ")+ - QString().sprintf("NUMBER=%u,",cartnum)+ - "GROUP_NAME=\""+RDEscapeString(group->name())+"\","+ - "TITLE=\""+RDEscapeString(rec->title)+"\","+ - "ARTIST=\""+RDEscapeString(rec->artist)+"\","+ - "ALBUM=\""+RDEscapeString(rec->album)+"\","+ - "CUT_QUANTITY=1,"+ - QString().sprintf("TYPE=%d,",RDCart::Audio)+ - QString().sprintf("FORCED_LENGTH=%u,",wavefile->getExtTimeLength())+ - QString().sprintf("AVERAGE_LENGTH=%u,",wavefile->getExtTimeLength())+ - "USER_DEFINED=\""+RDEscapeString(rec->filename)+"."+ - RDEscapeString(rec->extension)+"\""; - q=new RDSqlQuery(sql); - delete q; + sql=QString("insert into `CART` set ")+ + QString().sprintf("`NUMBER`=%u,",cartnum)+ + "`GROUP_NAME`='"+RDEscapeString(group->name())+"',"+ + "`TITLE`='"+RDEscapeString(rec->title)+"',"+ + "`ARTIST`='"+RDEscapeString(rec->artist)+"',"+ + "`ALBUM`='"+RDEscapeString(rec->album)+"',"+ + "`CUT_QUANTITY`=1,"+ + QString().sprintf("`TYPE`=%d,",RDCart::Audio)+ + QString().sprintf("`FORCED_LENGTH`=%u,",wavefile->getExtTimeLength())+ + QString().sprintf("`AVERAGE_LENGTH`=%u,",wavefile->getExtTimeLength())+ + "`USER_DEFINED`='"+RDEscapeString(rec->filename)+"."+ + RDEscapeString(rec->extension)+"'"; + RDSqlQuery::apply(sql); + RDCut::create(cartnum,1); - sql=QString("update CUTS set ")+ - "DESCRIPTION=\""+RDEscapeString(rec->title)+"\","+ - "ORIGIN_DATETIME=now(),"+ - "ORIGIN_NAME=\""+RDEscapeString(rda->config()->stationName())+"\","+ - QString().sprintf("CODING_FORMAT=%d,",format)+ - QString().sprintf("SAMPLE_RATE=%u,",wavefile->getSamplesPerSec())+ - QString().sprintf("CHANNELS=%d,",wavefile->getChannels())+ - QString().sprintf("BIT_RATE=%d,",wavefile->getHeadBitRate())+ - QString().sprintf("LENGTH=%u,",wavefile->getExtTimeLength())+ - "START_POINT=0,"+ - QString().sprintf("END_POINT=%d where ",wavefile->getExtTimeLength())+ - "CUT_NAME=\""+RDCut::cutName(cartnum,1)+"\""; + sql=QString("update `CUTS` set ")+ + "`DESCRIPTION`='"+RDEscapeString(rec->title)+"',"+ + "`ORIGIN_DATETIME`=now(),"+ + "`ORIGIN_NAME`='"+RDEscapeString(rda->config()->stationName())+"',"+ + QString().sprintf("`CODING_FORMAT`=%d,",format)+ + QString().sprintf("`SAMPLE_RATE`=%u,",wavefile->getSamplesPerSec())+ + QString().sprintf("`CHANNELS`=%d,",wavefile->getChannels())+ + QString().sprintf("`BIT_RATE`=%d,",wavefile->getHeadBitRate())+ + QString().sprintf("`LENGTH`=%u,",wavefile->getExtTimeLength())+ + "`START_POINT`=0,"+ + QString().sprintf("`END_POINT`=%d where ",wavefile->getExtTimeLength())+ + "`CUT_NAME`='"+RDCut::cutName(cartnum,1)+"'"; q=new RDSqlQuery(sql); delete q;