• 3234阅读
  • 0回复

创建表出错如何解决? [复制链接]

上一主题 下一主题
离线darkeria
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-05
大家好,小弟在使用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;
快速回复
限100 字节
 
上一个 下一个