#include "databasethread.h" #include "smartlightshm.h" DatabaseThread::DatabaseThread(QObject *parent) : QThread(parent) { QDir dir(QString(DbPath)); ConfSqlList.clear(); RecSqlList.clear(); StaSqlList.clear(); if(!dir.exists()) dir.mkdir(QString(DbPath)); conf_db = QSqlDatabase::addDatabase("QSQLITE","conf_db"); conf_db.setDatabaseName(QString(DbPath)+"/conf.db"); rec_db = QSqlDatabase::addDatabase("QSQLITE","rec.db"); rec_db.setDatabaseName(QString(DbPath)+"/rec.db"); sta_db = QSqlDatabase::addDatabase("QSQLITE","sta_db"); sta_db.setDatabaseName(QString(DbPath)+"/sta.db"); if(db_init()){ db_load(); } } DatabaseThread::~DatabaseThread() { stop(); deleteLater(); } void DatabaseThread::stop() { keep = false; } void DatabaseThread::appendSql(int type, QString sql) { if(type==ConfSql) ConfSqlList.append(sql); else if(type==RecSql) RecSqlList.append(sql); else if(type==StaSql) StaSqlList.append(sql); } bool DatabaseThread::had_table(QStringList tblist, QString tbname) { for(int i=0;i0){ if(conf_db.open()){ if(conf_db.transaction()){ while(ConfSqlList.length()>0){ conf_db.exec(ConfSqlList.first()); QString Data = QString("[ %1 sql ] %2") .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz")) .arg(ConfSqlList.first()); emit sql_log(Data); ConfSqlList.removeFirst(); usleep(1000); } conf_db.commit(); } conf_db.close(); } } if(RecSqlList.length()>0){ if(rec_db.open()){ if(rec_db.transaction()){ while(RecSqlList.length()>0){ rec_db.exec(RecSqlList.first()); QString Data = QString("[ %1 sql ] %2") .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz")) .arg(RecSqlList.first()); emit sql_log(Data); RecSqlList.removeFirst(); usleep(1000); } rec_db.commit(); } rec_db.close(); } } if(StaSqlList.length()>0){ if(sta_db.open()){ if(sta_db.transaction()){ while (StaSqlList.length()>0) { sta_db.exec(StaSqlList.first()); QString Data = QString("[ %1 sql ] %2") .arg(QDateTime::currentDateTime().toString("yyyy-MM-dd HH:mm:ss.zzz")) .arg(StaSqlList.first()); emit sql_log(Data); StaSqlList.removeFirst(); usleep(1000); } sta_db.commit(); } sta_db.close(); } } usleep(100000); } }