QSqlRecord 类
QSqlRecord 类封装了一个数据库记录。更多信息...
头文件 | #include <QSqlRecord> |
CMake | find_package(Qt6 REQUIRED COMPONENTS Sql) target_link_libraries(mytarget PRIVATE Qt6::Sql) |
qmake | QT += sql |
继承自 |
- 包括继承成员在内的所有成员列表
- QSqlRecord 是 数据库类 和 隐式共享类 的一部分。
公共函数
QSqlRecord() | |
QSqlRecord(const QSqlRecord &other) | |
(since 6.6) | QSqlRecord(QSqlRecord &&other) |
~QSqlRecord() | |
void | append(const QSqlField &field) |
void | clear() |
void | clearValues() |
bool | contains(const QString &name) const |
int | count() const |
QSqlField | field(int index) const |
QSqlField | field(const QString &name) const |
QString | fieldName(int index) const |
int | indexOf(const QString &name) const |
void | insert(int pos, const QSqlField &field) |
bool | isEmpty() const |
bool | isGenerated(const QString &name) const |
bool | isGenerated(int index) const |
bool | isNull(const QString &name) const |
bool | isNull(int index) const |
QSqlRecord | keyValues(const QSqlRecord &keyFields) const |
void | remove(int pos) |
void | replace(int pos, const QSqlField &field) |
void | setGenerated(const QString &name, bool generated) |
void | setGenerated(int index, bool generated) |
void | setNull(int index) |
void | setNull(const QString &name) |
void | setValue(int index, const QVariant &val) |
void | setValue(const QString &name, const QVariant &val) |
(since 6.6) void | swap(QSqlRecord &other) |
QVariant | value(int index) const |
QVariant | value(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)。
请参阅QSqlField和QSqlQuery::record。
成员函数文档
QSqlRecord::QSqlRecord()
构造一个空记录。
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 超出范围,则不执行任何操作。
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。如果字段不存在,则不执行任何操作。
void QSqlRecord::setNull(const QString &name)
这是一个重载函数。
设置名为 name 的字段的值为 null。如果该字段不存在,则不会发生任何操作。
void QSqlRecord::setValue(int index, const QVariant &val)
设置位置为 index 的字段的值为 val。如果该字段不存在,则不会发生任何操作。
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公司有限公司在芬兰和/或其他国家的商标。所有其他商标均为其各自所有者的财产。