2011-01-13 72 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() 

但是为什么我需要交易失败后设置新的模式目前还不清楚。