【问题标题】:QSqlDatabase failing to open with no useful information using lastError()QSqlDatabase 无法使用 lastError() 打开没有有用的信息
【发布时间】:2015-06-04 05:42:25
【问题描述】:

我在 PyQT 中打开 QSqlDatabase (QSQLITE) 时遇到问题,而且我似乎没有收到有用的错误来告诉我它失败的原因。我正在使用 Python 3.4.3 和 PyQt 4.11.3。

这是我的代码的 sn-p,我很快将其拼凑在一起,只是为了尝试让事情正常工作:

def __init__(self):
    self.__database = QtSql.QSqlDatabase.addDatabase("QSQLITE")

    if self.__database.isValid():
        print("DB is Valid")
    else:
        print("DB is Not Valid")

    if not self.__database.open():
        print("Could not open database.")
        print("Text: " + self.__database.lastError().text())
        print("Type: " + str(self.__database.lastError().type()))
        print("Number: " + str(self.__database.lastError().number()))

    query = QtSql.QSqlQuery(self.__database)
    query.exec("create table person (id int primary key, firstname varchar(20), lastname varchar(20))");
    query.exec("insert into person values(101, 'Danny', 'Young')");
    query.exec("insert into person values(102, 'Christine', 'Holand')");
    query.exec("insert into person values(103, 'Lars', 'Gordon')");

这是上面运行时的输出:

数据库有效

无法打开数据库。

文字:

类型:0

数字:-1

QSqlQuery::exec: 数据库未打开

QSqlQuery::exec: 数据库未打开

QSqlQuery::exec: 数据库未打开

QSqlQuery::exec: 数据库未打开

任何方向将不胜感激!令人沮丧的是错误消息根本没有用。

【问题讨论】:

    标签: python sql qt sqlite pyqt


    【解决方案1】:

    我的愚蠢错误。通过使用 QtSql.QSqlDatabase.setDatabaseName("name_here.db") 设置数据库名称来修复

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-08-07
      • 2022-01-06
      • 2018-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-21
      • 1970-01-01
      相关资源
      最近更新 更多