我正在尝试在Python3 / PyQt5.10 / Sqlite中创建一个更新查询。以相同方式进行的选择/插入查询运行良好。存在字段和相应的记录。
def updateRecords():
theDict = {
"Loc": "PyQt121",
"BoekNr" : "dfdf",
"BoekTitel" : "eeee",
"BoekBedrag" : 999
}
theFilter = " WHERE Loc = 'PyQt'"
query = QSqlQuery()
columns = ', '.join(pDict.keys())
placeholders = ':'+', :'.join(pDict.keys())
sql = 'UPDATE %s SET (%s) VALUES (%s) %s' % (pTable, columns, placeholders, pFilter)
query.prepare(sql)
for key, value in pDict.items():
query.bindValue(":"+key, value)
print (sql)
query.exec_()
print(query.lastError().databaseText())
return query.numRowsAffected()
生成的sql是UPDATE临时手册集(Loc,BoekNr,BoekTitel,BoekBedrag)值(:Loc,:BoekNr,:BoekTitel,:BoekBedrag)WHERE Loc ='PyQt'。 query.lastError()。databaseText())给我“无查询”,更新的行为-1。
答案 0 :(得分:0)
更新查询的正确语法:
UPDATE tablename
set col1 = val1,
col2 = val2,
col3 = val3
WHERE condition
由于语法无效,可能query.prepare(sql)
返回False。