Qt: QSqlTableModel::setData возвращает значение false

#c #postgresql #qt5

Вопрос:

БД Qt 5.15.2 (Linux)
: PostgreSQL 13 (Linux)

Обновление записи базы данных с помощью QSqlTableModel setData возвращает значение false во второй строке. Запрос в последнем списке модели возвращает пустую строку.

Подготовка стола:

 create table email (nr integer NOT NULL,id serial primary key,priority integer not null,address varchar(100)) insert into email (nr, priority, address) values (358, 1, 'name@domain.country') insert into email (nr, priority, address) values (358, 2, 'second@domain.country')  

Упрощенный код

 fModel = new QSqlTableModel (this, db); // instance of QSqlTableModel  fModel-gt;setTable ("email");  fModel-gt;setFilter ("nr=358");  fModel-gt;select ();  ...  void swapPriority () {  int row0 = 0; // hardcoded for test (rows are existing)  int row1 = 1;  int priority0 = fModel-gt;index (row0, 2).data ().toInt ();  int priority1 = fModel-gt;index (row1, 2).data ().toInt ();   // this is executed sucessfully  if (!fModel-gt;setData (fModel-gt;index (row0, 2), priority1))  {  QString error = fModel-gt;lastError ().text ();  }   // this one fails  if (!fModel-gt;setData (fModel-gt;index (row1, 2), priority0))  {  QString error = fModel-gt;lastError ().text (); // empty string  } }   

Возможно, мне чего-то не хватает в принципе. Есть какие-нибудь намеки ?