QtSql将MySql查询转换为SQLite

时间:2011-07-27 15:13:06

标签: python mysql sql database sqlite

我正在尝试使用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()

2 个答案:

答案 0 :(得分:1)

我不知道PyQT,但是当你使用原生的sqlite绑定时,你必须发出

conn.commit()

当您确实要将更改提交到数据库时。因此,在insert之后和select之前,您需要PyQT版本。

快速浏览文档使其看起来像PyQT版本

db.commit()

答案 1 :(得分:0)

您不需要在SQLite中提交。显然,当SQL语法出现问题时,PyQt不会出错。