QsqlDatabase db; if(QsqlDatabase::contains("test")) db = QsqlDatabase::database("test"); else db = QsqlDatabase::addDatabase("QsqlITE","test"); db.setDatabaseName("black.db"); if(!db.open()) { QsqlDatabase::removeDatabase("QsqlITE"); return ; } QTime tmpTime; tmpTime.start(); QsqlQuery query(db); query.exec("select * from pixdata where card='1000123'"); int x= 0; while(query.next()) { x = query.value(0).toInt(); qDebug()<<query.value(0).toInt()<<query.value(1).toString(); } qDebug()<<"time"<<tmpTime.elapsed()<<"ms"; //query.clear(); db.close(); QsqlDatabase::removeDatabase("QsqlITE");
加了query.clear() 就正常了
Clears the result set and releases any resources held by the query. Sets the query state to inactive. You should rarely if ever need to call this function.