QSql字段名称() 方法返回 " "

QSqlField name() method returns ""

本文关键字:方法 返回 字段 QSql      更新时间:2023-10-16

我有一个从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, ... )

这很重要,因为我正在尝试泛化与表中行密切相关的对象类,并且似乎很自然地不必向构造函数提供主键名称。

我肯定做错了什么,或者我不明白QSqlFieldname()_方法有什么作用。

primaryKey.name()返回索引的名称。

在 SQL 中,可以命名索引,这与用于键的字段名称无关。

索引可以处理多个字段。每个字段名称都可以使用 key.fieldName(i) 检索,并带有0<i<key.count()