我想在我的 SQLite 数据库中添加一张图片,但在查询执行时我收到了这条消息:“无法获取行”。
我尝试创建一个名为 mod_fileio.dll 的 sqlite 扩展。在应用程序 satrtup 上,我执行以下代码,但现在消息是“驱动程序未加载”。
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);
}
}
你能帮我吗?