16,173
社区成员
发帖
与我相关
我的任务
分享
char channel[]="ABCDEFGHIJKLMNOP";
unsigned int dao;
QString dbcopy;
bool dbflag=0;
int dings=0;
char f0=0;
char f5=0;
QTimer *readTimer = new QTimer();
QTimer *readTimers = new QTimer();
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
readTimers->start(20000);
connect(readTimers,SIGNAL(timeout()),this,SLOT(todo()));
connect(readTimer,SIGNAL(timeout()),this,SLOT(readMyCom()));
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::readMyCom()
{
readTimer->stop();
bool readw_flag = 0;
if(!readw_flag)
{
QDateTime time = QDateTime::currentDateTime();//获取系统现在的时间
QString timestr = time.toString("yyyyMMddhhmm"); //设置显示格式
QString datedir=QString("%1").arg(timestr.left(6));// 文件夹
QString dbname;
if((dao<16)&&(dbflag==0))
{
dbname=QString("./%1/%2.db").arg(timestr.left(6)).arg(timestr.mid(4,8));
dbcopy=QString(dbname);
dbflag=1;
qDebug()<<"name copy"<<endl;
}
else
dbname=QString(dbcopy);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE","mySQLite");
db.setDatabaseName(dbname);
if(!db.open())
qDebug()<<"cann`t open db."<<endl;
QSqlQuery query=QSqlQuery::QSqlQuery(db);
bool bsuccess = false;
QString create=QString("create table %1(id integer primary key autoincrement,count integer);").arg(channel[dao]);
if(query.exec(create) == false)
{
qDebug() << "cann`t creat db table" << endl;
}
QTime tmpTime;
if(!db.transaction())qDebug()<<"transaction begin error!";
tmpTime.start();
QString dat;
qDebug()<<"write table : "<<channel[dao];
for(unsigned int p=0;p<1024;p++)
{
dat= QString("insert into %1(id,count) values(\'%2\',\'%3\');").arg(channel[dao]).arg(p).arg(p);
bsuccess=query.exec(dat);
if (!bsuccess)
{
qDebug()<<"query insert table channel error!"<<endl;
break;
}
}
if(!db.commit()) //提交事务
{
if(db.rollback())
qDebug()<<"rollback";
else qDebug()<<"rollback error!";
}
qDebug()<<"records take :"<<tmpTime.elapsed()<<"ms"<<endl;
db.close(); //
readw_flag = 1;
}
if(readw_flag==1)
{
QSqlDatabase::removeDatabase("mySQLite");
}
if(readw_flag)
{
readw_flag=0;
dao++;
if(dao<16)
{
qDebug()<<"write :"<<channel[dao];
readTimer->start(1000);
}
else
{
dbflag=0;
readTimers->start(20000);
}
}
}
void MainWindow::todo()
{
QDateTime time = QDateTime::currentDateTime();//获取系统现在的时间
QString tstr = time.toString("yyyyMMddhhmm"); //设置显示格式
QString date5=QString("%1").arg(tstr.right(1));
int shi=date5.toInt();
qDebug()<<"time now :"<<tstr<<"fen :"<<shi;
if((shi==5)&&(f5==0))
{
dings=1;f5=1;f0=0;
}
if((shi==0)&&(f0==0))
{
dings=1;f0=1;f5=0;
}
if(dings>=1)
{
dings=0;
readTimers->stop();
readTimer->start(1000);
dao=0;
dbflag=0;
dbcopy=" ";
qDebug()<<" write :"<<channel[dao];
}
else
{
qDebug()<<" time%5 =0 ?? "<<endl;
}
}