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 |
- Liste de tous les membres, y compris les membres hérités
- Membres dépréciés
- QSqlField fait partie des classes de bases de données et des classes partagées implicitement.
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 :
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.
| Constante | Valeur | Description de la rubrique |
|---|---|---|
QSqlField::Required | 1 | Le champ doit être spécifié lors de l'insertion d'enregistrements. |
QSqlField::Optional | 0 | La rubrique ne doit pas être spécifiée lors de l'insertion d'enregistrements. |
QSqlField::Unknown | -1 | Le 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 :
[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 :
[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 :
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.