事务提交失败后出现问题

时间:2011-01-13 05:49:42

标签: qt postgresql transactions

我将实体“a”插入到具有唯一列内容的表中。然后

Db.driver().commitTransaction()

然后开始新的交易并重复。交易失败。我可以猜测下一步是自动transacion回滚。然后我试了

Dlg.Table.model().select()

但它返回0行(尽管表中有几行)。为什么?如何解决这个问题?

编辑:不,必须手动完成回滚。

1 个答案:

答案 0 :(得分: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()

但是为什么我需要在交易失败后设置新模型还不清楚。