2010-07-23 7 views
0

Juste essayer de mess avec Qt et SQLite pour se familiariser avec la façon dont les choses que je ne l'ai pas TRAVAIL DE vraiment fait la programmation DB depuis mes VB6, donc s'il vous plaît être facile;]Erreur de compilation lors de la tentative d'obtention de la valeur de QSqlQuery?

Je suis juste essayer d'obtenir le résultat d'une requête et j'essaie de suivre quelques exemples que j'ai trouvés en ligne (à savoir this un). Le processus semble assez simple: créer l'objet QSqlQuery, le faire exécuter une requête, vérifier que quelque chose est revenu, et juste obtenir la valeur. En faisant cela, je reçois une erreur. Code suit:

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; 
} 

L'erreur que je reçois est:

error: invalid use of incomplete type 'struct QVariant' 

Sur la ligne a commenté ci-dessus. Je ne suis pas sûr de ce que cette erreur signifie ou ce que je fais mal, quelqu'un peut-il m'aider s'il vous plaît? Merci beaucoup!

+0

QVariant est-il défini? (Avez-vous inclus son en-tête?) – GManNickG

+0

Je ne l'ai pas inclus, j'ai inclus . Y compris semble avoir fait le tour, merci! Si vous soumettez une réponse formelle, je vais la sélectionner comme correcte, je pense que vous obtenez un petit gâteau ou quelque chose si vous répondez correctement! – Joseph

+0

Cupcake plz. :) – GManNickG

Répondre

1

Fondamentalement, le type est déclarée mais non défini, comme ceci:

struct QVariant; 

Une fois que vous essayez de l'utiliser, il doit être défini, comme ceci:

struct QVariant 
{ 
    // stuff goes here 
}; 

L'erreur est vous dire que c'est incomplet (déclaré mais non défini), et donc pas utilisable. Vous devez inclure l'en-tête <QVariant> pour obtenir la définition de QVariant, pour le rendre complet et donc utilisable.

+0

[Boom] (http://imgur.com/f3b7Z.jpg), des cupcakes binaires! – Joseph

Questions connexes