Ошибка PyQt: QSqlDatabasePrivate :: database: невозможно открыть базу данных - PullRequest
0 голосов
/ 16 апреля 2010

В чем причина следующей ошибки: QSqlDatabasePrivate :: database: невозможно открыть базу данных: невозможно открыть базу данных Ошибка файла при открытии базы данных?

Код правильный на 100%, это сообщение появилось после переустановки Windows, Python и PyQt.

РЕДАКТИРОВАТЬ: у меня есть флаг «только для чтения» в папке со свойствами файла .db. Он остается серым (наполовину отмеченным), когда я его отключаю и снова открываю свойства папки. Я установил флажок «использовать простой общий доступ» в свойствах папки, у меня есть права администратора, на моем компьютере нет вирусов, как я вижу. Эта неприятная проблема не имеет решения и для Super User. Как правильно установить разрешения для sqlite для этой папки и файла?

Ответы [ 2 ]

1 голос
/ 10 сентября 2012

Еще одной причиной этой проблемы может быть кодировка пути. Использование unicode(name) решило это в моем случае.

1 голос
/ 16 апреля 2010

Вышеуказанная ошибка возникает, когда:

  • Qt считает базу данных действительной,
  • база данных не открыта, И
  • невозможно открыть базу данных.

Вы можете увидеть из следующего кода в src / sql / kernel / qsqldatabase.cpp (с 4.6.2): ​​

QSqlDatabase QSqlDatabasePrivate::database(const QString& name, bool open)
{
    const QConnectionDict *dict = dbDict();
    Q_ASSERT(dict);

    dict->lock.lockForRead();
    QSqlDatabase db = dict->value(name);
    dict->lock.unlock();
    if (db.isValid() && !db.isOpen() && open) {
        if (!db.open())
            qWarning() << "QSqlDatabasePrivate::database: unable to open database:" << db.lastError().text();                                                                                                                                

    }
    return db;
}

Похоже, что просто не удается открыть файл. Это может произойти из-за прав доступа, изменения местоположения файла и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...