QT 5.01 QSqlDatabase连接,QSqlQuery执行,但是从sqlite数据库中找不到任何内容

时间:2013-11-17 18:29:40

标签: c++ qt sqlite qsqlquery

如标题所述,我已编写QT代码以连接到sqlite数据库。

bool FilterData::initDatabase(){
    QDir d;
    _db = new QSqlDatabase(QSqlDatabase::addDatabase("QSQLITE"));
    _db->setDatabaseName("OMBI.db");
    return _db->open();
}

void FilterData::loadFromDB(){
    if(initDatabase()){
    //set up the query
    QSqlQuery query(*_db);
    //vectors for storing results from the query
    QVector<QString>* measures = new QVector<QString>();
    QVector<QString>* title = new QVector<QString>();
    QVector<QString>* type = new QVector<QString>();

    query.prepare("SELECT * FROM measures");
    query.exec();


    while (query.next()) {
        measures->push_front(query.value(0).toString());
        title->push_front(query.value(1).toString());
        type->push_front(query.value(2).toString());
    }

    std::cout<<"Passed reading query results"<<std::endl;

    std::cout<<measures->size()<<std::endl;
    emit measuresReady(*measures, *title, *type);
}
}

数据库连接并打开就好了,但是在测试query.first()的结果时, query.next(),query.isValid(),query.isActive()和query.isSelect()都是false。 OMBI.db已被放置在QT的项目文件夹中,因为这是我第一次使用QT我不确定这是否是正确的协议。

我一直试图找到解决方案的时间太长了,我已经搜索了很多,但无济于事。希望你们中的一些大师可以解释我做错了什么。

编辑:

我已经确定exec()失败了,query.lastError()报告“没有查询无法获取行”。我现在正试图确定是什么导致查询失败如此悲惨。我检查了_db-&gt; lastError(),但它是空的,我认为这是一件好事。

0 个答案:

没有答案