У меня есть класс (ServicesTableModel
), который наследует от QSqlRelationalTableModel
. В конструкторе у меня есть:
ServicesTableModel::ServicesTableModel( QWidget* parent, QSqlDatabase db )
: QSqlRelationalTableModel( parent, db )
{
setTable( "servicios" );
select();
...
}
Теперь, если я поместил строку
qDebug() << primaryKey();
где точки получаются
QSqlRecord( 1 )
" 0:" QSqlField("ser_id", int, required: no, generated: yes)
который имеет прекрасный смысл, но после
qDebug() << primaryKey().name();
ответ
""
поэтому я не могу получить имя первичного ключа.
Таблица sqlite, определенная с помощью
CREATE TABLE servicios (ser_id integer primary key, ... )
Это важно, потому что я пытаюсь обобщить класс для объектов, тесно связанных с строками в таблице, и, естественно, не нужно указывать имя первичного ключа для конструктора.
Я обязательно должен что-то делать неправильно, или я не понимаю, что делает метод name()_
из QSqlField
.