【问题标题】:PyQt error: QSqlDatabasePrivate::database: unable to open databasePyQt 错误:QSqlDatabasePrivate::database:无法打开数据库
【发布时间】:2010-04-16 04:49:22
【问题描述】:

以下错误的原因是什么: QSqlDatabasePrivate::database: 无法打开数据库: 无法打开数据库 文件打开数据库时出错?

代码 100% 正确,当我重新安装 Windows、Python 和 PyQt 时出现此消息。

编辑:我在具有 .db 文件属性的文件夹中有“只读”标志。当我取消设置并再次打开文件夹属性时,它保持灰色(半选中)。我在文件夹属性中取消了“使用简单共享”标志,我有管理员权限,我的电脑上没有病毒,我可以看到。这个讨厌的问题在超级用户上也没有解决方案。如何为该文件夹和文件设置适当的 sqlite 权限?

【问题讨论】:

    标签: qt sqlite pyqt


    【解决方案1】:

    上述错误发生在:

    • 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;
    }
    

    看起来只是无法打开文件。这可能是由于权限、文件位置更改等原因而发生的。

    【讨论】:

      【解决方案2】:

      此问题的另一个原因可能是路径的编码。在我的情况下,使用unicode(name) 解决了它。

      【讨论】:

        猜你喜欢
        • 2018-04-09
        • 2011-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-18
        • 2021-10-15
        相关资源
        最近更新 更多