0

DBのデフォルト値に関してQSqlTableModelに新しいレコードを挿入する方法は? pTableModel->insertRecord(0, pTableModel->record(0)); UPD: or pTableModel->insertRecord(0, pTableModel->record()); or pTableModel->insertRecord(QSqlDatabase::database().record("tableName")); orを呼び出そうとしていますpTableModel->insertRow(0);

結果は同じで、DB のデフォルト値ではなく、すべてのフィールドが NULL です。

4

1 に答える 1

0

行 0 に挿入しているという事実が問題になる場合があります。私がそれを試みたとき、後で行1のレコードを要求したときに期待するレコードを取得できません(これは、の呼び出し後に挿入されたレコードがあるべきinsertRecord(0, ...)場所です)。また、お電話pTableModel->submit()ですかpTableModel->submitAll()?そうでない場合、レコードはデータベースにコミットされません。

このコードは私のために働きます:

QSqlRecord  rec( pTableModel->record() );

// Insert at end of table
pTableModel->insertRecord( -1, rec );
pTableModel->submitAll(); 
// Or, pTableModel->submit(), depending on the model's edit strategy

// Grab the last row.  It should be the one just inserted.
QSqlRecord  writtenRec( pTableModel->record( pTableModel->rowCount() - 1 ) );
于 2012-09-18T21:07:38.747 に答える