0

如何针对 DB 的默认值向 QSqlTableModel 插入新记录?UPD:我正在尝试调用pTableModel->insertRecord(0, pTableModel->record(0)); or pTableModel->insertRecord(0, pTableModel->record()); or pTableModel->insertRecord(QSqlDatabase::database().record("tableName")); orpTableModel->insertRow(0);

结果相同,所有字段都是NULL而不是DB的默认值。

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 回答