0
我將實體「a」插入具有唯一列內容的表中。然後事務提交失敗後的問題
Db.driver().commitTransaction()
然後開始新的交易並重復。交易失敗。正如我可以猜到下一個動作是自動transacion回滾。然後我試了
Dlg.Table.model().select()
但它返回0行(儘管表中有幾行)。爲什麼?如何解決這個問題?
編輯:不,回滾必須手動完成。
我將實體「a」插入具有唯一列內容的表中。然後事務提交失敗後的問題
Db.driver().commitTransaction()
然後開始新的交易並重復。交易失敗。正如我可以猜到下一個動作是自動transacion回滾。然後我試了
Dlg.Table.model().select()
但它返回0行(儘管表中有幾行)。爲什麼?如何解決這個問題?
編輯:不,回滾必須手動完成。
只有我發現使用這樣的功能的解決方案:
def refresh_model(Dlg):
Dlg.Model = QSqlRelationalTableModel()
Dlg.Model.setTable(Dlg.TableName)
Dlg.Model.setEditStrategy(QSqlTableModel.OnManualSubmit)
for Col in range(len(DisplColNames[Dlg.TableName])):
Dlg.Model.setHeaderData(Col, Qt.Horizontal, DisplColNames[Dlg.TableName][Col])
Dlg.tvTable.setModel(Dlg.Model)
Dlg.Model.select()
但是爲什麼我需要交易失敗後設置新的模式目前還不清楚。
爲什麼downvote?我會盡量不在未來重複這個錯誤 – DSblizzard 2011-01-13 07:03:52