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 在没有任何文本错误的情况下无法打开的主要内容,如果未能解决你的问题,请参考以下文章