Database is locked. Unable to fetch row in "DETACH DATABASE..."



  • In my restless dreams I see this code:

    bool DatabaseManager::saveEncryptedDatabase(const QString &path, const QString &password)
    {
        QSqlQuery q;
    
        q.exec(QString("ATTACH DATABASE '%1' AS encrypted KEY '%2'").arg(path, password));
        Utils::handleSqlError(q);
        q.exec(QString("SELECT sqlcipher_export('encrypted')"));
        Utils::handleSqlError(q);
        q.exec("DETACH DATABASE encrypted");
        Utils::handleSqlError(q);
        return true;
    }
    

    Where Utils::handleSqlError is printing error if any occured.
    Result:

    "SQL Query Error: database encrypted is locked Unable to fetch row in\nDETACH DATABASE encrypted"
    

    I have even delayed it to timer and tried to detach every 250ms. No luck. I've tried with transactions. Still nothing though.
    I've got dandruff on my head.