我正在尝试使用Python PyQt将一些MySql查询转换为SQLite,但我似乎无法让它工作。当我运行以下代码时,没有打印出任何内容,没有错误或结果。代码有什么问题?
db = QSqlDatabase.addDatabase("QSQLITE")
db.setDatabaseName("TEST")
if not db.open():
QMessageBox.warning(None, "Database",
QString("Database Error: %1").arg(db.lastError().text()))
sys.exit(1)
query = QSqlQuery()
query.exec_("""CREATE TABLE IF NOT EXISTS CollectStatus (
id INTEGER NOT NULL AUTO_INCREMENT ,
status TEXT NOT NULL ,
PRIMARY KEY (id) ,
UNIQUE INDEX status_UNIQUE (status ASC) );""")
query.exec_("INSERT INTO CollectStatus (status) VALUES (1)")
query.exec_("SELECT status FROM CollectStatus")
while query.next():
print(query.value(status).toString()[0])
db.close()
答案 0 :(得分:1)
我不知道PyQT,但是当你使用原生的sqlite绑定时,你必须发出
conn.commit()
当您确实要将更改提交到数据库时。因此,在insert
之后和select
之前,您需要PyQT版本。
快速浏览文档使其看起来像PyQT版本
db.commit()
答案 1 :(得分:0)
您不需要在SQLite中提交。显然,当SQL语法出现问题时,PyQt不会出错。