2011-01-13 32 views
0

ユニークな列の内容を持つテーブルにエンティティ "a"を挿入しました。次にトランザクションコミットが失敗した後の問題

Db.driver().commitTransaction() 

新しいトランザクションを開始し、繰り返します。処理に失敗しました。私が推測することができるように、次のアクションは自動transacionロールバックです。それから私は

Dlg.Table.model().select() 

を試してみましたが、それは(表中のいくつかの行がありますが)0行を返しました。どうして?これを修正するには?

EDIT:いいえ、手動でロールバックする必要があります。私は、この関数のようなものを使用しているを発見した

+0

なぜdownvoteですか?私はこのミスを将来も繰り返さないようにしよう。 – DSblizzard

+1

誰かがこれに答えるためにはもっとコードを投稿する必要がある。今は完全に文脈から外れています。 –

答えて

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

しかし、私はトランザクションの失敗の後に新しいモデルを設定する必要がある理由は不明です。

関連する問題