Класс QSqlField
Класс QSqlField манипулирует полями в таблицах и представлениях баз данных SQL. Подробнее...
| Заголовок: | #include <QSqlField> |
| qmake: | QT += sql |
Типы публичного доступа
| перечисление | RequiredStatus { Required, Optional, Unknown } |
Функции публичного доступа
| QSqlField(const QSqlField &other) | |
| QSqlField(const QString &fieldName, QVariant::Type type, const QString &table) | |
| QSqlField(const QString &fieldName = QString(), QVariant::Type type = QVariant::Invalid) | |
| QSqlField & | operator=(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 |
| QSqlField::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(QSqlField::RequiredStatus required) |
| void | setTableName(const QString &table) |
| void | setType(QVariant::Type type) |
| void | setValue(const QVariant &value) |
| QString | tableName() const |
| QVariant::Type | type() const |
| QVariant | value() const |
| bool | operator!=(const QSqlField &other) const |
| bool | operator==(const QSqlField &other) const |
Подробное описание
QSqlField представляет характеристики одного столбца в таблице или представлении базы данных, такие как тип данных и имя столбца. Поле также содержит значение столбца базы данных, которое можно просмотреть или изменить.
Значения данных поля хранятся в виде QVariants. Использование несовместимого типа запрещено. Например:
QSqlField field("age", QVariant::Int);
field.setValue(QPixmap()); // WRONG Однако поле попытается преобразовать определенные типы данных в тип данных поля, где это возможно:
QSqlField field("age", QVariant::Int);
field.setValue(QString("123")); // casts QString to int QSqlField объекты редко создаются явно в коде приложения. К ним обычно обращаются косвенно через QSqlRecords, которые уже содержат список полей. Например:
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 QSqlField &other)
Создает копию other.
QSqlField::QSqlField(const QString &fieldName, QVariant::Type type, const QString &table)
Это перегруженная функция.
Создает пустое поле с именем fieldName типа type в таблице table.
См. также setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), setGenerated(), и setReadOnly().
QSqlField::QSqlField(const QString &fieldName = QString(), QVariant::Type type = QVariant::Invalid)
Создает пустое поле с именем fieldName типа type.
См. также setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), setGenerated(), и setReadOnly().
QSqlField &QSqlField::operator=(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, если тип поля QVariant действителен; в противном случае возвращает 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().
QSqlField::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(), 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(QSqlField::RequiredStatus required)
Устанавливает состояние обязательности этого поля в required.
См. также requiredStatus(), setType(), setLength(), setPrecision(), setDefaultValue(), setGenerated() и setReadOnly().
void QSqlField::setTableName(const QString &table)
Устанавливает tableName поля в table.
См. также tableName().
void QSqlField::setType(QVariant::Type type)
Устанавливает тип QVariant поля в type.
См. также type(), setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), setGenerated(), и setReadOnly().
void QSqlField::setValue(const QVariant &value)
Устанавливает значение поля в value. Если поле является только для чтения (isReadOnly() возвращает true), ничего не происходит.
Если тип данных value отличается от текущего типа данных поля, предпринимается попытка привести его к соответствующему типу. Это сохраняет тип данных поля в случае присваивания, например, QString к целочисленному типу данных.
Чтобы установить значение в NULL, используйте clear().
См. также value(), isReadOnly(), и defaultValue().
QString QSqlField::tableName() const
Возвращает имя таблицы поля.
Примечание: При использовании драйвера QPSQL, из-за ограничений библиотеки libpq, поле tableName() не заполняется в QSqlField, полученном из QSqlRecord, полученного из QSqlQuery::record() запроса с однократным проходом.
См. также setTableName().
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.
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.13/qsqlfield.html