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