2
我正在使用pyqt的一個簡單的gui,並試圖更新我的數據庫沒有任何運氣到目前爲止。我對qt,數據庫以及python都很陌生)所以我不明白我的代碼有什麼問題,也許有人可以幫我一點點。使用QSqlQuery更新sqlite3數據庫
雖然使用Python(3)和sqltie3我可以更新我的數據庫是這樣的:
cur.execute('''UPDATE news SET Raw=? WHERE id=?''', (raw, news_id))
但隨着PyQt的它是唯一的工作是這樣的:
query = QSqlQuery()
query.exec_("UPDATE news SET Raw = 'test' WHERE Id = 9")
我想:
query.exec_("UPDATE news SET Raw = ? WHERE Id = ?", (raw, news_id))
導致此錯誤的原因:
TypeError: arguments did not match any overloaded call:
QSqlQuery.exec_(str): too many arguments
QSqlQuery.exec_(): too many arguments
在使用Qt他正在做他的查詢,像這樣的書快速GUI編程(不完全是這樣的,但我努力去適應它):
query.exec_('''UPDATE news SET Raw={0} WHERE id={1}'''.format(raw, news_id))
它似乎並沒有做任何事情。
和(似乎沒有任何做任何事情):
raw = 'test'
query.prepare("UPDATE news SET (Raw) VALUES (:raw) WHERE Id = 9 ")
query.bindValue(":raw", raw)
#query.bindValue(":news_id", 9)
query.exec_()
井和其他一些東西我已經在這裏和其他地方,但沒有任何運氣迄今發現的。
嗨,幫助了我很多,謝謝! – user3199535
我很好奇,我在哪裏可以找到這種語法?我正在查看官方文檔,他們這樣做,就像我在我的最後一個示例中那樣: http://pyqt.sourceforge.net/Docs/PyQt4/qsqlquery.html – user3199535
該文檔顯示INSERT語法,而不是UPDATE 。 – lpapp