我有一个继承自QSqlRelationalTableModel
的类(ServicesTableModel
)。在构造函数中,我有:
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, ... )
这很重要,因为我正在尝试为与表中的行密切相关的对象泛化该类,而且似乎不需要向构造函数提供主键名称是很自然的。
我肯定做错了什么,或者我不明白QSqlField
中的name()_
方法是做什么的。
发布于 2015-04-09 03:23:03
primaryKey.name()
返回索引的名称。
在SQL中,索引可以命名,这独立于用于键的字段的名称。
一个索引可以在多个字段上工作。每个字段名称都可以使用key.fieldName(i)
和0<i<key.count()
进行检索
https://stackoverflow.com/questions/10267193
复制相似问题