Bonjour,

J'utilise SQL Server 2005, je peux insérer des données dans ma BD sans problème. Seulement, j'aimerais pouvoir récupérer l'ID (auto-incrémenté dans la BD) du dernier INSERT effectué par le programme.
J'ai déjà essayé d'utiliser @@IDENTITY ou SELECT MAX(Id) FROM MaTable par exemple, mais à chaque fois, ces solutions me renvoient 0, 1 ou bien rien du tout.
De même si je créé un autre objet QSqlQuery dans le if.


Table dbo.Vehicule (Id_Vehicule, immatriculatio, tare)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int AccesBD::insertVehicule(QString immatriculation, float tare)
{
    int newId = -1;
 
    QSqlQuery query;
 
    if(query.exec(QString("INSERT INTO [dbo].[Vehicule] VALUES('%1','%2')").arg(immatriculation).arg(tare)))
    {
        QSqlQuery query("SELECT MAX(Id_vehicule) FROM [dbo].[Vehicule]");
        query.next();
        newId = query.value(0).toInt();
    }
    return newId;
}
Si quelqu'un a une idée, parce qu'un peu partout, je vois parler de @@IDENTITY ou SCOPE_IDENTITY(), mais rien ne fonctionne comme désiré.