您好我需要删除QSqlDatabase表中的所有行,我的代码看起来
QString dbName = QDir::currentPath()+"/DB";
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(dbName);
if(db.open()){
QSqlQuery query(db);
query.prepare("truncate fRecogtable"); // this not working
//query.prepare("Delete from fRecogtable"); //this working
if(!query.exec() )
qDebug() << "deletion failed";
query.clear();
db.close();
}
问题是命令truncate fRecogtable
没有从Delete from fRecogtable
工作的表中删除记录。我需要使用truncate
,因为我必须重置自动增量字段。
可能是什么问题?
修改
最后,我成功地与
合作query.prepare("Delete from fRecogtable");
if(!query.exec() )
qDebug() << "deletion failed";
query.clear();
query.prepare("DELETE FROM SQLITE_SEQUENCE WHERE name='fRecogtable'");
if(!query.exec() )
qDebug() << "deletion failed";
由于 哈里斯
答案 0 :(得分:1)
在PyQt中,此问题可以通过query.exec_('TRUNCATE my_table;')
解决,您不需要prepare()
。