【发布时间】:2015-07-25 15:46:49
【问题描述】:
您好,我需要从 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";
谢谢 哈里斯
【问题讨论】:
-
只是做一个
truncate table fRecogtable -
我也试过了,但也没用。
-
```` query.exec("DELETE FROM table_name") ```` 工作但 ```` query.exec("DELETE FROM SQLITE_SEQUENCE WHERE name='table_name'") `` ``对我没用。
标签: mysql qt qsqlquery qsqldatabase