我有一个继承自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()_
的{{1}}方法是做什么的。
答案 0 :(得分:1)
primaryKey.name()
返回索引的名称。
在SQL中,可以命名索引,这与用于密钥的字段的名称无关。
索引可以在多个字段上使用。
可以使用key.fieldName(i)
和0<i<key.count()