Los errores SQL en Qt son en ocasiones difíciles de localizar dada la poca información que aporta el framework por defecto a no ser que lo ejecutemos siembre en modo debug.

Suponiendo que tengamos un código SQL en nuestro proyecto y que hayamos añadido al fichero .pro la siguiente línea entre otras:

QT += sql

Lo único que nos faltaría añadir es el include y el método.

Añadir query.lastError()

Añadimos el include de QSqlError y añadimos el query.lastError() después de la consulta. Y lo redireccionamos a un qDebug() para que lo muestre por consola.

#include <QtSql/QSqlError>
.
.
.
qDebug() << "Error sql: " << query.lastError();
.
.
.

Nota: si nos sale QSqlError(-1, “”, “”) significa que no hay errores SQL. De lo contrario, nos lo indicará.