[Interest] QSqlTableModel couldn't insert new record.
Mark Brand
mabrand at mabrand.nl
Fri Feb 14 14:22:32 CET 2014
On 02/14/2014 01:11 PM, igor.mironchik at gmail.com wrote:
> I’m trying to insert new record to the table with:
> QSqlRecord r;
> r.setValue( 0, 0 );
> r.setValue( 1, QString() );
> r.setValue( 2, QString() );
> r.setValue( 3, QString() );
> if( !d->model->insertRecord( -1, r ) )
> QMessageBox::critical( 0, tr( "Database Error..." ),
> tr( "Couldn't insert new record into database.\n%1" )
> .arg( d->model->lastError().isValid() ?
> d->model->lastError().text() : QString() ) );
> But I received the error: “No Fields to update”. And new record wasn’t inserted. I’ve tried to call d->model->insertRow( –1 ) but this failed too without any error.
> What am I doing wrong? Or may be it’s a bug?
>
> I’ve found the problem... The problem solved with:
> QSqlRecordr=d->model->record();
>
The critical factor is the generated flag on the fields in the record.
QSqlTableModel generates SQL only for the fields with generated set to
"true".
Mark
More information about the Interest
mailing list