Spec-Zone.ru › Qt 5.15

Класс 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 = {})
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 редко создаются явно в коде приложения. К ним обычно обращаются косвенно через 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

Указывает, является ли поле обязательным или необязательным.

Константа Значение Описание
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 = {})

Создает пустое поле с именем 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, если тип варианта поля действителен; в противном случае возвращает 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. Это относится только к числовым полям.

См. также 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)

Устанавливает тип варианта поля в type.

См. также type(), setRequiredStatus(), setLength(), setPrecision(), setDefaultValue(), setGenerated(), и setReadOnly().

END_OF_DOCUMENT_MARKER

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.15/qsqlfield.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API