QSqlRecord 类

QSqlRecord 类封装了一个数据库记录。更多信息...

头文件 #include <QSqlRecord>
CMakefind_package(Qt6 REQUIRED COMPONENTS Sql)
target_link_libraries(mytarget PRIVATE Qt6::Sql)
qmakeQT += sql
继承自

QSqlIndex

公共函数

QSqlRecord()
QSqlRecord(const QSqlRecord &other)
(since 6.6) QSqlRecord(QSqlRecord &&other)
~QSqlRecord()
voidappend(const QSqlField &field)
voidclear()
voidclearValues()
boolcontains(const QString &name) const
intcount() const
QSqlFieldfield(int index) const
QSqlFieldfield(const QString &name) const
QStringfieldName(int index) const
intindexOf(const QString &name) const
voidinsert(int pos, const QSqlField &field)
boolisEmpty() const
boolisGenerated(const QString &name) const
boolisGenerated(int index) const
boolisNull(const QString &name) const
boolisNull(int index) const
QSqlRecordkeyValues(const QSqlRecord &keyFields) const
voidremove(int pos)
voidreplace(int pos, const QSqlField &field)
voidsetGenerated(const QString &name, bool generated)
voidsetGenerated(int index, bool generated)
voidsetNull(int index)
voidsetNull(const QString &name)
voidsetValue(int index, const QVariant &val)
voidsetValue(const QString &name, const QVariant &val)
(since 6.6) voidswap(QSqlRecord &other)
QVariantvalue(int index) const
QVariantvalue(const QString &name) const
bool操作符!=(const QSqlRecord &other) const
QSqlRecord &操作符=(const QSqlRecord &other)
(自6.6起) QSqlRecord &操作符=(QSqlRecord &&other)
bool操作符==(const QSqlRecord &other) const

详细说明

QSqlRecord类封装了数据库记录(通常是一个数据库表或视图中的行)的功能和特性。QSqlRecord支持添加和删除字段,以及设置和获取字段值。

可以通过名称或位置使用setValue()来设置记录字段的值;如果您想将字段设置为NULL,请使用setNull()。使用indexOf()通过名称查找字段的位

在生成要执行于数据库上的查询时,只有那些isGenerated()值为true的字段会被包含在生成的SQL中。

可以使用append()或insert()新增字段,使用replace()替换字段,使用remove()删除字段。可以使用clear()删除所有字段。字段的个数由count()给出;可以使用clearValues()将所有字段的值清除(设置为NULL)。

请参阅QSqlFieldQSqlQuery::record

成员函数文档

QSqlRecord::QSqlRecord()

构造一个空记录。

请参阅isEmptyappendinsert

QSqlRecord::QSqlRecord(const QSqlRecord &other)

构造其他对象的副本。

QSqlRecord是隐式共享的。这意味着您可以在常数时间内复制记录。

[noexcept, 自6.6起] QSqlRecord::QSqlRecord(QSqlRecord &&other)

从其他对象移动构造一个新的QSqlRecord。

注意:被移动的对象other将置于一个部分形成的状态,此时唯一有效的操作是销毁和赋予新的值。

此功能是在Qt 6.6中引入的。

[noexcept] QSqlRecord::~QSqlRecord()

销毁对象并释放所有已分配的资源。

void QSqlRecord::append(const QSqlField &field)

将字段 поле field 的副本添加到记录末尾。

另请参阅 insert(),replace() 和 remove()。

void QSqlRecord::clear()

移除记录中所有字段。

另请参阅 clearValues() 和 isEmpty()。

void QSqlRecord::clearValues()

清除记录中所有字段的值,并将每个字段设置为null。

另请参阅 setValue()。

bool QSqlRecord::contains(const QString &name) const

如果记录中存在名为name的字段,则返回true;否则返回false

int QSqlRecord::count() const

返回记录中的字段数。

另请参阅 isEmpty()。

QSqlField QSqlRecord::field(int index) const

返回位置为index的字段。如果索引超出范围,则函数返回默认构造值

QSqlField QSqlRecord::field(const QString &name) const

这是一个重载函数。

返回名为name的字段。

QString QSqlRecord::fieldName(int index) const

返回位置为index的字段名称。如果字段不存在,则返回空字符串。

另请参阅 indexOf()。

int QSqlRecord::indexOf(const QString &name) const

返回名为name的字段在记录中的位置,如果找不到,则返回-1。字段名称不区分大小写。如果多个字段匹配,则返回第一个。

另请参阅 fieldName()。

void QSqlRecord::insert(int pos, const QSqlField &field)

在记录中位置pos插入字段field

另请参阅 append(),replace() 和 remove()。

bool QSqlRecord::isEmpty() const

如果记录中没有字段,则返回true;否则返回false

另请参阅 append(),insert() 和 clear()。

bool QSqlRecord::isGenerated(const QString &name) const

如果记录有一个名为 name 的字段并且该字段将被生成(默认情况),则返回 true;否则返回 false

另请参阅 setGenerated()。

bool QSqlRecord::isGenerated(int index) const

这是一个重载函数。

如果记录在位置 index 有一个字段且该字段将被生成(默认情况),则返回 true;否则返回 false

另请参阅 setGenerated()。

bool QSqlRecord::isNull(const QString &name) const

如果名为 name 的字段为空或不存在此字段,则返回 true;否则返回 false

另请参阅 setNull()。

bool QSqlRecord::isNull(int index) const

这是一个重载函数。

如果位置 index 的字段为空或该位置不存在字段,则返回 true;否则返回 false

QSqlRecord QSqlRecord::keyValues(const QSqlRecord &keyFields) const

返回一个包含在 keyFields 中表示的字段的记录,字段值与字段名称匹配。

void QSqlRecord::remove(int pos)

删除位置 pos 处的字段。如果 pos 超出范围,则不执行任何操作。

另请参阅 append,insert() 和 replace()。

void QSqlRecord::replace(int pos, const QSqlField &field)

将位置 pos 处的字段替换为给定的 field。如果 pos 超出范围,则不执行任何操作。

另请参阅 appendinsertremove

void QSqlRecord::setGenerated(const QString &name, bool generated)

将名为 name 的字段的生成标志设置为 generated。如果字段不存在,则不执行任何操作。只有将 generated 设置为 true 的字段才会包含在由 QSqlQueryModel 等生成的 SQL 中。

另请参阅 isGenerated()。

void QSqlRecord::setGenerated(int index, bool generated)

这是一个重载函数。

将索引 index 的生成标志设置为 generated

另请参阅 isGenerated()。

void QSqlRecord::setNull(int index)

将位置 index 的字段的值设置为 null。如果字段不存在,则不执行任何操作。

另请参阅 isNull() 和 setValue()。

void QSqlRecord::setNull(const QString &name)

这是一个重载函数。

设置名为 name 的字段的值为 null。如果该字段不存在,则不会发生任何操作。

void QSqlRecord::setValue(int index, const QVariant &val)

设置位置为 index 的字段的值为 val。如果该字段不存在,则不会发生任何操作。

另请参阅 value() 和 setNull()。

void QSqlRecord::setValue(const QString &name, const QVariant &val)

这是一个重载函数。

设置名为 name 的字段的值为 val。如果该字段不存在,则不会发生任何操作。

[noexcept, since 6.6] void QSqlRecord::swap(QSqlRecord &other)

与该 SQL 记录交换 other。这个操作非常快且从不失败。

此功能是在Qt 6.6中引入的。

QVariant QSqlRecord::value(int index) const

返回记录中位于位置 index 的字段的值。如果 index 超出范围,则返回无效的 QVariant

另请参阅 setValue()、fieldName() 和 isNull()。

QVariant QSqlRecord::value(const QString &name) const

这是一个重载函数。

返回记录中名为 name 的字段的值。如果字段 name 不存在,则返回无效的 variant。

另请参阅 indexOf()。

bool QSqlRecord::operator!=(const QSqlRecord &other) const

如果此对象与 other 不相同,返回 true;否则返回 false

另请参阅 operator==()。

QSqlRecord &QSqlRecord::operator=(const QSqlRecord &other)

将记录设置为 other

QSqlRecord隐式共享。这意味着您可以在 恒定时间内 创建记录的副本。

[noexcept, since 6.6] QSqlRecord &QSqlRecord::operator=(QSqlRecord &&other)

other 移动赋值到此 QSqlRecord 实例。

注意:被移动的对象other将置于一个部分形成的状态,此时唯一有效的操作是销毁和赋予新的值。

此功能是在Qt 6.6中引入的。

bool QSqlRecord::operator==(const QSqlRecord &other) const

如果此对象与 other 相同(即字段顺序相同),返回 true;否则返回 false

另请参阅运算符!=

© 2024 Qt公司有限公司。本文件中包含的文档贡献版权属于其各自的所有者。本文档根据由自由软件基金会发布的 GNU自由文档许可第1.3版 的条款提供许可。Qt及其相关商标为Qt公司有限公司在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。