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

C++ 如何使用QtSql获取EXISTS运算符的返回值?,c++,qt,sqlite,qt5,C++,Qt,Sqlite,Qt5,EXISTS运算符的计算结果始终为整数值0和1之一。我试着让他们通过。但不知何故,这个结果与列无关。如何使用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 (

EXISTS运算符的计算结果始终为整数值0和1之一。我试着让他们通过。但不知何故,这个结果与列无关。如何使用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);
}
这对我来说非常合适。
基本上。next将检索下一个可能的查询结果,然后您可以使用query.value 0访问它。如果该值存在于我的查询中,我将返回1,当它不存在时,我将返回0

您的查询是什么样子的?问:为什么不从mytable中选择Mycl?如果出现错误,则该列不存在。或者更好的是,查询模式:因为存在错误处理程序来捕获错误,而不是预期的值。@deW1更新了帖子。您使用哪个DB插件?好的,该睡觉了。我肯定读过这篇文章,但忘记了:成功执行的SQL语句将查询的状态设置为active,以便isActive返回true。否则,查询的状态将设置为非活动。在任何一种情况下,当执行新的SQL语句时,查询都位于无效记录上。活动查询必须导航到有效记录,以便isValid在检索值之前返回true。从文件中
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( ) );
}