如何使用 QtSql 获取 EXISTS 运算符的 return 值?
How do I get the return value of the EXISTS operator with QtSql?
EXISTS 运算符的计算结果总是整数值 0 和 1 之一。我试图通过 QSqlQuery::value(int index) 获取它们。但不知何故,这个结果与列无关。如何使用 QtSql 获取 EXISTS 运算符的 return 值?
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
EXISTS 运算符的计算结果总是整数值 0 和 1 之一。我试图通过 QSqlQuery::value(int index) 获取它们。但不知何故,这个结果与列无关。如何使用 QtSql 获取 EXISTS 运算符的 return 值?
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