Ошибка компиляции при попытке получить значение QSqlQuery? - PullRequest
0 голосов
/ 23 июля 2010

Просто пытаюсь возиться с Qt и SQLite, чтобы ознакомиться с тем, как все работает - я действительно не занимался программированием БД с тех пор, как я работал в vb6, поэтому, пожалуйста, будьте спокойны;

Я просто пытаюсь получить результат запроса и пытаюсь следовать некоторым примерам, которые я нашел в Интернете (а именно this one). Процесс кажется достаточно простым: создайте объект 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 Ответ

1 голос
/ 23 июля 2010

По сути, тип объявлен, но не определен, например:

struct QVariant;

После того, как вы попытаетесь использовать его, его нужно определить, например:

struct QVariant
{
    // stuff goes here
};

Ошибка говорит о том, что она неполная (объявлена, но не определена) и, следовательно, не может использоваться. Вы должны включить заголовок <QVariant>, чтобы получить определение QVariant, сделать его завершенным и, следовательно, пригодным для использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...