I want to add a picture in my SQLite database, but on query execution i had this message : "Unable to fetch row".
I tried to create an sqlite extension, named mod_fileio.dll. On application satrtup, i do the following code, but now the message is "Driver not loaded".
void DatabasePool::add_database(uint bdd_id, QString bdd_path) {
remove_database(bdd_id);
if(QFile::exists(bdd_path) == true) {
_DATABASES.insert(bdd_id, QSqlDatabase::addDatabase("QSQLITE", DatabasePool::_DB_NAMES[bdd_id]));
_DATABASES[bdd_id].setDatabaseName(bdd_path);
_DATABASES[bdd_id].open();
if(_DATABASES[bdd_id].isOpen() == false) {
QString msg = QString("Cannot open database [%1] from %2").arg(DatabasePool::_DB_NAMES[bdd_id]).arg(bdd_path);
LOG(msg.toStdString(), ERROR);
remove_database(bdd_id);
} else {
QString msg = QString("Database [%1] added").arg(DatabasePool::_DB_NAMES[bdd_id]);
LOG(msg.toStdString(), INFO);
}
QVariant v = _DATABASES[bdd_id].driver()->handle();
if(v.isValid() && qstrcmp(v.typeName() , "sqlite3*") == 0) {
sqlite3_initialize();
sqlite3* db_handle = *static_cast<sqlite3**>(v.data());
if(db_handle != nullptr) {
sqlite3_enable_load_extension(db_handle, 1);
QSqlQuery query;
query.exec("SELECT load_extension('mod_fileio')");
if(query.lastError().isValid()) {
QString msg = QString("Error cannot load sqlite extension : %1").arg(query.lastError().text());
LOG(msg.toStdString(), ERROR);
}
} else {
LOG("Cannot handling database !!!", ERROR);
}
}
} else {
QString msg = QString("No [%1] database available. File {%2} not exist!!!").arg(DatabasePool::_DB_NAMES[bdd_id]).arg(bdd_path);
LOG(msg.toStdString(), ERROR);
}
}
Can you help me ?