如何使用 QtSql 获取 EXISTS 运算符的返回值

How do I get the return value of the EXISTS operator with QtSql?

本文关键字:运算符 返回值 EXISTS 获取 何使用 QtSql      更新时间:2023-10-16

EXISTS 运算符的计算结果始终为整数值 0 和 1 之一。我试图通过QSqlQuery::value(int index)获取它们。但不知何故,这个结果与列无关。如何使用 QtSql 获取 EXISTS 运算符的返回值?

query.prepare("SELECT EXISTS(SELECT 1 FROM files WHERE pid=:pid AND files.name=':name' LIMIT 1);");
query.bindValue(":pid", PID);
query.bindValue(":name", fi.fileName());
if (!query.exec()){
    qCritical() << query.lastError();
    qFatal(SQLERR);
}
query.prepare("SELECT EXISTS(SELECT 1 FROM files WHERE pid=:pid AND files.name=':name' LIMIT 1);");
query.bindValue(":pid", PID);
query.bindValue(":name", fi.fileName());
if (!query.exec()){
    qCritical() << query.lastError();
    qFatal(SQLERR);
}
else
{
    if( query.next( ) )
        QMessageBox::information( NULL , "Test" , query.value( 0 ).toString( ) );
}

这对我来说非常有效。
基本上.next( )将检索下一个可能的查询结果,然后您可以使用query.value( 0 )访问它,如果该值存在于我的查询中,我会返回1,当它不存在时,我会得到0