2018-07-18 Fred Gleason <fredg@paravelsystems.com>

* Cleaned up SQL quieries in 'ripcd/' to ensure UTF-8
	compatibility.
This commit is contained in:
Fred Gleason 2018-07-18 20:58:22 +00:00
parent 6e2b2a7e0b
commit f7bae36307
12 changed files with 215 additions and 191 deletions

View File

@ -17161,3 +17161,6 @@
2018-07-17 Fred Gleason <fredg@paravelsystems.com>
* Cleaned up SQL quieries in 'rdrepld/' to ensure UTF-8
compatibility.
2018-07-18 Fred Gleason <fredg@paravelsystems.com>
* Cleaned up SQL quieries in 'ripcd/' to ensure UTF-8
compatibility.

View File

@ -22,6 +22,7 @@
#include <rdapplication.h>
#include <rddb.h>
#include <rdescape_string.h>
#include "globals.h"
#include "livewire_lwrpaudio.h"
@ -41,10 +42,14 @@ LiveWireLwrpAudio::LiveWireLwrpAudio(RDMatrix *matrix,QObject *parent)
//
// Load The Node List
//
sql=QString().sprintf("select HOSTNAME,TCP_PORT,PASSWORD,BASE_OUTPUT \
from SWITCHER_NODES where (STATION_NAME=\"%s\")&&\
(MATRIX=%d)",(const char *)livewire_stationname,
livewire_matrix);
sql=QString("select ")+
"HOSTNAME,"+ // 00
"TCP_PORT,"+ // 01
"PASSWORD,"+ // 02
"BASE_OUTPUT "+ // 03
"from SWITCHER_NODES where "+
"(STATION_NAME=\""+RDEscapeString(livewire_stationname)+"\")&&"+
QString().sprintf("(MATRIX=%d)",livewire_matrix);
q=new RDSqlQuery(sql);
while(q->next()) {
livewire_nodes.push_back(new RDLiveWire(livewire_nodes.size(),this));
@ -58,20 +63,6 @@ LiveWireLwrpAudio::LiveWireLwrpAudio(RDMatrix *matrix,QObject *parent)
SIGNAL(destinationChanged(unsigned,RDLiveWireDestination *)),
this,
SLOT(destinationChangedData(unsigned,RDLiveWireDestination *)));
/*
connect(livewire_nodes.back(),
SIGNAL(gpoConfigChanged(unsigned,unsigned,unsigned)),
this,
SLOT(gpoConfigChangedData(unsigned,unsigned,unsigned)));
connect(livewire_nodes.back(),
SIGNAL(gpiChanged(unsigned,unsigned,unsigned,bool)),
this,
SLOT(gpiChangedData(unsigned,unsigned,unsigned,bool)));
connect(livewire_nodes.back(),
SIGNAL(gpoChanged(unsigned,unsigned,unsigned,bool)),
this,
SLOT(gpoChangedData(unsigned,unsigned,unsigned,bool)));
*/
connect(livewire_nodes.back(),
SIGNAL(watchdogStateChanged(unsigned,const QString &)),
this,SLOT(watchdogStateChangedData(unsigned,const QString &)));
@ -187,36 +178,24 @@ void LiveWireLwrpAudio::sourceChangedData(unsigned id,RDLiveWireSource *src)
QString sql;
RDSqlQuery *q;
sql=QString().sprintf("delete from INPUTS where \
(STATION_NAME=\"%s\")&&\
(MATRIX=%d)&&\
(NODE_HOSTNAME=\"%s\")&&\
(NODE_TCP_PORT=%d)&&\
(NODE_SLOT=%d)",
(const char *)livewire_stationname,
livewire_matrix,
(const char *)livewire_nodes[id]->hostname(),
livewire_nodes[id]->tcpPort(),
src->slotNumber());
sql=QString("delete from INPUTS where ")+
"(STATION_NAME=\""+RDEscapeString(livewire_stationname)+"\")&&"+
QString().sprintf("(MATRIX=%d)&&",livewire_matrix)+
"(NODE_HOSTNAME=\""+RDEscapeString(livewire_nodes[id]->hostname())+"\")&&"+
QString().sprintf("(NODE_TCP_PORT=%d)&&",livewire_nodes[id]->tcpPort())+
QString().sprintf("(NODE_SLOT=%d)",src->slotNumber());
q=new RDSqlQuery(sql);
delete q;
if(src->rtpEnabled()) {
sql=QString().sprintf("insert into INPUTS set \
STATION_NAME=\"%s\",\
MATRIX=%d,\
NODE_HOSTNAME=\"%s\",\
NODE_TCP_PORT=%d,\
NODE_SLOT=%d,\
NAME=\"%s\",\
NUMBER=%d",
(const char *)livewire_stationname,
livewire_matrix,
(const char *)livewire_nodes[id]->hostname(),
livewire_nodes[id]->tcpPort(),
src->slotNumber(),
(const char *)src->primaryName(),
src->channelNumber());
sql=QString("insert into INPUTS set ")+
"STATION_NAME=\""+RDEscapeString(livewire_stationname)+"\","+
QString().sprintf("MATRIX=%d,",livewire_matrix)+
"NODE_HOSTNAME=\""+RDEscapeString(livewire_nodes[id]->hostname())+"\","+
QString().sprintf("NODE_TCP_PORT=%d,",livewire_nodes[id]->tcpPort())+
QString().sprintf("NODE_SLOT=%d,",src->slotNumber())+
"NAME=\""+RDEscapeString(src->primaryName())+"\","+
QString().sprintf("NUMBER=%d",src->channelNumber());
q=new RDSqlQuery(sql);
delete q;
}
@ -228,35 +207,24 @@ void LiveWireLwrpAudio::destinationChangedData(unsigned id,RDLiveWireDestination
QString sql;
RDSqlQuery *q;
sql=QString().sprintf("delete from OUTPUTS where \
(STATION_NAME=\"%s\")&&\
(MATRIX=%d)&&\
(NODE_HOSTNAME=\"%s\")&&\
(NODE_TCP_PORT=%d)&&\
(NODE_SLOT=%d)",
(const char *)livewire_stationname,
livewire_matrix,
(const char *)livewire_nodes[id]->hostname(),
livewire_nodes[id]->tcpPort(),
dst->slotNumber());
sql=QString("delete from OUTPUTS where ")+
"(STATION_NAME=\""+RDEscapeString(livewire_stationname)+"\")&&"+
QString().sprintf("(MATRIX=%d)&&",livewire_matrix)+
"(NODE_HOSTNAME=\""+RDEscapeString(livewire_nodes[id]->hostname())+"\")&&"+
QString().sprintf("(NODE_TCP_PORT=%d)&&",livewire_nodes[id]->tcpPort())+
QString().sprintf("(NODE_SLOT=%d)",dst->slotNumber());
q=new RDSqlQuery(sql);
delete q;
sql=QString().sprintf("insert into OUTPUTS set \
STATION_NAME=\"%s\",\
MATRIX=%d,\
NODE_HOSTNAME=\"%s\",\
NODE_TCP_PORT=%d,\
NODE_SLOT=%d,\
NAME=\"%s\",\
NUMBER=%d",
(const char *)livewire_stationname,
livewire_matrix,
(const char *)livewire_nodes[id]->hostname(),
livewire_nodes[id]->tcpPort(),
dst->slotNumber(),
(const char *)dst->primaryName(),
livewire_nodes[id]->baseOutput()+dst->slotNumber()-1);
sql=QString("insert into OUTPUTS set ")+
"STATION_NAME=\""+RDEscapeString(livewire_stationname)+"\","+
QString().sprintf("MATRIX=%d,",livewire_matrix)+
"NODE_HOSTNAME=\""+RDEscapeString(livewire_nodes[id]->hostname())+"\","+
QString().sprintf("NODE_TCP_PORT=%d,",livewire_nodes[id]->tcpPort())+
QString().sprintf("NODE_SLOT=%d,",dst->slotNumber())+
"NAME=\""+RDEscapeString(dst->primaryName())+"\","+
QString().sprintf("NUMBER=%d",
livewire_nodes[id]->baseOutput()+dst->slotNumber()-1);
q=new RDSqlQuery(sql);
delete q;
}

View File

@ -2,7 +2,7 @@
//
// A Rivendell LWRP GPIO driver for LiveWire networks.
//
// (C) Copyright 2013,2016 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2013,2016-2018 Fred Gleason <fredg@paravelsystems.com>
//
// 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

View File

@ -138,7 +138,11 @@ LiveWireMcastGpio::LiveWireMcastGpio(RDMatrix *matrix,QObject *parent)
//
// Source Table
//
sql=QString("select SLOT,SOURCE_NUMBER,IP_ADDRESS from LIVEWIRE_GPIO_SLOTS ")+
sql=QString("select ")+
"SLOT,"+ // 00
"SOURCE_NUMBER,"+ // 01
"IP_ADDRESS "+ // 02
"from LIVEWIRE_GPIO_SLOTS "+
"where (STATION_NAME=\""+RDEscapeString(livewire_stationname)+"\")&&"+
QString().sprintf("(MATRIX=%d) ",livewire_matrix)+
"order by SLOT";

View File

@ -161,9 +161,14 @@ void MainObject::LoadLocalMacros()
//
// Initialize Matrices
//
sql=QString().sprintf("select MATRIX,TYPE,PORT,INPUTS,OUTPUTS from MATRICES \
where STATION_NAME=\"%s\"",
(const char *)rda->station()->name());
sql=QString("select ")+
"MATRIX,"+ // 00
"TYPE,"+ // 01
"PORT,"+ // 02
"INPUTS,"+ // 03
"OUTPUTS "+ // 04
"from MATRICES where "+
"STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\"";
q=new RDSqlQuery(sql);
while(q->next()) {
if(!LoadSwitchDriver(q->value(0).toInt())) {
@ -177,10 +182,16 @@ void MainObject::LoadLocalMacros()
//
// Initialize TTYs
//
sql=QString().sprintf("select PORT_ID,PORT,BAUD_RATE,DATA_BITS,PARITY,\
TERMINATION from TTYS where (STATION_NAME=\"%s\")&&\
(ACTIVE=\"Y\")",
(const char *)rda->station()->name());
sql=QString("select ")+
"PORT_ID,"+ // 00
"PORT,"+ // 01
"BAUD_RATE,"+ // 02
"DATA_BITS,"+ // 03
"PARITY,"+ // 04
"TERMINATION "+ // 05
"from TTYS where "+
"(STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\")&&"+
"(ACTIVE=\"Y\")";
q=new RDSqlQuery(sql);
while(q->next()) {
tty_port=q->value(0).toUInt();
@ -778,10 +789,17 @@ void MainObject::RunLocalMacros(RDMacro *rml)
//
// Try to Restart
//
sql=QString().sprintf("select PORT_ID,PORT,BAUD_RATE,DATA_BITS,PARITY,\
TERMINATION from TTYS where (STATION_NAME=\"%s\")&& \
(ACTIVE=\"Y\")&&(PORT_ID=%d)",
(const char *)rda->station()->name(),tty_port);
sql=QString("select ")+
"PORT_ID,"+ // 00
"PORT,"+ // 01
"BAUD_RATE,"+ // 02
"DATA_BITS,"+ // 03
"PARITY,"+ // 04
"TERMINATION "+ // 05
"from TTYS where "+
"(STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\")&&"+
"(ACTIVE=\"Y\")&&"+
QString().sprintf("(PORT_ID=%d)",tty_port);
q=new RDSqlQuery(sql);
if(q->first()) {
if(!ripcd_tty_inuse[tty_port]) {

View File

@ -2,7 +2,7 @@
//
// A Rivendell switcher driver for Modbus TCP
//
// (C) Copyright 2017 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2017-2018 Fred Gleason <fredg@paravelsystems.com>
//
// 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

View File

@ -2,7 +2,7 @@
//
// Rivendell Interprocess Communication Daemon
//
// (C) Copyright 2002-2007,2010,2016 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2007,2010,2016-2018 Fred Gleason <fredg@paravelsystems.com>
//
// 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
@ -41,6 +41,7 @@
#include <rdapplication.h>
#include <rdconf.h>
#include <rdcheck_daemons.h>
#include <rdescape_string.h>
#include <rdnotification.h>
#include "globals.h"
@ -772,10 +773,13 @@ void MainObject::LoadGpiTable()
}
}
}
QString sql=QString().sprintf("select MATRIX,NUMBER,OFF_MACRO_CART,\
MACRO_CART from GPIS \
where STATION_NAME=\"%s\"",
(const char *)rda->config()->stationName());
QString sql=QString("select ")+
"MATRIX,"+ // 00
"NUMBER,"+ // 01
"OFF_MACRO_CART,"+ // 02
"MACRO_CART "+ // 03
"from GPIS where "+
"STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\"";
RDSqlQuery *q=new RDSqlQuery(sql);
while(q->next()) {
ripcd_gpi_macro[q->value(0).toInt()][q->value(1).toInt()-1][0]=
@ -785,9 +789,13 @@ void MainObject::LoadGpiTable()
}
delete q;
sql=QString().sprintf("select MATRIX,NUMBER,OFF_MACRO_CART,MACRO_CART \
from GPOS where STATION_NAME=\"%s\"",
(const char *)rda->config()->stationName());
sql=QString("select ")+
"MATRIX,"+ // 00
"NUMBER,"+ // 01
"OFF_MACRO_CART,"+ // 02
"MACRO_CART "+ // 03
"from GPOS where "+
"STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\"";
q=new RDSqlQuery(sql);
while(q->next()) {
ripcd_gpo_macro[q->value(0).toInt()][q->value(1).toInt()-1][0]=

View File

@ -22,6 +22,7 @@
#include <rdapplication.h>
#include <rddb.h>
#include <rdescape_string.h>
#include "globals.h"
#include "sasusi.h"
@ -52,12 +53,14 @@ SasUsi::SasUsi(RDMatrix *matrix,QObject *parent)
//
// Load Switch Table
//
sql=QString().
sprintf("select ENGINE_NUM,DEVICE_NUM,RELAY_NUM \
from VGUEST_RESOURCES where (STATION_NAME=\"%s\")&&\
(MATRIX_NUM=%d) order by NUMBER",
(const char *)rda->config()->stationName(),
matrix->matrix());
sql=QString("select ")+
"ENGINE_NUM,"+ // 00
"DEVICE_NUM,"+ // 01
"RELAY_NUM "+ // 02
"from VGUEST_RESOURCES where "+
"(STATION_NAME=\""+RDEscapeString(rda->config()->stationName())+"\")&&"+
QString().sprintf("(MATRIX_NUM=%d) ",matrix->matrix())+
"order by NUMBER";
q=new RDSqlQuery(sql);
while(q->next()) {
sas_console_numbers.push_back(q->value(0).toInt());
@ -486,26 +489,24 @@ void SasUsi::DispatchCommand()
if(sscanf(sas_buffer+1,"%u",&input)!=1) {
return;
}
sql=QString().sprintf("select NUMBER from INPUTS where \
(STATION_NAME=\"%s\")&& \
(MATRIX=%d)&&(NUMBER=%d)",
(const char *)rda->station()->name(),
sas_matrix,input);
sql=QString("select NUMBER from INPUTS where ")+
"(STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\")&&"+
QString().sprintf("(MATRIX=%d)&&",sas_matrix)+
QString().sprintf("(NUMBER=%d)",input);
q=new RDSqlQuery(sql);
if(q->first()) {
sql=QString().sprintf("update INPUTS set NAME=\"%s\" where \
(STATION_NAME=\"%s\")&&\
(MATRIX=%d)&&(NUMBER=%d)",
(const char *)label,
(const char *)rda->station()->name(),
sas_matrix,input);
sql=QString("update INPUTS set ")+
"NAME=\""+RDEscapeString(label)+"\" where "+
"(STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\")&&"+
QString().sprintf("(MATRIX=%d)&&",sas_matrix)+
QString().sprintf("(NUMBER=%d)",input);
}
else {
sql=QString().sprintf("insert into INPUTS set NAME=\"%s\",\
STATION_NAME=\"%s\",MATRIX=%d,NUMBER=%d",
(const char *)label,
(const char *)rda->station()->name(),
sas_matrix,input);
sql=QString("insert into INPUTS set ")+
"NAME=\""+RDEscapeString(label)+"\","+
"STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\","+
QString().sprintf("MATRIX=%d,",sas_matrix)+
QString().sprintf("NUMBER=%d",input);
}
delete q;
q=new RDSqlQuery(sql);
@ -521,26 +522,24 @@ void SasUsi::DispatchCommand()
if(sscanf(sas_buffer+1,"%u",&output)!=1) {
return;
}
sql=QString().sprintf("select NUMBER from OUTPUTS where \
(STATION_NAME=\"%s\")&&\
(MATRIX=%d)&&(NUMBER=%d)",
(const char *)rda->station()->name(),
sas_matrix,output);
sql=QString("select NUMBER from OUTPUTS where ")+
"(STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\")&&"+
QString().sprintf("(MATRIX=%d)&&",sas_matrix)+
QString().sprintf("(NUMBER=%d)",output);
q=new RDSqlQuery(sql);
if(q->first()) {
sql=QString().sprintf("update OUTPUTS set NAME=\"%s\" where \
(STATION_NAME=\"%s\")&&\
(MATRIX=%d)&&(NUMBER=%d)",
(const char *)label,
(const char *)rda->station()->name(),
sas_matrix,output);
sql=QString("update OUTPUTS set ")+
"NAME=\""+RDEscapeString(label)+"\" where "+
"(STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\")&&"+
QString().sprintf("(MATRIX=%d)&&",sas_matrix)+
QString().sprintf("(NUMBER=%d)",output);
}
else {
sql=QString().sprintf("insert into OUTPUTS set NAME=\"%s\",\
STATION_NAME=\"%s\",MATRIX=%d,NUMBER=%d",
(const char *)label,
(const char *)rda->station()->name(),
sas_matrix,output);
sql=QString("insert into OUTPUTS set ")+
"NAME=\""+RDEscapeString(label)+"\","+
"STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\","+
QString().sprintf("MATRIX=%d,",sas_matrix)+
QString().sprintf("NUMBER=%d",output);
}
delete q;
q=new RDSqlQuery(sql);

View File

@ -21,6 +21,7 @@
#include <stdlib.h>
#include <rdapplication.h>
#include <rdescape_string.h>
#include "globals.h"
#include "starguide3.h"
@ -40,11 +41,15 @@ StarGuide3::StarGuide3(RDMatrix *matrix,QObject *parent)
//
// Load Feed Data
//
sql=QString().sprintf("select NUMBER,ENGINE_NUM,DEVICE_NUM,CHANNEL_MODE\
from INPUTS where STATION_NAME=\"%s\" && MATRIX=%d \
order by NUMBER",
(const char *)rda->station()->name(),
matrix->matrix());
sql=QString("select ")+
"NUMBER,"+ // 00
"ENGINE_NUM,"+ // 01
"DEVICE_NUM,"+ // 02
"CHANNEL_MODE "+ // 03
"from INPUTS where "+
"STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\" && "+
QString().sprintf("MATRIX=%d ",matrix->matrix())+
"order by NUMBER";
q=new RDSqlQuery(sql);
q->first();
for(int i=0;i<sg_inputs;i++) {

View File

@ -310,26 +310,24 @@ void SoftwareAuthority::DispatchCommand()
if(f0.size()>=7) {
name=f0[6]+": "+f0[2];
}
sql=QString().sprintf("select NUMBER from INPUTS where \
(STATION_NAME=\"%s\")&& \
(MATRIX=%d)&&(NUMBER=%d)",
(const char *)rda->station()->name(),
swa_matrix,f0[0].toInt());
sql=QString("select NUMBER from INPUTS where ")+
"(STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\")&&"+
QString().sprintf("(MATRIX=%d)&&",swa_matrix)+
QString().sprintf("(NUMBER=%d)",f0[0].toInt());
q=new RDSqlQuery(sql);
if(q->first()) {
sql=QString().sprintf("update INPUTS set NAME=\"%s\" where \
(STATION_NAME=\"%s\")&&\
(MATRIX=%d)&&(NUMBER=%d)",
(const char *)name,
(const char *)rda->station()->name(),
swa_matrix,f0[0].toInt());
sql=QString("update INPUTS set ")+
"NAME=\""+RDEscapeString(name)+"\" where "+
"(STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\")&&"+
QString().sprintf("(MATRIX=%d)&&",swa_matrix)+
QString().sprintf("(NUMBER=%d)",f0[0].toInt());
}
else {
sql=QString().sprintf("insert into INPUTS set NAME=\"%s\",\
STATION_NAME=\"%s\",MATRIX=%d,NUMBER=%d",
(const char *)name,
(const char *)rda->station()->name(),
swa_matrix,f0[0].toInt());
sql=QString("insert into INPUTS set ")+
"NAME=\""+RDEscapeString(name)+"\","+
"STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\","+
QString().sprintf("MATRIX=%d,",swa_matrix)+
QString().sprintf("NUMBER=%d",f0[0].toInt());
}
delete q;
q=new RDSqlQuery(sql);
@ -364,26 +362,24 @@ void SoftwareAuthority::DispatchCommand()
if(f0.size()>=6) {
name=f0[3]+"/"+f0[5]+": "+f0[2];
}
sql=QString().sprintf("select NUMBER from OUTPUTS where \
(STATION_NAME=\"%s\")&&\
(MATRIX=%d)&&(NUMBER=%d)",
(const char *)rda->station()->name(),
swa_matrix,f0[0].toInt());
sql=QString("select NUMBER from OUTPUTS where ")+
"(STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\")&&"+
QString().sprintf("(MATRIX=%d)&&",swa_matrix)+
QString().sprintf("(NUMBER=%d)",f0[0].toInt());
q=new RDSqlQuery(sql);
if(q->first()) {
sql=QString().sprintf("update OUTPUTS set NAME=\"%s\" where \
(STATION_NAME=\"%s\")&&\
(MATRIX=%d)&&(NUMBER=%d)",
(const char *)name,
(const char *)rda->station()->name(),
swa_matrix,f0[0].toInt());
sql=QString("update OUTPUTS set ")+
"NAME=\""+RDEscapeString(name)+"\" where "+
"(STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\")&&"+
QString().sprintf("(MATRIX=%d)&&",swa_matrix)+
QString().sprintf("(NUMBER=%d)",f0[0].toInt());
}
else {
sql=QString().sprintf("insert into OUTPUTS set NAME=\"%s\",\
STATION_NAME=\"%s\",MATRIX=%d,NUMBER=%d",
(const char *)name,
(const char *)rda->station()->name(),
swa_matrix,f0[0].toInt());
sql=QString("insert into OUTPUTS set ")+
"NAME=\""+RDEscapeString(name)+"\","+
"STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\","+
QString().sprintf("MATRIX=%d,",swa_matrix)+
QString().sprintf("NUMBER=%d",f0[0].toInt());
}
delete q;
q=new RDSqlQuery(sql);

View File

@ -22,6 +22,7 @@
#include <rdapplication.h>
#include <rddb.h>
#include <rdescape_string.h>
#include "globals.h"
#include "unity4000.h"
@ -41,11 +42,14 @@ Unity4000::Unity4000(RDMatrix *matrix,QObject *parent)
//
// Load Feed Data
//
sql=QString().sprintf("select NUMBER,FEED_NAME,CHANNEL_MODE from INPUTS \
where STATION_NAME=\"%s\" && MATRIX=%d \
order by NUMBER",
(const char *)rda->station()->name(),
matrix->matrix());
sql=QString("select ")+
"NUMBER,"+ // 00
"FEED_NAME,"+ // 01
"CHANNEL_MODE "+ // 02
"from INPUTS where "+
"STATION_NAME=\""+RDEscapeString(rda->station()->name())+"\" && "+
QString().sprintf("MATRIX=%d ",matrix->matrix())+
"order by NUMBER";
q=new RDSqlQuery(sql);
q->first();
for(int i=0;i<unity_inputs;i++) {

View File

@ -23,6 +23,7 @@
#include <qsignalmapper.h>
#include <rdapplication.h>
#include <rdescape_string.h>
#include "globals.h"
#include "vguest.h"
@ -71,9 +72,14 @@ VGuest::VGuest(RDMatrix *matrix,QObject *parent)
//
// Load Engine Data - Inputs
//
sql=QString().sprintf("select NUMBER,ENGINE_NUM,DEVICE_NUM from INPUTS where\
(STATION_NAME=\"%s\")&&(MATRIX=%d) order by NUMBER",
(const char *)matrix->station(),matrix->matrix());
sql=QString("select ")+
"NUMBER,"+ // 00
"ENGINE_NUM,"+ // 01
"DEVICE_NUM "+ // 02
"from INPUTS where "+
"(STATION_NAME=\""+RDEscapeString(matrix->station())+"\")&&"+
QString().sprintf("(MATRIX=%d) ",matrix->matrix())+
"order by NUMBER";
q=new RDSqlQuery(sql);
n=1;
while(q->next()) {
@ -92,9 +98,14 @@ VGuest::VGuest(RDMatrix *matrix,QObject *parent)
// Load Engine Data - Outputs
//
sql=
QString().sprintf("select NUMBER,ENGINE_NUM,DEVICE_NUM from OUTPUTS where\
(STATION_NAME=\"%s\")&&(MATRIX=%d) order by NUMBER",
(const char *)matrix->station(),matrix->matrix());
QString("select ")+
"NUMBER,"+ // 00
"ENGINE_NUM,"+ // 01
"DEVICE_NUM "+ // 02
"from OUTPUTS where "+
"(STATION_NAME=\""+RDEscapeString(matrix->station())+"\")&&"+
QString().sprintf("(MATRIX=%d) ",matrix->matrix())+
"order by NUMBER";
q=new RDSqlQuery(sql);
n=1;
while(q->next()) {
@ -113,12 +124,17 @@ VGuest::VGuest(RDMatrix *matrix,QObject *parent)
// Load Engine Data - Relays
//
sql=
QString().sprintf("select NUMBER,ENGINE_NUM,DEVICE_NUM,SURFACE_NUM,\
RELAY_NUM from VGUEST_RESOURCES where\
(STATION_NAME=\"%s\")&&(MATRIX_NUM=%d)&&\
(VGUEST_TYPE=%d) order by NUMBER",
(const char *)matrix->station(),matrix->matrix(),
RDMatrix::VguestTypeRelay);
QString("select ")+
"NUMBER,"+ // 00
"ENGINE_NUM,"+ // 01
"DEVICE_NUM,"+ // 02
"SURFACE_NUM,"+ // 03
"RELAY_NUM "+ // 04
"from VGUEST_RESOURCES where "+
"(STATION_NAME=\""+RDEscapeString(matrix->station())+"\")&&"+
QString().sprintf("(MATRIX_NUM=%d)&&",matrix->matrix())+
QString().sprintf("(VGUEST_TYPE=%d) ",RDMatrix::VguestTypeRelay)+
"order by NUMBER";
q=new RDSqlQuery(sql);
n=1;
while(q->next()) {
@ -140,13 +156,16 @@ VGuest::VGuest(RDMatrix *matrix,QObject *parent)
//
// Load Engine Data - Displays
//
sql=
QString().sprintf("select NUMBER,ENGINE_NUM,DEVICE_NUM,SURFACE_NUM\
from VGUEST_RESOURCES where\
(STATION_NAME=\"%s\")&&(MATRIX_NUM=%d)&&\
(VGUEST_TYPE=%d) order by NUMBER",
(const char *)matrix->station(),matrix->matrix(),
RDMatrix::VguestTypeDisplay);
sql=QString("select ")+
"NUMBER,"+ // 00
"ENGINE_NUM,"+ // 01
"DEVICE_NUM,"+ // 02
"SURFACE_NUM "+ // 03
"from VGUEST_RESOURCES where "+
"(STATION_NAME=\""+RDEscapeString(matrix->station())+"\")&&"+
QString().sprintf("(MATRIX_NUM=%d)&&",matrix->matrix())+
QString().sprintf("(VGUEST_TYPE=%d) ",RDMatrix::VguestTypeDisplay)+
"order by NUMBER";
q=new RDSqlQuery(sql);
n=1;
while(q->next()) {