我正在尝试使用此代码删除qt:
int jobId = 655;
query.prepare("DELETE FROM jobs WHERE jobId = '" + QString::number(jobId) + "'");
QString error = query.lastError().text();
if (query.exec())
qDebug() << "DELETE ok";
else
qDebug() << error;
如果jobId存在都很好但是如果没有退出也显示“DELETE ok”。
我该如何检查这种情况?
非常感谢你
答案 0 :(得分:7)
如果DELETE
查询没有要删除的内容,则不会生成错误。
您可以使用QSqlQuery::numRowsAffected
找到是否删除了某些内容。
但是如果您想在删除之前知道该ID是否存在,则必须对该ID进行单独的SELECT
请求。
PS:您应该使用addBindValue
或bindValue
在查询字符串中插入值:
query.prepare("DELETE FROM jobs WHERE jobId = ?");
query.addBindValue(jobId);