2012-01-25 13 views
6

मैं अपने तिथि के आधार के एक क्षेत्र का चयन कोशिश कर रहा हूँ पर तैनात नहीं, कोड है:QSqlQuery एक वैध रिकॉर्ड

if (db.db().isOpen()) 
{ 
    qDebug() << "OK"; 
    QSqlQuery query("SELECT state FROM jobs WHERE jobId = '553'", db.db()); 
    qDebug() << query.value(0).toString(); 
} 
else 
    qDebug() << "No ok"; 

क्वेरी सही है क्योंकि जब मैं करना qDebug() < < query.size, वापसी 1.

लेकिन qDebug() < < क्वेरी.value (0) .toString(); वापसी:

OK 
QSqlQuery::value: not positioned on a valid record 
"" 

मैं इसे कैसे ठीक कर सकता हूं?

धन्यवाद आपको बहुत बहुत धन्यवाद।

उत्तर

17

आपको लौटाए गए डेटा तक पहुंचने से पहले query.first() पर कॉल करना चाहिए। इसके अतिरिक्त यदि आपकी क्वेरी एक से अधिक पंक्तियां लौटाती है, तो आपको query.next() के माध्यम से पुनरावृत्त करना चाहिए।

+0

मैं इन दो चीजों को कर रहा हूं, लेकिन फिर भी एक ही समस्या प्राप्त कर रहा हूं। क्या बात है? – ldgorman

+0

शायद आपको अपनी क्वेरी में एक त्रुटि है। http://doc.qt.nokia.com/4.7-snapshot/qsqlquery.html#lastError जांचें – Davita

संबंधित मुद्दे