尝试获取QSqlQuery的值时编译错误?

时间:2010-07-23 00:17:15

标签: c++ qt sqlite

只是试着搞砸Qt和SQLite来熟悉事情的运作方式 - 自从我的vb6天以来我没有真正完成数据库编程,所以请轻松一点;]

我只是想获得一个查询的结果,而我正在尝试按照我在网上找到的一些例子(即this一个)。这个过程看起来很简单:创建QSqlQuery对象,让它执行查询,检查返回的内容,然后获取值。这样做时,我收到了一个错误。代码如下:

bool DatabaseManager::structureDB(){
    QSqlQuery query;
    query.exec("CREATE TABLE mytable"
                      " (id integer primary key,"
                      " firstname varchar(20),"
                      " lastname varchar(20),"
                      " age integer)");

    QSqlQuery query2;
    query2.exec("pragma table_info(mytable)");

    if(query2.first()){
        QString test = query2.value(0).toString(); // Error line
        qDebug()<<test;
        return true;
    }
    return false;
}

我得到的错误是:

error: invalid use of incomplete type 'struct QVariant'

在上面评论的行上。我不确定这个错误意味着什么或我做错了什么,有人可以帮忙吗?非常感谢!

1 个答案:

答案 0 :(得分:1)

基本上,声明了类型但没有定义,如下所示:

struct QVariant;

一旦你尝试使用它,就需要定义它,如下所示:

struct QVariant
{
    // stuff goes here
};

错误告诉您不完整(声明但未定义),因此无法使用。您应该包含标头<QVariant>以获取QVariant的定义,以使其完整,从而可以使用。