2012-01-25 6 views
6

Estoy intentando seleccionar un campo de mi base de la fecha, el código es:QSqlQuery que no esté situado en un registro válido

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

La consulta es correcta, porque cuando lo hago qDebug() < < query.size, return 1.

pero con qDebug() < < query.value (0) .toString(); return:

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

¿Cómo puedo repararlo?

Muchas gracias.

Respuesta

17

Debe llamar al query.first() antes de poder acceder a los datos devueltos. Además, si su consulta devuelve más de una fila, debe repetirla a través del query.next().

+0

estoy haciendo estas dos cosas, pero sigo teniendo el mismo problema. ¿Cual es el trato? – ldgorman

+0

Probablemente tiene un error en su consulta. compruebe http://doc.qt.nokia.com/4.7-snapshot/qsqlquery.html#lastError – Davita

Cuestiones relacionadas