我在PyQT中打开QSqlDatabase(QSQLITE)时遇到了麻烦,我似乎没有得到一个有用的错误,告诉我它为什么会失败。我使用的是Python 3.4.3和PyQt 4.11.3。
这是我的代码片段,我很快就一起攻击,试图让事情发挥作用:
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')");
以上运行时输出结果:
DB有效
无法打开数据库。
文字:
输入:0
数字:-1
QSqlQuery :: exec:数据库未打开
QSqlQuery :: exec:数据库未打开
QSqlQuery :: exec:数据库未打开
QSqlQuery :: exec:数据库未打开
任何方向都会非常感激!令人沮丧的是,错误信息根本不是很有用。
答案 0 :(得分:1)
我的愚蠢错误。通过使用QtSql.QSqlDatabase.setDatabaseName设置数据库名称(" name_here.db")