大家好,小弟在使用sqlite的时候想自己创建一张反应数据表,但创建第一次成功后关闭窗口重新创建第二次时就输出创建失败。我怀疑是不是插入的数据溢出了,所以在最后加了个输出模型行数的变量,结果显示只有256,不知道是不是这个原因导致的,有没有谁碰到过类似的情况?
代码如下:
//创建reactiondata表
QSqlQuery query;
query.exec("DROP TABLE reactiondata");
bool bS = query.exec("CREATE TABLE reactiondata ("
"id INTEGER PRIMARY KEY AUTOINCREMENT, "
"value DOUBLE NOT NULL, "
"time DOUBLE NOT NULL)");
if(!bS) qDebug() << QObject::tr("create failed!"); //初始化模型
reactiondatamodel = new QSqlTableModel(this);
reactiondatamodel->setTable("reactiondata");
reactiondatamodel->setHeaderData(Data_Value,Qt::Horizontal, tr("测试值"));
reactiondatamodel->setHeaderData(Data_Time,Qt::Horizontal, tr("测试时间"));
reactiondatamodel->select();
QSqlRecord newRecord = reactiondatamodel->record();
//仿真采到的数据
int ktmp ,j;
int row =0;
QSqlDatabase::database().transaction();
for (ktmp=0;ktmp<30;ktmp++)
{
for(j=0;j<30;j++)
{
double vtmp = 1-exp(-double(j+ktmp)/20);
double ttmp = j*10;
newRecord.setValue(Data_Value,vtmp);
newRecord.setValue(Data_Time,ttmp);
reactiondatamodel->insertRecord(reactiondatamodel->rowCount(),newRecord);
reactiondatamodel->select();
}
}
QSqlDatabase::database().commit();
int rowcount = reactiondatamodel->rowCount();
qDebug()<<rowcount;