2011-01-13 80 views
0

我將實體「a」插入具有唯一列內容的表中。然後事務提交失敗後的問題

Db.driver().commitTransaction() 

然後開始新的交易並重復。交易失敗。正如我可以猜到下一個動作是自動transacion回滾。然後我試了

Dlg.Table.model().select() 

但它返回0行(儘管表中有幾行)。爲什麼?如何解決這個問題?

編輯:不,回滾必須手動完成。

+0

爲什麼downvote?我會盡量不在未來重複這個錯誤 – DSblizzard 2011-01-13 07:03:52

回答

1

只有我發現使用這樣的功能的解決方案:

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() 

但是爲什麼我需要交易失敗後設置新的模式目前還不清楚。