QSqlRelationalTableModel fail update
-
My db
personnelModel = new QSqlRelationalTableModel(this,db);
personnelModel->setTable("Personnel");
currentModel = operationModel;
currentModel->setRelation(currentModel->fieldIndex("Articul_idArticul"),QSqlRelation("Articul", "idArticul", "Number"));
// qDebug()<<currentModel->lastError()<<currentModel->query().lastQuery();
currentModel->setEditStrategy(QSqlRelationalTableModel::OnFieldChange);
currentModel->select();
ui->tableView->setModel(currentModel);The data is correctly displayed.
Qt does not issue errors.
After selecting in the combobox, the value is not updated, I looked up the database logs and saw it
Why does "is null" appear? -
I found this code in qsqldriver.cpp.
case WhereStatement: { const QString tableNamePrefix = tableName.isEmpty() ? QString() : prepareIdentifier(tableName, QSqlDriver::TableName, this) + QLatin1Char('.'); for (int i = 0; i < rec.count(); ++i) { if (!rec.isGenerated(i)) continue; s.append(s.isEmpty() ? QLatin1String("WHERE ") : QLatin1String(" AND ")); s.append(tableNamePrefix); s.append(prepareIdentifier(rec.fieldName(i), QSqlDriver::FieldName, this)); if (rec.isNull(i)) s.append(QLatin1String(" IS NULL")); else if (preparedStatement) s.append(QLatin1String(" = ?")); else s.append(QLatin1String(" = ")).append(formatValue(rec.field(i))); } break; }
"IS NULL" appears from the fact that QSqlRecord &rec is null, but when i get record from model it returned normal record