使用qsqlquery删除

Jjr*_*ina 2 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;
Run Code Online (Sandbox Code Playgroud)

如果jobId存在都很好,但如果不退出也显示"DELETE ok".

我该如何检查这种情况?

非常感谢你

ale*_*sdm 7

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

您可能能够找到是否删除了某些内容QSqlQuery::numRowsAffected.

但是如果你想在删除它之前知道id是否存在,你必须单独SELECT请求该id.

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

query.prepare("DELETE FROM jobs WHERE jobId = ?");
query.addBindValue(jobId);
Run Code Online (Sandbox Code Playgroud)