Класс QSqlField
Класс QSqlField управляет полями в таблицах и представлениях баз данных SQL. Подробнее...
| Заголовок: | #include <QSqlField> |
| qmake: | QT += sql |
Типы публичного доступа
| перечисление | RequiredStatus { Required, Optional, Unknown } |
Функции публичного доступа
| QSqlField(const QString &fieldName = QString(), QVariant::Type type = QVariant::Invalid) | |
| QSqlField(const QSqlField &other) | |
| ~QSqlField() | |
| void | clear() |
| QVariant | defaultValue() const |
| bool | isAutoValue() const |
| bool | isGenerated() const |
| bool | isNull() const |
| bool | isReadOnly() const |
| bool | isValid() const |
| int | length() const |
| QString | name() const |
| int | precision() const |
| RequiredStatus | requiredStatus() const |
| void | setAutoValue(bool autoVal) |
| void | setDefaultValue(const QVariant &value) |
| void | setGenerated(bool gen) |
| void | setLength(int fieldLength) |
| void | setName(const QString &name) |
| void | setPrecision(int precision) |
| void | setReadOnly(bool readOnly) |
| void | setRequired(bool required) |
| void | setRequiredStatus(RequiredStatus required) |
| void | setType(QVariant::Type type) |
| void | setValue(const QVariant &value) |
| QVariant::Type | type() const |
| QVariant | value() const |
| bool | operator!=(const QSqlField &other) const |
| QSqlField & | operator=(const QSqlField &other) |
| bool | operator==(const QSqlField &other) const |
Подробное описание
Класс QSqlField управляет полями в таблицах и представлениях баз данных SQL.
QSqlField представляет характеристики одного столбца в таблице или представлении базы данных, такие как тип данных и имя столбца. Поле также содержит значение столбца базы данных, которое можно просмотреть или изменить.
Значения данных полей хранятся в виде QVariant. Использование несовместимого типа запрещено. Например:
QSqlField field("age", QVariant::Int);
field.setValue(QPixmap()); // WRONG Однако поле попытается преобразовать некоторые типы данных в тип данных поля, где это возможно:
QSqlField field("age", QVariant::Int);
field.setValue(QString("123")); // casts QString to int Объекты QSqlField редко создаются явно в коде приложения. К ним обычно обращаются косвенно через объекты QSqlRecord, которые уже содержат список полей. Например:
QSqlQuery query;
...
QSqlRecord record = query.record();
QSqlField field = record.field("country"); Объект QSqlField может предоставить некоторые метаданные о поле, например, его имя name(), тип type(), length(), precision(), defaultValue(), typeID(), и его requiredStatus(), isGenerated() и isReadOnly(). Можно проверить, является ли данные поля isNull(), и получить его value(). При редактировании данные можно установить с помощью setValue() или установить в NULL с помощью clear().
См. также QSqlRecord.
Документация по типам членов
перечисление QSqlField::RequiredStatus
Указывает, является ли поле обязательным или необязательным.
| Константа | Значение | Описание |
|---|---|---|
QSqlField::Required |
1 |
Поле должно быть указано при вставке записей. |
QSqlField::Optional |
0 |
Поле не обязательно указывать при вставке записей. |
QSqlField::Unknown |
-1 |
Драйвер базы данных не смог определить, является ли поле обязательным или необязательным. |
См. также requiredStatus().
Документация по функциям членов
QSqlField::QSqlField(const QString &fieldName = QString(), QVariant::Type type = QVariant::Invalid)
Создает пустое поле с именем fieldName и типом type.
См. также setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), setGenerated() и setReadOnly().
QSqlField::QSqlField(const QSqlField &other)
Создает копию other.
QSqlField::~QSqlField()
Удаляет объект и освобождает все выделенные ресурсы.
void QSqlField::clear()
Очищает значение поля и устанавливает его в NULL. Если поле является только для чтения, ничего не происходит.
См. также setValue(), isReadOnly() и requiredStatus().
QVariant QSqlField::defaultValue() const
Возвращает значение по умолчанию поля (которое может быть NULL).
См. также setDefaultValue(), type(), requiredStatus(), length(), precision() и isGenerated().
bool QSqlField::isAutoValue() const
Возвращает true, если значение автогенерируется базой данных, например, значения автоинкрементируемого первичного ключа.
Примечание: При использовании драйвера ODBC из-за ограничений API ODBC поле isAutoValue() заполняется только в QSqlField, полученном из QSqlRecord, полученного при выполнении запроса SELECT. Оно false в QSqlField, полученном из QSqlRecord, возвращенного из QSqlDatabase::record() или QSqlDatabase::primaryIndex().
См. также setAutoValue().
bool QSqlField::isGenerated() const
Возвращает true, если поле сгенерировано; в противном случае возвращает false.
См. также setGenerated(), type(), requiredStatus(), length(), precision() и defaultValue().
bool QSqlField::isNull() const
Возвращает true, если значение поля равно NULL; в противном случае возвращает false.
См. также value().
bool QSqlField::isReadOnly() const
Возвращает true, если значение поля является только для чтения; в противном случае возвращает false.
См. также setReadOnly(), type(), requiredStatus(), length(), precision(), defaultValue() и isGenerated().
bool QSqlField::isValid() const
Возвращает true, если тип варианта поля действителен; в противном случае возвращает false.
int QSqlField::length() const
Возвращает длину поля.
Если возвращаемое значение отрицательное, это означает, что информация недоступна из базы данных.
См. также setLength(), type(), requiredStatus(), precision(), defaultValue() и isGenerated().
QString QSqlField::name() const
Возвращает имя поля.
См. также setName().
int QSqlField::precision() const
Возвращает точность поля; это имеет смысл только для числовых типов.
Если возвращаемое значение отрицательное, это означает, что информация недоступна из базы данных.
См. также setPrecision(), type(), requiredStatus(), length(), defaultValue() и isGenerated().
RequiredStatus QSqlField::requiredStatus() const
Возвращает true если это обязательное поле; в противном случае возвращает false. Запрос INSERT не выполнится, если у обязательного поля нет значения.
См. также setRequiredStatus(), type(), length(), precision(), defaultValue() и isGenerated().
void QSqlField::setAutoValue(bool autoVal)
Помечает поле как сгенерированное значение, если autoVal равно true.
См. также isAutoValue().
void QSqlField::setDefaultValue(const QVariant &value)
Устанавливает значение по умолчанию для этого поля в value.
См. также defaultValue(), value(), setType(), setRequiredStatus(), setLength(), setPrecision(), setGenerated() и setReadOnly().
void QSqlField::setGenerated(bool gen)
Устанавливает состояние сгенерированности. Если gen равно false, для этого поля не будет генерироваться SQL; в противном случае, классы Qt, такие как QSqlQueryModel и QSqlTableModel, сгенерируют SQL для этого поля.
См. также isGenerated(), setType(), setRequiredStatus(), setLength(), setPrecision(), setDefaultValue() и setReadOnly().
void QSqlField::setLength(int fieldLength)
Устанавливает длину поля в fieldLength. Для строк это максимальное количество символов, которое может содержать строка; значение для других типов отличается.
См. также length(), setType(), setRequiredStatus(), setPrecision(), setDefaultValue(), setGenerated() и setReadOnly().
void QSqlField::setName(const QString &name)
Устанавливает имя поля в name.
См. также name().
void QSqlField::setPrecision(int precision)
Устанавливает точность поля precision. Это влияет только на числовые поля.
См. также precision(), setType(), setRequiredStatus(), setLength(), setDefaultValue(), setGenerated() и setReadOnly().
void QSqlField::setReadOnly(bool readOnly)
Устанавливает флаг только для чтения значения поля в readOnly. Для поля только для чтения нельзя установить значение с помощью setValue() и нельзя очистить до NULL с помощью clear().
См. также isReadOnly().
void QSqlField::setRequired(bool required)
Устанавливает обязательное состояние этого поля в Required, если required равно true; в противном случае устанавливает его в Optional.
См. также setRequiredStatus() и requiredStatus().
void QSqlField::setRequiredStatus(RequiredStatus required)
Устанавливает обязательное состояние этого поля в required.
См. также requiredStatus(), setType(), setLength(), setPrecision(), setDefaultValue(), setGenerated() и setReadOnly().
void QSqlField::setType(QVariant::Type type)
Устанавливает тип варианта поля в type.
См. также type(), setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), setGenerated() и setReadOnly().
void QSqlField::setValue(const QVariant &value)
Устанавливает значение поля в value. Если поле только для чтения (isReadOnly() возвращает true), ничего не происходит.
Если тип данных value отличается от текущего типа данных поля, производится попытка преобразования к соответствующему типу. Это сохраняет тип данных поля при присваивании, например, QString в целочисленный тип данных.
Для установки значения в NULL используйте clear().
См. также value(), isReadOnly() и defaultValue().
QVariant::Type QSqlField::type() const
Возвращает тип поля, как хранится в базе данных. Обратите внимание, что фактическое значение может иметь другой тип. Числовые значения, слишком большие для хранения в long int или double, обычно сохраняются как строки, чтобы предотвратить потерю точности.
См. также setType().
QVariant QSqlField::value() const
Возвращает значение поля как QVariant.
Используйте isNull(), чтобы проверить, равно ли значение поля NULL.
См. также setValue().
bool QSqlField::operator!=(const QSqlField &other) const
Возвращает true, если поле не равно other; в противном случае возвращает false.
QSqlField &QSqlField::operator=(const QSqlField &other)
Устанавливает поле равным other.
bool QSqlField::operator==(const QSqlField &other) const
Возвращает true, если поле равно other; в противном случае возвращает false.
© The Qt Company Ltd
Licensed under the GNU Free Documentation License, Version 1.3.
https://doc.qt.io/qt-5.9/qsqlfield.html