Bonjour,

J'ai un soucis pour récupérer l'ID de l'enregistrement que je viens d'effectuer dans un projet QT avec SQLite. Il me renvoie toujours 0 alors que ça ne correspond pas du tout à ce que j'ai dans ma base de donnée.

Le code d'insertion :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
 QSqlTableModel model(0, db);
        model.setTable("resident");
        QSqlRecord record = model.record();
        record.setValue("nom", nom);
        record.setValue("prenom", prenom);
        model.insertRecord(-1, record);
J'ai essayé plusieurs méthodes pour récupérer l'ID rien ne marche. En premier lieu avec le QSqlRecord que j'avais (avec le recul je doute que cette méthode puisse marcher ...):
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
record.value("ID");
---->

Ensuite j'ai essayé avec QSqlQuery::lastInsertID
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
model.query().lastInsertID();
----> 0

En utilisant la fonction last_insert_rowid() de SQLite
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
QSqlQuery q("SELECT last_insert_rowid()");
q.record().value(0);
-----> 0

Directement en allant chercher l'ID :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
QSqlQuery q("SELECT ID FROM resident ORDER BY ID DESC LIMIT 1");
q.record().value("ID");
----> 0

Je suis à court de solutions. Au vu de mes résultats je soupçonne une erreur dans la conception de ma BDD ou la façon dont je fais les requêtes mais je ne sais pas où chercher pour le moment ...

Les enregistrements apparaissent bien dans ma BDD avec un ID différent de 0. Les requêtes ne me renvoient pas d'erreurs.

Quelqu'un a t il une solution? Merci.