Как получить идентификатор из недавно вставленной строки с помощью QSqlQuery и SQLite? - PullRequest
1 голос
/ 19 июня 2019

У меня есть таблица T, которая имеет поле id, которое является INTEGER PRIMARY KEY AUTOINCREMENT, а поле INTEGER f. С помощью Qt5 я вставляю строку со следующим кодом:

QSqlQuery insert;
insert.exec("INSERT INTO T (f) VALUES (0)");

Но как мне получить id недавно вставленного поля?

1 Ответ

1 голос
/ 19 июня 2019

Вы должны использовать lastInsertId() метод QSqlQuery:

QSqlDatabase db = QSqlDatabase::database();
if(db.driver()->hasFeature(QSqlDriver::LastInsertId)){
    QSqlQuery insert;
    bool res = insert.exec("INSERT INTO T (f) VALUES (0)");
    Q_ASSERT(res);

    QVariant id = insert.lastInsertId();
    Q_ASSERT(id.isValid() && !id.isNull());
    qDebug() << id.toInt();
}
...