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



我有一个表T,它有一个字段id,这是一个INTEGER PRIMARY KEY AUTOINCREMENT,和一个INTEGER字段f。使用 Qt5,我插入一行包含以下代码:

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

但是如何获取新插入字段的id呢?

你必须

使用QSqlQuerylastInsertId()方法:

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();
}

相关内容

  • 没有找到相关文章

最新更新