我有一个继承自 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()_
方法是做什么的。
最佳答案
primaryKey.name()
返回索引的名称。
在 SQL 中,可以命名索引,这与用于键的字段的名称无关。
一个索引可以作用于多个字段。
每个字段名称都可以用 key.fieldName(i)
检索。 , 与 0<i<key.count()
关于c++ - QSqlField name()方法返回 "",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10267193/