sqlite数据库查询和导出的限制问题

之前开发的一个测试软件,最近发现一个bug,数据可以存到数据库,但是无法全部显示出来,并且无法全部导出到excel中,只能显示和导出200多条。现在只解决了全部导出的问题,显示的问题还没完全解决,脑壳疼。。。

原来的代码:

        QSqlQuery sql_query;
        QString create_sql = "create table testdata ('产品编号' varchar, '时间' varchar primary key, '检测对象1' varchar, '相对液位(%)' float, "
                             "'温度1(℃)' int, '浓度(%)' float, '温度2(℃)' int, '检测结果1' varchar, '检测对象2' varchar, '工作状态' varchar, "
                             "'通信状态' varchar, '检测结果2' varchar)";
        sql_query.exec(create_sql);
        sql_query.exec("SELECT * FROM TestData");
        QSqlQueryModel *queryModel = new QSqlQueryModel();
        queryModel->setQuery(sql_query);
        int recordcount = queryModel->rowCount();

改后的代码:

        QSqlQuery sql_query;
        QString create_sql = "create table testdata ('产品编号' varchar, '时间' varchar primary key, '检测对象1' varchar, '相对液位(%)' float, "
                             "'温度1(℃)' int, '浓度(%)' float, '温度2(℃)' int, '检测结果1' varchar, '检测对象2' varchar, '工作状态' varchar, "
                             "'通信状态' varchar, '检测结果2' varchar)";
        sql_query.exec(create_sql);
        sql_query.exec("SELECT * FROM TestData");
        QSqlQueryModel *queryModel = new QSqlQueryModel();
        queryModel->setQuery(sql_query);
        while(queryModel->canFetchMore())
        {
            queryModel->fetchMore();
        }
        int recordcount = queryModel->rowCount();

读取数据库行之前增加以下代码即可解决:

        while(queryModel->canFetchMore())
        {
            queryModel->fetchMore();
        }

现在还需要继续解决的事table中无法显示全部数据库内容的问题~~~
继续解决问题…
原代码:

        QSqlTableModel *model = new QSqlTableModel;
        model->setTable("testdata");
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
        model->select();
        ui->tableView->setModel(model);

改后代码:

        QSqlTableModel *model = new QSqlTableModel;
        model->setTable("testdata");
        model->setEditStrategy(QSqlTableModel::OnManualSubmit);
        model->select();
        while(model->canFetchMore())  //增加此段代码,否则最多只能读到256条数据记录
        {
            model->fetchMore();
        }

        ui->tableView->setModel(model);

问题解决!欧耶!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值