Qt 5 avec SQLite: bindValue() résultats dans “Paramètre nombre d'erreur” incompatibilité de

Je suis en train de faire une simple requête paramétrée avec Qt 5.3.1 (64 bits) sur Windows 7 en utilisant le driver SQLite. Lorsque j'utilise bindValue() pour définir la valeur du paramètre unique de ma requête, j'ai systématiquement le redoutable "nombre de Paramètre d'erreur" incompatibilité. Tout fonctionne bien lorsque j'utilise addBindValue(). Notez que le code avec bindValue() fonctionne très bien avec Qt 4.8.5 (64-bit).

Voici le code complet (main.cpp):

#include <QtSql>

int main(int, char* [])
{
    auto db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("db.sqlite");
    db.open();

    {
        QSqlQuery query("CREATE TABLE IF NOT EXISTS hashes (filepath TEXT, modified INTEGER, hash TEXT)", db);
        query.exec();
    }

    QSqlQuery query("SELECT modified FROM hashes WHERE filepath = :fp", db);
    query.bindValue(":fp", "test.jpg");

    if (!query.exec())
        qDebug() << query.lastError();

    db.close();

    return 0;
}

QtCreator fichier de projet (qtsqltest.pro):

QT += core sql
TARGET = qtsqltest
TEMPLATE = app
SOURCES += main.cpp

De sortie du programme sur ma machine:

QSqlError("", "Parameter count mismatch", "")

Une idée?

OriginalL'auteur François Beaune | 2014-07-10