2012-01-25 11 views
6

próbuję wybrać pole mojego Datą bazową, kod jest:QSqlQuery nie ustawiony na prawidłowy zapis

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"; 

Zapytanie jest poprawne, ponieważ gdy robię qDebug() < < query.size, return 1.

ale z qDebug() < < query.value (0) .toString(); return:

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

Jak mogę to naprawić?

Dziękuję bardzo.

Odpowiedz

17

Należy zadzwonić pod numer query.first(), aby uzyskać dostęp do zwracanych danych. dodatkowo, jeśli zapytanie zwraca więcej niż jeden wiersz, należy wykonać iterację za pośrednictwem query.next().

+0

robię te dwie rzeczy, ale wciąż mam ten sam problem. o co chodzi? – ldgorman

+0

Prawdopodobnie wystąpił błąd w zapytaniu. sprawdź http://doc.qt.nokia.com/4.7-snapshot/qsqlquery.html#lastError – Davita

Powiązane problemy