• 4655阅读
  • 3回复

QSqlQuery 查询最后插入sqlite的id号 [复制链接]

上一主题 下一主题
离线twodiamond
 

只看楼主 倒序阅读 楼主  发表于: 2016-05-10
请问:
       每次开机时需要查询当前数据中最后一条数据的ID号,使用下面语句:
      QSqlQuery query(QSqlDatabase::database());
      query.exec( "select last_insert_rowid() from Table" )  
      if(query.next())
      {
         rows = query.value(0).toUInt();
      }
      但每次,rows都为0.
    
      该如何查询呢?

谢谢!



      
离线never_forget

只看该作者 1楼 发表于: 2016-05-10
你这个方法用得不对啊。没有用过你这种方法。不过这个你可以看看,再看看文档也行。

再有问题可以找我聊聊,共勉。。。
离线stlcours

只看该作者 2楼 发表于: 2016-05-10
我是这样写的,每次都能获得最后一个ID没有问题:
    QSqlQuery sql_query(m_database);
    int res = 0;
    sql_query.prepare(insert_sql);
    if(!sql_query.exec()) {
        qDebug()<<sql_query.lastError();
    } else {
    res = sql_query.lastInsertId().toInt();
    }
离线twodiamond

只看该作者 3楼 发表于: 2016-05-12
回 never_forget 的帖子
never_forget:你这个方法用得不对啊。没有用过你这种方法。不过这个你可以看看,再看看文档也行。
[图片],
再有问题可以找我聊聊,共勉。。。 (2016-05-10 20:14) 

你这个用的是QSqlQueryModel,用rowCount是可以的
我用的是QSqlQuery,没有这个接口。

非常感谢!
快速回复
限100 字节
 
上一个 下一个