使用qsqlquery删除

时间:2012-03-21 11:19:38

标签: qt

我正在尝试使用此代码删除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”。

我该如何检查这种情况?

非常感谢你

1 个答案:

答案 0 :(得分:7)

如果DELETE查询没有要删除的内容,则不会生成错误。

您可以使用QSqlQuery::numRowsAffected找到是否删除了某些内容。

但是如果您想在删除之前知道该ID是否存在,则必须对该ID进行单独的SELECT请求。

PS:您应该使用addBindValuebindValue在查询字符串中插入值:

query.prepare("DELETE FROM jobs WHERE jobId = ?");
query.addBindValue(jobId);