mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-07-16 08:37:45 +02:00
2018-07-07 Fred Gleason <fredg@paravelsystems.com>
* Added a 'CLOCK_LINES' table to the database. * Incremented the database version to 291. * Removed the 'RDClock::tableName()' method.
This commit is contained in:
parent
bd5bd2246b
commit
0c17eb841a
@ -17102,3 +17102,7 @@
|
||||
* Fixed a bug in rddbmgr(8) that caused the 'EVENT_LINES'
|
||||
table to be created with the incorrect engine type when using
|
||||
'--modify'.
|
||||
2018-07-07 Fred Gleason <fredg@paravelsystems.com>
|
||||
* Added a 'CLOCK_LINES' table to the database.
|
||||
* Incremented the database version to 291.
|
||||
* Removed the 'RDClock::tableName()' method.
|
||||
|
@ -27,6 +27,7 @@ EXTRA_DIST = audio_cards.txt\
|
||||
cart.txt\
|
||||
cartslots.txt\
|
||||
clipboard.txt\
|
||||
clock_lines.txt\
|
||||
clock_perms.txt\
|
||||
copy_splits.txt\
|
||||
cut_events.txt\
|
||||
|
12
docs/tables/clock_lines.txt
Normal file
12
docs/tables/clock_lines.txt
Normal file
@ -0,0 +1,12 @@
|
||||
CLOCK_LINES Table Layout for Rivendell
|
||||
|
||||
The CLOCK_PERMS table holds per-line data for clocks in RDLogManager.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
CLOCK_NAME char(64) From CLOCKS.NAME
|
||||
EVENT_NAME char(64) From EVENTS.NAME
|
||||
START_TIME int(11)
|
||||
LENGTH int(11)
|
@ -24,7 +24,7 @@
|
||||
/*
|
||||
* Current Database Version
|
||||
*/
|
||||
#define RD_VERSION_DATABASE 290
|
||||
#define RD_VERSION_DATABASE 291
|
||||
|
||||
|
||||
#endif // DBVERSION_H
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Abstract a Rivendell Log Manager Clock.
|
||||
//
|
||||
// (C) Copyright 2002-2004,2008,2016 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2004,2008,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
|
||||
@ -40,8 +40,6 @@ QString RDClock::name() const
|
||||
void RDClock::setName(const QString &name)
|
||||
{
|
||||
clock_name=name;
|
||||
clock_name_esc=name;
|
||||
clock_name_esc.replace(" ","_");
|
||||
}
|
||||
|
||||
|
||||
@ -151,9 +149,13 @@ bool RDClock::load()
|
||||
clock_remarks=q->value(3).toString();
|
||||
delete q;
|
||||
|
||||
sql=QString().sprintf("select EVENT_NAME,START_TIME,LENGTH from %s_CLK\
|
||||
order by ID",
|
||||
(const char *)clock_name_esc);
|
||||
sql=QString("select ")+
|
||||
"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(RDEventLine());
|
||||
@ -186,7 +188,8 @@ bool RDClock::save()
|
||||
(const char *)clock_name);
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=QString().sprintf("delete from %s_CLK",(const char *)clock_name_esc);
|
||||
sql=QString("delete from CLOCK_LINES where ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(clock_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
}
|
||||
@ -204,17 +207,16 @@ bool RDClock::save()
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
}
|
||||
sql=QString().sprintf("delete from %s_CLK",
|
||||
(const char *)clock_name_esc);
|
||||
sql=QString("delete from CLOCK_LINES where ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(clock_name)+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
for(unsigned i=0;i<clock_events.size();i++) {
|
||||
sql=QString().sprintf("insert into %s_CLK set EVENT_NAME=\"%s\",\
|
||||
START_TIME=%d,LENGTH=%d",
|
||||
(const char *)clock_name_esc,
|
||||
(const char *)clock_events[i].name(),
|
||||
QTime().msecsTo(clock_events[i].startTime()),
|
||||
clock_events[i].length());
|
||||
sql=QString("insert into CLOCK_LINES set ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(clock_name)+"\","+
|
||||
"EVENT_NAME=\""+RDEscapeString(clock_events[i].name())+"\","+
|
||||
QString().sprintf("START_TIME=%d,",QTime().msecsTo(clock_events[i].startTime()))+
|
||||
QString().sprintf("LENGTH=%d",clock_events[i].length());
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
}
|
||||
@ -307,29 +309,23 @@ bool RDClock::generateLog(int hour,const QString &logname,
|
||||
RDSqlQuery *q;
|
||||
RDEventLine eventline;
|
||||
|
||||
sql=QString().sprintf("select EVENT_NAME,START_TIME,LENGTH from %s_CLK\
|
||||
order by START_TIME",
|
||||
(const char *)clock_name_esc);
|
||||
sql=QString("select ")+
|
||||
"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());
|
||||
eventline.load();
|
||||
// eventline.setStartTime(q->value(1).toTime().addSecs(3600*hour));
|
||||
eventline.setStartTime(QTime().addMSecs(q->value(1).toInt()).
|
||||
addSecs(3600*hour));
|
||||
eventline.setLength(q->value(2).toInt());
|
||||
eventline.generateLog(logname,svc_name,errors,artistsep,clock_name_esc);
|
||||
eventline.generateLog(logname,svc_name,errors,artistsep,clock_name);
|
||||
eventline.clear();
|
||||
}
|
||||
delete q;
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
QString RDClock::tableName(const QString &name)
|
||||
{
|
||||
QString ret=name;
|
||||
ret.replace(" ","_");
|
||||
|
||||
return ret+"_CLK";
|
||||
}
|
||||
|
@ -2,7 +2,7 @@
|
||||
//
|
||||
// Abstract a Rivendell Log Manager Clock
|
||||
//
|
||||
// (C) Copyright 2002-2004,2016 Fred Gleason <fredg@paravelsystems.com>
|
||||
// (C) Copyright 2002-2004,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
|
||||
@ -55,11 +55,9 @@ class RDClock
|
||||
bool validate(const QTime &start_time,int length,int except_line=-1);
|
||||
bool generateLog(int hour,const QString &logname,const QString &svc_name,
|
||||
QString *errors);
|
||||
static QString tableName(const QString &name);
|
||||
|
||||
private:
|
||||
QString clock_name;
|
||||
QString clock_name_esc;
|
||||
QString clock_short_name;
|
||||
QColor clock_color;
|
||||
QString clock_remarks;
|
||||
@ -68,4 +66,4 @@ class RDClock
|
||||
bool rules_modified;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // RDCLOCK_H
|
||||
|
@ -33,7 +33,7 @@ void RDCreateLogTable(const QString &name,RDConfig *config)
|
||||
delete q;
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
QString RDCreateLogTableSql(QString name,RDConfig *config)
|
||||
{
|
||||
return QString("create table if not exists `")+name+"`"+
|
||||
@ -81,8 +81,8 @@ QString RDCreateLogTableSql(QString name,RDConfig *config)
|
||||
"index LABEL_IDX (LABEL))"+
|
||||
config->createTablePostfix();
|
||||
}
|
||||
|
||||
|
||||
*/
|
||||
/*
|
||||
QString RDCreateClockTableSql(QString name,RDConfig *config)
|
||||
{
|
||||
return QString("create table `")+name+"` ("+
|
||||
@ -93,7 +93,7 @@ QString RDCreateClockTableSql(QString name,RDConfig *config)
|
||||
"INDEX EVENT_NAME_IDX (EVENT_NAME))"+
|
||||
config->createTablePostfix();
|
||||
}
|
||||
|
||||
*/
|
||||
/*
|
||||
QString RDCreateReconciliationTableSql(QString name,RDConfig *config)
|
||||
{
|
||||
|
@ -24,8 +24,8 @@
|
||||
#define RDCREATE_LOG_H
|
||||
|
||||
//void RDCreateLogTable(const QString &name,RDConfig *config);
|
||||
QString RDCreateLogTableSql(QString name,RDConfig *config);
|
||||
QString RDCreateClockTableSql(QString name,RDConfig *config);
|
||||
//QString RDCreateLogTableSql(QString name,RDConfig *config);
|
||||
//QString RDCreateClockTableSql(QString name,RDConfig *config);
|
||||
//QString RDCreateReconciliationTableSql(QString name,RDConfig *config);
|
||||
QString RDCreateStackTableSql(QString name,RDConfig *config);
|
||||
|
||||
|
@ -499,10 +499,6 @@ void EditClock::saveAsData()
|
||||
}
|
||||
delete q;
|
||||
edit_clock->setName(clockname);
|
||||
sql=RDCreateClockTableSql(RDClock::tableName(clockname),rda->config());
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
|
||||
Save();
|
||||
edit_new_clocks->push_back(clockname);
|
||||
@ -766,12 +762,12 @@ void EditClock::AbandonClock(QString name)
|
||||
if(name==edit_name) {
|
||||
return;
|
||||
}
|
||||
QString sql=QString().sprintf("delete from CLOCKS where NAME=\"%s\"",
|
||||
(const char *)name);
|
||||
RDSqlQuery *q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
|
||||
rda->dropTable(RDClock::tableName(name));
|
||||
QString sql=QString("delete from CLOCKS where ")+
|
||||
"NAME=\""+RDEscapeString(name)+"\"";
|
||||
RDSqlQuery::apply(sql);
|
||||
sql=QString("delete from CLOCK_LINES where ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(name)+"\"";
|
||||
RDSqlQuery::apply(sql);
|
||||
}
|
||||
|
||||
|
||||
|
@ -214,8 +214,7 @@ QSizePolicy ListClocks::sizePolicy() const
|
||||
|
||||
void ListClocks::addData()
|
||||
{
|
||||
QString clockname;
|
||||
QString clockname_esc;
|
||||
QString clockname;
|
||||
QString sql;
|
||||
RDSqlQuery *q;
|
||||
RDSqlQuery *q1;
|
||||
@ -243,15 +242,11 @@ void ListClocks::addData()
|
||||
"ARTISTSEP=15";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=RDCreateClockTableSql(RDClock::tableName(clockname),rda->config());
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
EditClock *clock_dialog=new EditClock(clockname,true,&new_clocks,this);
|
||||
if(clock_dialog->exec()<0) {
|
||||
clockname_esc=clockname;
|
||||
clockname_esc.replace(" ","_");
|
||||
clockname_esc+="_CLK";
|
||||
rda->dropTable(clockname_esc);
|
||||
sql=QString("delete from CLOCK_LINES where ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(clockname)+"\"";
|
||||
RDSqlQuery::apply(sql);
|
||||
sql=QString().sprintf("delete from CLOCKS where NAME=\"%s\"",
|
||||
(const char *)clockname);
|
||||
q=new RDSqlQuery(sql);
|
||||
@ -383,15 +378,15 @@ void ListClocks::renameData()
|
||||
//
|
||||
// Rename Meta Table
|
||||
//
|
||||
sql=QString("update CLOCK_LINES set ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(new_name)+"\" where "+
|
||||
"CLOCK_NAME=\""+RDEscapeString(item->text(0))+"\"";
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
QString old_name_esc=item->text(0);
|
||||
old_name_esc.replace(" ","_");
|
||||
QString new_name_esc=new_name;
|
||||
new_name_esc.replace(" ","_");
|
||||
sql=QString().sprintf("alter table %s_CLK rename to %s_CLK",
|
||||
(const char *)old_name_esc,
|
||||
(const char *)new_name_esc);
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
sql=QString().sprintf("alter table %s_RULES rename to %s_RULES",
|
||||
(const char *)old_name_esc,
|
||||
(const char *)new_name_esc);
|
||||
@ -629,9 +624,10 @@ void ListClocks::DeleteClock(QString clockname)
|
||||
//
|
||||
sql=QString().sprintf("delete from CLOCKS where NAME=\"%s\"",
|
||||
(const char *)clockname);
|
||||
q=new RDSqlQuery(sql);
|
||||
delete q;
|
||||
rda->dropTable(base_name+"_CLK");
|
||||
RDSqlQuery::apply(sql);
|
||||
sql=QString("delete from CLOCK_LINES where ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(clockname)+"\"";
|
||||
RDSqlQuery::apply(sql);
|
||||
rda->dropTable(base_name+"_RULES");
|
||||
}
|
||||
|
||||
|
@ -345,11 +345,10 @@ void ListEvents::renameData()
|
||||
while(q->next()) {
|
||||
clock_name_esc=q->value(0).toString();
|
||||
clock_name_esc.replace(" ","_");
|
||||
sql=QString().sprintf("update %s_CLK set EVENT_NAME=\"%s\"\
|
||||
where EVENT_NAME=\"%s\"",
|
||||
(const char *)clock_name_esc,
|
||||
(const char *)new_name,
|
||||
(const char *)item->text(0));
|
||||
sql=QString("update CLOCK_LINES set ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+
|
||||
"EVENT_NAME=\""+RDEscapeString(new_name)+"\" where "+
|
||||
"EVENT_NAME=\""+RDEscapeString(item->text(0))+"\"";
|
||||
q1=new RDSqlQuery(sql);
|
||||
delete q1;
|
||||
}
|
||||
@ -527,16 +526,13 @@ int ListEvents::ActiveEvents(QString event_name,QString *clock_list)
|
||||
int n=0;
|
||||
QString sql;
|
||||
RDSqlQuery *q,*q1;
|
||||
QString clockname;
|
||||
|
||||
sql="select NAME from CLOCKS";
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
clockname=q->value(0).toString();
|
||||
clockname.replace(" ","_");
|
||||
sql=QString().sprintf("select EVENT_NAME from %s_CLK\
|
||||
where EVENT_NAME=\"%s\"",(const char *)clockname,
|
||||
(const char *)event_name);
|
||||
sql=QString("select EVENT_NAME from CLOCK_LINES where ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(q->value(0).toString())+"\" && "+
|
||||
"EVENT_NAME=\""+RDEscapeString(event_name)+"\"";
|
||||
q1=new RDSqlQuery(sql);
|
||||
if(q1->first()) {
|
||||
*clock_list+=
|
||||
@ -554,7 +550,6 @@ void ListEvents::DeleteEvent(QString event_name)
|
||||
{
|
||||
QString sql;
|
||||
RDSqlQuery *q,*q1;
|
||||
QString clockname;
|
||||
QString base_name=event_name;
|
||||
base_name.replace(" ","_");
|
||||
|
||||
@ -564,11 +559,9 @@ void ListEvents::DeleteEvent(QString event_name)
|
||||
sql="select NAME from CLOCKS";
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
clockname=q->value(0).toString();
|
||||
clockname.replace(" ","_");
|
||||
sql=QString().sprintf("delete from %s_CLK\
|
||||
where EVENT_NAME=\"%s\"",(const char *)clockname,
|
||||
(const char *)event_name);
|
||||
sql=QString("delete from CLOCK_LINES where ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(q->value(0).toString())+"\" && "+
|
||||
"EVENT_NAME=\""+RDEscapeString(event_name)+"\"";
|
||||
q1=new RDSqlQuery(sql);
|
||||
delete q1;
|
||||
}
|
||||
|
@ -242,6 +242,10 @@ void MainObject::CheckOrphanedTracks() const
|
||||
|
||||
void MainObject::CheckClocks() const
|
||||
{
|
||||
//
|
||||
// FIXME: This entire check needs to be rewritten!
|
||||
//
|
||||
/*
|
||||
QString sql;
|
||||
QSqlQuery *q;
|
||||
QSqlQuery *q1;
|
||||
@ -299,11 +303,16 @@ void MainObject::CheckClocks() const
|
||||
delete q1;
|
||||
}
|
||||
delete q;
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
void MainObject::CheckEvents() const
|
||||
{
|
||||
//
|
||||
// FIXME: This whole check needs to be rewritten!
|
||||
//
|
||||
/*
|
||||
QString sql;
|
||||
QSqlQuery *q;
|
||||
QSqlQuery *q1;
|
||||
@ -351,6 +360,7 @@ void MainObject::CheckEvents() const
|
||||
delete q1;
|
||||
}
|
||||
delete q;
|
||||
*/
|
||||
}
|
||||
|
||||
|
||||
|
@ -38,6 +38,55 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) co
|
||||
//
|
||||
|
||||
|
||||
//
|
||||
// Revert 291
|
||||
//
|
||||
if((cur_schema==291)&&(set_schema<cur_schema)) {
|
||||
sql=QString("select NAME from CLOCKS");
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
QString tablename=q->value(0).toString()+"_CLK";
|
||||
tablename.replace(" ","_");
|
||||
sql=QString("create table `")+tablename+"` ("+
|
||||
"ID int unsigned auto_increment not null primary key,"+
|
||||
"EVENT_NAME char(64) not null,"+
|
||||
"START_TIME int not null,"+
|
||||
"LENGTH int not null,"+
|
||||
"INDEX EVENT_NAME_IDX (EVENT_NAME))"+
|
||||
db_table_create_postfix;
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
sql=QString("select ")+
|
||||
"EVENT_NAME,"+ // 00
|
||||
"START_TIME,"+ // 01
|
||||
"LENGTH "+ // 02
|
||||
"from CLOCK_LINES where "+
|
||||
"CLOCK_NAME=\""+RDEscapeString(q->value(0).toString())+"\" "+
|
||||
"order by START_TIME";
|
||||
q1=new RDSqlQuery(sql);
|
||||
while(q1->next()) {
|
||||
sql=QString("insert into `")+tablename+"` set "+
|
||||
"EVENT_NAME=\""+RDEscapeString(q1->value(0).toString())+"\","+
|
||||
QString().sprintf("START_TIME=%d,",q1->value(1).toInt())+
|
||||
QString().sprintf("LENGTH=%d",q1->value(2).toInt());
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
delete q1;
|
||||
}
|
||||
delete q;
|
||||
|
||||
sql=QString("drop table CLOCK_LINES");
|
||||
RDSqlQuery::apply(sql);
|
||||
|
||||
cur_schema--;
|
||||
}
|
||||
|
||||
|
||||
|
||||
//
|
||||
// Revert 290
|
||||
//
|
||||
@ -202,7 +251,6 @@ bool MainObject::RevertSchema(int cur_schema,int set_schema,QString *err_msg) co
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
cur_schema--;
|
||||
}
|
||||
|
@ -132,7 +132,7 @@ void MainObject::InitializeSchemaMap() {
|
||||
global_version_map["2.17"]=268;
|
||||
global_version_map["2.18"]=272;
|
||||
global_version_map["2.19"]=275;
|
||||
global_version_map["2.20"]=290;
|
||||
global_version_map["2.20"]=291;
|
||||
}
|
||||
|
||||
|
||||
|
@ -7566,6 +7566,51 @@ bool MainObject::UpdateSchema(int cur_schema,int set_schema,QString *err_msg) co
|
||||
}
|
||||
delete q;
|
||||
|
||||
cur_schema++;
|
||||
}
|
||||
|
||||
if((cur_schema<291)&&(set_schema>cur_schema)) {
|
||||
sql=QString("create table if not exists CLOCK_LINES (")+
|
||||
"ID int unsigned auto_increment not null primary key,"+
|
||||
"CLOCK_NAME char(64) not null,"+
|
||||
"EVENT_NAME char(64) not null,"+
|
||||
"START_TIME int not null,"+
|
||||
"LENGTH int not null,"+
|
||||
"unique index CLOCK_NAME_START_TIME_IDX (CLOCK_NAME,START_TIME))"+
|
||||
db_table_create_postfix;
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
sql=QString("select NAME from CLOCKS");
|
||||
q=new RDSqlQuery(sql);
|
||||
while(q->next()) {
|
||||
QString tablename=q->value(0).toString()+"_CLK";
|
||||
tablename.replace(" ","_");
|
||||
sql=QString("select ")+
|
||||
"EVENT_NAME,"+ // 00
|
||||
"START_TIME,"+ // 01
|
||||
"LENGTH "+ // 02
|
||||
"from `"+tablename+"` "+
|
||||
"order by START_TIME";
|
||||
q1=new RDSqlQuery(sql);
|
||||
while(q1->next()) {
|
||||
sql=QString("insert into CLOCK_LINES set ")+
|
||||
"CLOCK_NAME=\""+RDEscapeString(q->value(0).toString())+"\","+
|
||||
"EVENT_NAME=\""+RDEscapeString(q1->value(0).toString())+"\","+
|
||||
QString().sprintf("START_TIME=%d,",q1->value(1).toInt())+
|
||||
QString().sprintf("LENGTH=%d",q1->value(2).toInt());
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
delete q1;
|
||||
sql=QString("drop table `")+tablename+"`";
|
||||
if(!RDSqlQuery::apply(sql,err_msg)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
delete q;
|
||||
|
||||
cur_schema++;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user