详细描述
QSqlRecord 类封装了一条数据库记录。
QSqlRecord 类封装了数据库记录的功能和特征(通常是数据库中表或视图中的一行)。
QSqlRecord 支持添加和删除字段以及设置和检索字段值。
可以通过
setValue()的名称或者位置来设置记录字段的值;如果你想要设置一个字段为空可以使用setNull()。通过名称使用
indexOf() 找到字段的位置。在特定位置使用
fieldName()查找字段的名称。使用
field() 检索给定字段的
QSqlField对象。使用contains() 查找记录是否包含特定的字段名。
当在数据库中执行生成的查询时,只有那些isGenerated()为true的字段被包含在生成的SQL中。
记录可以使用append()或者insert()添加字段,使用replace()将制定位置上的字段替换为另一个字段,使用remove()移除字段。使用clear()移除所有的字段。字段的数量是由count()提供;它们的所有值都可以使用clearValues()清除(到null)。
相关API
QSqlRecord::QSqlRecord()构造一个空的记录。
QSqlRecord::QSqlRecord(const QSqlRecord &other)构造other的一个副本。
QSqlRecord是隐式共享的。这意味着你可以在固定时间内拷贝(复制)记录。
QSqlRecord::~QSqlRecord()销毁对象并释放已分配的任何资源。
void QSqlRecord::append(const QSqlField &field)将字段field的副本附加到记录的末尾。
void QSqlRecord::clear()删除所有记录的字段。
void QSqlRecord::clearValues()清除记录中所有字段的值并将每个字段设置为null。
bool QSqlRecord::contains(const QString &name) const如果在记录中有一个名为name的字段返回true;否则返回false。
int QSqlRecord::count() const返回记录中字段的数目。
QSqlField QSqlRecord::field(int index) const返回在index位置的字段。如果index超出范围,函数将返回一个默认构造的值。
QSqlField QSqlRecord::field(const QString & name) const
这是一个重载函数。
返回名为name的字段。
QString QSqlRecord::fieldName(int index) const返回在位置index的字段名。如果该字段不存在,返回一个空字符串。
int QSqlRecord::indexOf(const QString & name) const在记录中返回名为name的字段的位置,如果无法找到则返回-1.字段名不区分大小写。如果超过一个字段匹配,返回第一个。
void QSqlRecord::insert(int pos, const QSqlField & field)在记录中的pos位置插入字段field。
bool QSqlRecord::isEmpty() const如果在记录中没有字段则返回true;否则返回false。
bool QSqlRecord::isGenerated(const QString & name) const如果记录中有一个名叫name的字段,这个字段将被生成(默认)则返回true;否则,返回false。
bool QSqlRecord::isGenerated(int index) const这是一个重载函数。
如果记录中在位置index有 一个字段且该字段将被生成(默认)则返回true;否则,返回false。
bool QSqlRecord::isNull(const QString & name) const如果名叫name的字段为空或者没有叫做name的字段返回true;否则返回false。
bool QSqlRecord::isNull(int index) const这是一个重载函数。
如果记录中位置为index的字段为空或者在位置index没有字段返回true;否则,返回false。
QSqlRecord QSqlRecord::keyValues(const QSqlRecord & keyFields) const
返回一个包含在keyFields中所代表的字段的记录,这些字段被设置为与字段名匹配的值。
void QSqlRecord::remove(int pos)移除在pos位置的字段。如果pos超出范围,什么也不会发生。
void QSqlRecord::replace(int pos, const QSqlField & field)用给定的字段field代替位置pos的字段。如果位置pos超出范围,什么也不会发生。
void QSqlRecord::setGenerated(const QString & name, bool generated)
设置名为name的字段的生成标志为generated。如果该字段不存在,什么也不会发生。只有那些生成状态generated被设置成true的字段才会被包含在诸如QSqlQueryModel类生成的SQL中。
void QSqlRecord::setGenerated(int index, bool generated)这是一个重载函数。
为记录index处的字段设置生成标志为generated。
void QSqlRecord::setNull(int index)将记录index处的字段值设置为空。如果该字段不存在,什么也不会发生。
void QSqlRecord::setNull(const QString & name)这是一个重载函数。
设置名为name的字段的值为空。如果该字段不存在,什么也不会发生。
void QSqlRecord::setValue(int index, const QVariant & val)设置在记录位置index的字段值为val。如果该字段不存在,什么也不会发生。
void QSqlRecord::setValue(const QString & name, const QVariant & val)这是一个重载函数。
设置名为name的字段值为val。如果该字段不存在,什么也不会发生。
QVariant QSqlRecord::value(int index) const返回在记录index位置的字段的值。如果索引超出范围,返回一个无效的QVariant.
QVariant QSqlRecord::value(const QString & name) const这是一个重载函数。
返回在记录中名叫name的字段的值。如果字段name不存在返回一个无效的QVariant.
bool QSqlRecord::operator!=(const QSqlRecord & other) const如果该记录对象与other记录对象不相等则返回true,否则返回false。
QSqlRecord & QSqlRecord::operator=(const QSqlRecord & other)将记录other对象赋值给该对象。
bool QSqlRecord::operator==(const QSqlRecord & other) const如果该记录对象和other记录对象相等(例如:有相同的字段相同的顺序)则返回true;否则,返回false。