在实现 query.value(0).toString() 语句前没有query.next()或者 query.first() ,QSqlQuery返回的数据集,record是停在第一条记录之前的。所以,在获得数据集后,必须执行next()或first()到第一条记录,这时候record才是有效的。
我在query.value(0).toString() 之后,再次调用query.value(0).toString() ,中间没有没有query.next()或者 query.first() 或者query.last()等定位语句,就出现了 not positioned on a valid record报错。虽然执行结果是一样的,但是这样的错误最好不要出现。
解决:用一个变量把query.value(0).toString() 保存下来,后面直接访问这个变量就OK了。
参考原文:https://blog.youkuaiyun.com/llx523113241/article/details/41855203