Sur cette page

QSqlField Class

La classe QSqlField manipule les champs dans les tables et les vues des bases de données SQL. Plus d'informations...

En-tête : #include <QSqlField>
CMake : find_package(Qt6 REQUIRED COMPONENTS Sql)
target_link_libraries(mytarget PRIVATE Qt6::Sql)
qmake : QT += sql

Types publics

enum RequiredStatus { Required, Optional, Unknown }

Propriétés

Fonctions publiques

(since 6.0) QSqlField(const QString &fieldName = QString(), QMetaType type = QMetaType(), const QString &table = QString())
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
QMetaType metaType() 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 setMetaType(QMetaType type)
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 &tableName)
void setValue(const QVariant &value)
(since 6.6) void swap(QSqlField &other)
QString tableName() const
QVariant value() const
bool operator!=(const QSqlField &other) const
QSqlField &operator=(const QSqlField &other)
bool operator==(const QSqlField &other) const

Description détaillée

QSqlField représente les caractéristiques d'une colonne unique dans une table ou une vue de base de données, telles que le type de données et le nom de la colonne. Un champ contient également la valeur de la colonne de la base de données, qui peut être visualisée ou modifiée.

Les valeurs des données de champ sont stockées sous forme de QVariants. L'utilisation d'un type incompatible n'est pas autorisée. Par exemple, l'utilisation d'un type incompatible n'est pas autorisée :

    QSqlField field("age", QMetaType::fromType<int>());
    field.setValue(QPixmap());  // WRONG

Toutefois, le champ tentera de convertir certains types de données en types de données de champ, dans la mesure du possible :

    QSqlField field("age", QMetaType::fromType<int>());
    field.setValue(QString("123"));  // casts QString to int

Les objets QSqlField sont rarement créés explicitement dans le code de l'application. On y accède généralement de manière indirecte par l'intermédiaire de QSqlRecords qui contiennent déjà une liste de champs. Par exemple, les objets QSqlField sont rarement créés explicitement dans le code de l'application :

    QSqlQuery query;
    ...
    QSqlRecord record = query.record();
    QSqlField field = record.field("country");

Un objet QSqlField peut fournir des métadonnées sur le champ, par exemple, son name(), sa variante metaType(), length(), precision(), defaultValue(), son typeID(), et ses requiredStatus(), isGenerated() et isReadOnly(). Les données du champ peuvent être vérifiées pour voir s'il s'agit de isNull(), et son value() récupéré. Lors de l'édition, les données peuvent être définies à l'aide de setValue() ou définies à NULL à l'aide de clear().

Voir également QSqlRecord.

Documentation sur les types de membres

enum QSqlField::RequiredStatus

Indique si le champ est obligatoire ou facultatif.

ConstanteValeurDescription de la rubrique
QSqlField::Required1Le champ doit être spécifié lors de l'insertion d'enregistrements.
QSqlField::Optional0La rubrique ne doit pas être spécifiée lors de l'insertion d'enregistrements.
QSqlField::Unknown-1Le pilote de base de données n'a pas pu déterminer si le champ est obligatoire ou facultatif.

Voir également requiredStatus.

Documentation sur les propriétés

[since 6.8] autoValue : bool

Si la valeur est générée automatiquement par la base de données, par exemple des valeurs de clé primaire auto-incrémentées, cette valeur est true.

Remarque : lors de l'utilisation du pilote ODBC, en raison des limitations de l'API ODBC, le champ isAutoValue() n'est renseigné que dans un QSqlField résultant d'un QSqlRecord obtenu par l'exécution d'une requête SELECT. Il est false dans un QSqlField résultant d'un QSqlRecord renvoyé par QSqlDatabase::record() ou QSqlDatabase::primaryIndex().

Cette propriété a été introduite dans Qt 6.8.

Fonctions d'accès :

bool isAutoValue() const
void setAutoValue(bool autoVal)

[since 6.8] defaultValue : QVariant

Cette propriété contient la valeur par défaut de ce champ. Seuls certains pilotes de base de données prennent en charge cette propriété. Actuellement, il s'agit de SQLite, PostgreSQL, Oracle et MySQL/MariaDB.

Cette propriété a été introduite dans Qt 6.8.

Fonctions d'accès :

QVariant defaultValue() const
void setDefaultValue(const QVariant &value)

[since 6.8] generated : bool

Cette propriété contient l'état généré. Si generated est false, aucun Qt SQL ne sera généré pour ce champ ; sinon, les classes Qt telles que QSqlQueryModel et QSqlTableModel généreront un Qt SQL pour ce champ.

Cette propriété a été introduite dans Qt 6.8.

Fonctions d'accès :

bool isGenerated() const
void setGenerated(bool gen)

[since 6.8] length : int

Cette propriété indique la longueur du champ.

Si la valeur est négative, cela signifie que l'information n'est pas disponible dans la base de données. Pour les chaînes de caractères, il s'agit du nombre maximum de caractères que la chaîne peut contenir ; la signification varie pour les autres types.

Cette propriété a été introduite dans Qt 6.8.

Fonctions d'accès :

int length() const
void setLength(int fieldLength)

[since 6.8] metaType : QMetaType

Cette propriété contient le type du champ tel qu'il est stocké dans la base de données. Notez que la valeur réelle peut avoir un type différent. Les valeurs numériques qui sont trop grandes pour être stockées dans un long int ou un double sont généralement stockées sous forme de chaînes de caractères afin d'éviter une perte de précision.

Cette propriété a été introduite dans Qt 6.8.

Fonctions d'accès :

QMetaType metaType() const
void setMetaType(QMetaType type)

Voir aussi QSqlDatabase::numericalPrecisionPolicy.

name : QString

Cette propriété contient le nom du champ. Il peut s'agir du nom de la colonne ou d'un alias donné par l'utilisateur.

Fonctions d'accès :

QString name() const
void setName(const QString &name)

[since 6.8] precision : int

Cette propriété indique la précision du champ ; elle n'a de sens que pour les types numériques.

Si la valeur renvoyée est négative, cela signifie que l'information n'est pas disponible dans la base de données.

Cette propriété a été introduite dans Qt 6.8.

Fonctions d'accès :

int precision() const
void setPrecision(int precision)

[since 6.8] readOnly : bool

Lorsque cette propriété vaut true, le champ QSqlField ne peut pas être modifié. Un champ en lecture seule ne peut pas avoir sa valeur définie avec setValue() et ne peut pas être effacé à NULL avec clear().

Cette propriété a été introduite dans Qt 6.8.

Fonctions d'accès :

bool isReadOnly() const
void setReadOnly(bool readOnly)

[since 6.8] requiredStatus : RequiredStatus

Cette propriété contient l'adresse RequiredStatus du champ. Une page INSERT échouera si un champ obligatoire n'a pas de valeur.

Cette propriété a été introduite dans Qt 6.8.

Fonctions d'accès :

QSqlField::RequiredStatus requiredStatus() const
void setRequiredStatus(QSqlField::RequiredStatus required)

Voir également RequiredStatus.

[since 6.8] tableName : QString

Cette propriété contient le nom de table du champ.

Remarque : Lors de l'utilisation du pilote QPSQL, en raison des limitations de la bibliothèque libpq, le champ tableName() n'est pas rempli dans un QSqlField résultant d'un QSqlRecord obtenu par QSqlQuery::record() d'une requête forward-only.

Cette propriété a été introduite dans Qt 6.8.

Fonctions d'accès :

QString tableName() const
void setTableName(const QString &tableName)

[since 6.8] value : QVariant

Cette propriété contient l'adresse value sous la forme d'un QVariant

L'affectation d'un value à un QSqlField en lecture seule est un non-sens. Si le type de données de value diffère du type de données actuel du champ, on tente de le convertir au type approprié. Cela permet de préserver le type de données du champ en cas d'affectation, par exemple un QString vers un type de données entier.

Pour mettre la valeur à NULL, utilisez clear().

Cette propriété a été introduite dans Qt 6.8.

Fonctions d'accès :

QVariant value() const
void setValue(const QVariant &value)

Documentation des fonctions membres

[explicit, since 6.0] QSqlField::QSqlField(const QString &fieldName = QString(), QMetaType type = QMetaType(), const QString &table = QString())

Construit un champ vide appelé fieldName de type type dans table.

Il s'agit d'une fonction surchargée.

Cette fonction a été introduite dans Qt 6.0.

QSqlField::QSqlField(const QSqlField &other)

Construit une copie de other.

[noexcept] QSqlField::~QSqlField()

Détruit l'objet et libère les ressources allouées.

void QSqlField::clear()

Efface la valeur du champ et lui donne la valeur NULL. Si le champ est en lecture seule, rien ne se passe.

QVariant QSqlField::defaultValue() const

Définit la valeur de defaultValue.

Remarque : fonction Getter pour la propriété defaultValue.

Voir également setDefaultValue().

bool QSqlField::isAutoValue() const

Renvoie la valeur de autoValue.

Note : Fonction Getter pour la propriété autoValue.

bool QSqlField::isGenerated() const

Renvoie la valeur de generated.

Note : Fonction Getter pour la propriété generated.

bool QSqlField::isNull() const

Renvoie true si la valeur du champ est NULL ; sinon, renvoie false.

Voir aussi value.

bool QSqlField::isReadOnly() const

Renvoie la valeur de readOnly.

Note : Fonction Getter pour la propriété readOnly.

bool QSqlField::isValid() const

Renvoie true si le type de variante de la rubrique est valide ; sinon, renvoie false.

int QSqlField::length() const

Renvoie la valeur de la longueur.

Note : Fonction Getter pour la propriété length.

Voir également setLength().

QMetaType QSqlField::metaType() const

Renvoie la valeur de metaType.

Remarque : fonction Getter pour la propriété metaType.

Voir aussi setMetaType().

QString QSqlField::name() const

Renvoie la valeur de name.

Note : Fonction Getter pour la propriété name.

Voir aussi setName().

int QSqlField::precision() const

Renvoie la valeur de la précision.

Note : Fonction Getter pour la propriété precision.

Voir également setPrecision().

QSqlField::RequiredStatus QSqlField::requiredStatus() const

Renvoie la valeur de requiredStatus.

Remarque : fonction Getter pour la propriété requiredStatus.

Voir également setRequiredStatus().

void QSqlField::setAutoValue(bool autoVal)

Remplace autoValue par autoVal.

Note : Fonction de définition de la propriété autoValue.

Voir aussi isAutoValue().

void QSqlField::setDefaultValue(const QVariant &value)

Remplace defaultValue par value.

Note : Fonction de définition de la propriété defaultValue.

Voir aussi defaultValue().

void QSqlField::setGenerated(bool gen)

Remplace generated par gen.

Note : Fonction de définition de la propriété generated.

Voir aussi isGenerated().

void QSqlField::setLength(int fieldLength)

Remplace length par fieldLength.

Note : Fonction de définition de la propriété length.

Voir aussi length().

void QSqlField::setMetaType(QMetaType type)

Remplace metaType par type.

Note : Fonction de définition de la propriété metaType.

Voir aussi metaType().

void QSqlField::setName(const QString &name)

Remplace name par name.

Note : Fonction de définition de la propriété name.

Voir aussi name().

void QSqlField::setPrecision(int precision)

Remplace precision par precision.

Note : Fonction de définition de la propriété precision.

Voir aussi precision().

void QSqlField::setReadOnly(bool readOnly)

Remplace readOnly par readOnly.

Note : Fonction de définition de la propriété readOnly.

Voir aussi isReadOnly().

void QSqlField::setRequired(bool required)

Attribue la valeur Required à l'état requis de ce champ si required est vrai ; sinon, il lui attribue la valeur Optional.

Voir également requiredStatus.

void QSqlField::setRequiredStatus(QSqlField::RequiredStatus required)

Remplace requiredStatus par required.

Note : Fonction de définition de la propriété requiredStatus.

Voir aussi requiredStatus().

void QSqlField::setTableName(const QString &tableName)

Remplace tableName par tableName.

Note : Fonction de définition de la propriété tableName.

Voir aussi tableName().

void QSqlField::setValue(const QVariant &value)

Remplace value par value.

Note : Fonction de définition de la propriété value.

Voir aussi value().

[noexcept, since 6.6] void QSqlField::swap(QSqlField &other)

Remplace ce champ par other. Cette opération est très rapide et n'échoue jamais.

Cette fonction a été introduite dans Qt 6.6.

QString QSqlField::tableName() const

Renvoie le nom de la table.

Remarque : fonction Getter pour la propriété tableName.

Voir également setTableName().

QVariant QSqlField::value() const

Renvoie la valeur de la valeur.

Remarque : fonction Getter pour la valeur d'une propriété.

Voir également setValue().

bool QSqlField::operator!=(const QSqlField &other) const

Renvoie true si le champ n'est pas égal à other; sinon, renvoie false.

QSqlField &QSqlField::operator=(const QSqlField &other)

Définit le champ comme étant égal à other.

bool QSqlField::operator==(const QSqlField &other) const

Renvoie true si le champ est égal à other; sinon, renvoie false.

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.