2012-03-07 11 views
1

SELECTが無効な位置にアクセスしたかどうかはどのように知ることができますか?例えば、位置651は、私のデータベースで有効ではない位置ですが、私のコードは、エラーが表示されない:mysqlでSELECTが有効でない

query.prepare("SELECT creationDate, state FROM jobs WHERE jobId = '" + QString::number(651) + "'"); 
error = query.lastError().text(); 
if (query.exec()) 
{ 
    query.first(); 
    qDebug() << query.value(0).toString(); 
    qDebug() << query.value(1).toString(); 
} 
else 
    qDebug() << error; 

はどうもありがとうございました。

+4

あなたのSQLには関係なく、あなたがJOBIDとして書かれたものは有効ではありません。あなたはjobId 651のジョブを探していて、そこにいるかどうかにかかわらず、クエリは実行され、そのために有効です。あなたがしたいことは、返された行を取得し、それらが0かどうかを確認することです。 – Sgoettschkes

+0

ありがとう、if(query.first())この状況を確認することができます。 – Jjreina

答えて

5

first()が真であるかどうかをチェックする必要があります。

if (query.exec()) 
{ 
    if (query.first()) 
    { 
     qDebug() << query.value(0).toString(); 
     qDebug() << query.value(1).toString(); 
    } 
    else 
    { 
     qDebug() << "error"; 
    } 
} 

http://doc.qt.io/qt-5/qsqlquery.html#first