Класс 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) |
Подробное описание
Класс 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 может предоставлять некоторые метаданные о поле, например, его имя(), тип QVariant, длину, точность, значение по умолчанию, typeID(), и его requiredStatus(), isGenerated() и isReadOnly(). Можно проверить данные поля, чтобы увидеть, isNull(), и получить его значение(). При редактировании данные можно установить с помощью setValue() или установить в NULL с помощью clear().
См. также QSqlRecord.
Документация по типам членов
перечисление QSqlField::RequiredStatus
Указывает, является ли поле обязательным или необязательным.
| Постоянная | Значение | Описание |
|---|---|---|
См. также 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(), 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().
END_OF_DOCUMENT_MARKERbool 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/archives/qt-5.6/qsqlfield.html