PyQt5 QSqlDatabase 在没有任何文本错误的情况下无法打开

Posted

技术标签:

【中文标题】PyQt5 QSqlDatabase 在没有任何文本错误的情况下无法打开【英文标题】:PyQt5 QSqlDatabase doesn't open without any text error 【发布时间】:2014-03-25 12:08:03 【问题描述】:

我写了自己的类扩展了 QSqlDatabase:

class Model(QSqlDatabase):

    def __init__(self):
        QSqlDatabase.__init__(self, 'QSQLITE')
        self.setDatabaseName(QSettings().value('DB_PATH'))
        if not self.open():
            print(self.lastError().text())
            raise DBConnectError()

但是 open() 返回 False,并且 lastError() 不显示任何内容。我的错误是什么?

Python 3.3 PyQt 5

【问题讨论】:

打印出 QSettings().value('DB_PATH') 的值——它可能不是你想的那样。 C:\Users\User\YandexDisk\Projects\Strains\db.sqlite - 完整路径 您是否尝试过使用推荐的构造方法? qt-project.org/doc/qt-5.1/qtsql/qsqldatabase.html#addDatabase 我有,没有任何改变。以False打开,路径好,错误为空 你有没有使用sqlite命令行工具打开数据库来证明它是一个有效的数据库? 【参考方案1】:

我发现了问题。我不知道为什么,但是方法 addDatabaseName 不接受完整路径。当我写相对路径(只有'db.sqlite')数据库连接成功。

有人知道为什么吗?

【讨论】:

不得不问一个显而易见的问题:那是正确的完整路径吗? IE。 dir 那条路有效吗?

以上是关于PyQt5 QSqlDatabase 在没有任何文本错误的情况下无法打开的主要内容,如果未能解决你的问题,请参考以下文章

PyQt5 中调用MySql接口失败 ( QSqlDatabase 组件) 在Linux环境下如何修改

ImportError 与“导入 PyQt5.QtSql”

找到但未加载的 MYSQL 驱动程序

python pyqt5 操作sqlite

pyqt5最简单操作数据库

如何获得SSDT地址