如何使用QSqlQuery和SQLite从新插入的行中获取ID?

时间:2019-06-19 16:53:32

标签: c++ sqlite qt qt5 qsqlquery

我有一个表T,其中有一个字段id(一个INTEGER PRIMARY KEY AUTOINCREMENT和一个INTEGER字段f。使用Qt5,我将使用以下代码插入一行:

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

但是如何获得新插入字段的id

1 个答案:

答案 0 :(得分:1)

您必须使用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();
}