2011-02-07 2 views
2

J'utilise ce code pour créer une base de données. Mais je deviens "faux" dans le débogage. J'ai beaucoup essayé mais ça ne marche pas. Quelle est l'erreur dans ceci?Erreur de création de base de données dans Qt

QSqlQuery query; 
qDebug() << query.exec("CREATE TABLE glucose (id INTEGER PRIMARY KEY AUTOINCREMENT, value INTEGER, date TEXT, time TEXT, duration TEXT, note TEXT"); 

    qDebug() << query.prepare("INSERT INTO glucose(id, value, date, time, duration, note)""VALUES(?, ?, ?, ?, ?, ?)"); 

    query.bindValue(1,edit_glucose->text().toInt()); 

    query.bindValue(2,datetime->date()); 

    query.bindValue(3,datetime->time()); 

    query.bindValue(4,"a"); 

    query.bindValue(5,edit_note->toPlainText()); 
    qDebug() << query.exec(); 

Répondre

5

vous oubliez de fermer votre requête CREATE TABLE avec ")"

+1

En effet, une bonne prise. –

+0

merci ... :) il a résolu ... j'avais vraiment raté celui-là :( –

+0

votre accueil, heureux d'entendre que –

1

Vous passez dans la requête INSERT le champ id. Vous devez l'enlever.

La requête doit être:

Debug() << query.prepare("INSERT INTO glucose(value, date, time, duration, note) 
             VALUES(?, ?, ?, ?, ?)"); 
2

QSqlQuery a la méthode lastError(), renvoie des informations d'erreur :)

+0

oui j'ai utilisé cela: qDebug() << query.lastError(); Mais sa projection erreur: binaire '<<' aucun opérateur trouvé qui peut prendre un opérande de gauche de type Qdebug (il n'y a pas de conversion acceptable). –

Questions connexes