QtSql конвертирует MySql запросы в SQLite - PullRequest
0 голосов
/ 27 июля 2011

Я пытаюсь преобразовать некоторые запросы MySql в SQLite, используя Python PyQt, но мне кажется, что он не работаетКогда я запускаю следующий код, ничего не печатается, никаких ошибок или результатов.Что не так с кодом?

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 ]

1 голос
/ 27 июля 2011

Я не знаю PyQT, но когда вы используете нативные привязки sqlite, вы должны выдать

conn.commit()

когда вы действительно хотите зафиксировать свои изменения в базе данных. Таким образом, вам понадобится PyQT-версия этой версии после insert и до select.

.

Быстрый взгляд на документы показывает, что версия PyQT

db.commit()
0 голосов
/ 03 августа 2011

Вам не нужно фиксировать в SQLite.Очевидно, что PyQt не выдает ошибку, когда есть проблема с синтаксисом SQL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...