gpt4 book ai didi

c++ - QSqlField name()方法返回 ""

转载 作者:IT老高 更新时间:2023-10-28 22:22:38 26 4
gpt4 key购买 nike

我有一个继承自 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com