QSqlField Class
La clase QSqlField manipula los campos de las tablas y vistas de bases de datos SQL. Más...
| Cabecera: | #include <QSqlField> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Sql)target_link_libraries(mytarget PRIVATE Qt6::Sql) |
| qmake: | QT += sql |
- Lista de todos los miembros, incluidos los heredados
- Miembros obsoletos
- QSqlField es parte de Clases de Base de Datos y Clases Implícitamente Compartidas.
Tipos Públicos
| enum | RequiredStatus { Required, Optional, Unknown } |
Propiedades
|
Funciones públicas
(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 |
Descripción Detallada
QSqlField representa las características de una única columna en una tabla o vista de base de datos, como el tipo de datos y el nombre de la columna. Un campo también contiene el valor de la columna de la base de datos, que puede visualizarse o modificarse.
Los valores de los datos de campo se almacenan como QVariants. No está permitido utilizar un tipo incompatible. Por ejemplo:
Sin embargo, el campo intentará convertir ciertos tipos de datos al tipo de datos del campo siempre que sea posible:
QSqlField field("age", QMetaType::fromType<int>()); field.setValue(QString("123")); // casts QString to int
Los objetos QSqlField rara vez se crean explícitamente en el código de la aplicación. Normalmente se accede a ellos indirectamente a través de QSqlRecords que ya contienen una lista de campos. Por ejemplo:
QSqlQuery query; ... QSqlRecord record = query.record(); QSqlField field = record.field("country");
Un objeto QSqlField puede proporcionar algunos metadatos sobre el campo, por ejemplo, su name(), variante metaType(), length(), precision(), defaultValue(), typeID(), y sus requiredStatus(), isGenerated() y isReadOnly(). Los datos del campo se pueden comprobar para ver si isNull(), y su value() recuperado. Al editar los datos se pueden establecer con setValue() o establecer a NULL con clear().
Véase también QSqlRecord.
Documentación de tipos de miembros
enum QSqlField::RequiredStatus
Especifica si el campo es obligatorio u opcional.
| Constante | Valor | Descripción |
|---|---|---|
QSqlField::Required | 1 | El campo debe especificarse al insertar registros. |
QSqlField::Optional | 0 | No es necesario especificar el campo al insertar registros. |
QSqlField::Unknown | -1 | El controlador de la base de datos no ha podido determinar si el campo es obligatorio u opcional. |
Véase también requiredStatus.
Documentación de propiedades
[since 6.8] autoValue : bool
Si el valor es autogenerado por la base de datos, por ejemplo valores de clave primaria de autoincremento, este valor es true.
Nota: cuando se utiliza el controlador ODBC, debido a las limitaciones de la API ODBC, el campo isAutoValue() sólo se rellena en un QSqlField resultante de un QSqlRecord obtenido mediante la ejecución de una consulta SELECT. Es false en un QSqlField resultante de un QSqlRecord devuelto desde QSqlDatabase::record() o QSqlDatabase::primaryIndex().
Esta propiedad se introdujo en Qt 6.8.
Funciones de acceso:
| bool | isAutoValue() const |
| void | setAutoValue(bool autoVal) |
[since 6.8] defaultValue : QVariant
Esta propiedad contiene el valor por defecto para este campo. Sólo algunos controladores de bases de datos soportan esta propiedad. Actualmente son SQLite, PostgreSQL, Oracle y MySQL/MariaDB.
Esta propiedad se introdujo en Qt 6.8.
Funciones de acceso:
| QVariant | defaultValue() const |
| void | setDefaultValue(const QVariant &value) |
[since 6.8] generated : bool
Esta propiedad contiene el estado generado. Si generated es false, no se generará SQL para este campo; de lo contrario, las clases Qt como QSqlQueryModel y QSqlTableModel generarán SQL para este campo.
Esta propiedad se introdujo en Qt 6.8.
Funciones de acceso:
| bool | isGenerated() const |
| void | setGenerated(bool gen) |
[since 6.8] length : int
Esta propiedad contiene la longitud del campo.
Si el valor es negativo, significa que la información no está disponible en la base de datos. En el caso de las cadenas, es el número máximo de caracteres que puede contener la cadena; el significado varía para otros tipos.
Esta propiedad se introdujo en Qt 6.8.
Funciones de acceso:
[since 6.8] metaType : QMetaType
Esta propiedad contiene el tipo de campo almacenado en la base de datos. Tenga en cuenta que el valor real puede tener un tipo diferente, los valores numéricos que son demasiado grandes para almacenarse en un long int o double se almacenan normalmente como cadenas para evitar la pérdida de precisión.
Esta propiedad se introdujo en Qt 6.8.
Funciones de acceso:
| QMetaType | metaType() const |
| void | setMetaType(QMetaType type) |
Véase también QSqlDatabase::numericalPrecisionPolicy.
name : QString
Esta propiedad contiene el nombre del campo. Puede ser el nombre de la columna o un alias dado por el usuario.
Funciones de acceso:
[since 6.8] precision : int
Esta propiedad contiene la precisión del campo; sólo es significativa para los tipos numéricos.
Si el valor devuelto es negativo, significa que la información no está disponible en la base de datos.
Esta propiedad se introdujo en Qt 6.8.
Funciones de acceso:
| int | precision() const |
| void | setPrecision(int precision) |
[since 6.8] readOnly : bool
Cuando esta propiedad es true entonces este QSqlField no puede ser modificado. Un campo de sólo lectura no puede tener su valor establecido con setValue() y no puede ser borrado a NULL con clear().
Esta propiedad se introdujo en Qt 6.8.
Funciones de acceso:
| bool | isReadOnly() const |
| void | setReadOnly(bool readOnly) |
[since 6.8] requiredStatus : RequiredStatus
Esta propiedad contiene el RequiredStatus del campo. Un INSERT fallará si un campo obligatorio no tiene un valor.
Esta propiedad se introdujo en Qt 6.8.
Funciones de acceso:
| QSqlField::RequiredStatus | requiredStatus() const |
| void | setRequiredStatus(QSqlField::RequiredStatus required) |
Véase también RequiredStatus.
[since 6.8] tableName : QString
Esta propiedad contiene el tableName del campo.
Nota: Cuando se utiliza el controlador QPSQL, debido a limitaciones en la biblioteca libpq, el campo tableName() no se rellena en un QSqlField resultante de un QSqlRecord obtenido por QSqlQuery::record() de una consulta forward-only.
Esta propiedad se introdujo en Qt 6.8.
Funciones de acceso:
| QString | tableName() const |
| void | setTableName(const QString &tableName) |
[since 6.8] value : QVariant
Esta propiedad contiene el value como QVariant
Establecer un value a un QSqlField de sólo lectura es un no-op. Si el tipo de datos de value difiere del tipo de datos actual del campo, se intenta convertirlo al tipo adecuado. Esto preserva el tipo de datos del campo en caso de asignación, por ejemplo, un QString a un tipo de datos entero.
Para establecer el valor en NULL, utilice clear().
Esta propiedad se introdujo en Qt 6.8.
Funciones de acceso:
Documentación de funciones miembro
[explicit, since 6.0] QSqlField::QSqlField(const QString &fieldName = QString(), QMetaType type = QMetaType(), const QString &table = QString())
Construye un campo vacío llamado fieldName de tipo type en table.
Se trata de una función sobrecargada.
Esta función se introdujo en Qt 6.0.
QSqlField::QSqlField(const QSqlField &other)
Construye una copia de other.
[noexcept] QSqlField::~QSqlField()
Destruye el objeto y libera los recursos asignados.
void QSqlField::clear()
Borra el valor del campo y lo pone a NULL. Si el campo es de sólo lectura, no ocurre nada.
QVariant QSqlField::defaultValue() const
Establece el valor de defaultValue.
Nota: Función Getter para la propiedad defaultValue.
Véase también setDefaultValue().
bool QSqlField::isAutoValue() const
Devuelve el valor de autoValue.
Nota: Función Getter para la propiedad autoValue.
bool QSqlField::isGenerated() const
Devuelve el valor de generated.
Nota: Función Getter para la propiedad generated.
bool QSqlField::isNull() const
Devuelve true si el valor del campo es NULL; en caso contrario devuelve false.
Véase también value.
bool QSqlField::isReadOnly() const
Devuelve el valor de readOnly.
Nota: Función Getter para la propiedad readOnly.
bool QSqlField::isValid() const
Devuelve true si el tipo de variante del campo es válido; en caso contrario devuelve false.
int QSqlField::length() const
Devuelve el valor de la longitud.
Nota: Función Getter para la propiedad length.
Véase también setLength().
QMetaType QSqlField::metaType() const
Devuelve el valor de metaType.
Nota: Función Getter para la propiedad metaType.
Véase también setMetaType().
QString QSqlField::name() const
Devuelve el valor de nombre.
Nota: Función Getter para la propiedad name.
Véase también setName().
int QSqlField::precision() const
Devuelve el valor de la precisión.
Nota: Función Getter para la propiedad precisión.
Véase también setPrecision().
QSqlField::RequiredStatus QSqlField::requiredStatus() const
Devuelve el valor de requiredStatus.
Nota: Función Getter para la propiedad requiredStatus.
Véase también setRequiredStatus().
void QSqlField::setAutoValue(bool autoVal)
Establece autoValue en autoVal.
Nota: Función Setter para la propiedad autoValue.
Véase también isAutoValue().
void QSqlField::setDefaultValue(const QVariant &value)
Establece defaultValue en value.
Nota: Función Setter para la propiedad defaultValue.
Véase también defaultValue().
void QSqlField::setGenerated(bool gen)
Establece generated en gen.
Nota: Función Setter para la propiedad generated.
Véase también isGenerated().
void QSqlField::setLength(int fieldLength)
Establece length en fieldLength.
Nota: Función Setter para la propiedad length.
Véase también length().
void QSqlField::setMetaType(QMetaType type)
Establece metaType en type.
Nota: Función Setter para la propiedad metaType.
Véase también metaType().
void QSqlField::setName(const QString &name)
Establece name en name.
Nota: Función Setter para la propiedad name.
Véase también name().
void QSqlField::setPrecision(int precision)
Establece precision en precision.
Nota: Función Setter para la propiedad precision.
Véase también precision().
void QSqlField::setReadOnly(bool readOnly)
Establece readOnly en readOnly.
Nota: Función Setter para la propiedad readOnly.
Véase también isReadOnly().
void QSqlField::setRequired(bool required)
Establece el estado requerido de este campo en Required si required es verdadero; en caso contrario, lo establece en Optional.
Véase también requiredStatus.
void QSqlField::setRequiredStatus(QSqlField::RequiredStatus required)
Establece requiredStatus en required.
Nota: Función Setter para la propiedad requiredStatus.
Véase también requiredStatus().
void QSqlField::setTableName(const QString &tableName)
Establece tableName en tableName.
Nota: Función Setter para la propiedad tableName.
Véase también tableName().
void QSqlField::setValue(const QVariant &value)
Establece value en value.
Nota: Función Setter para la propiedad value.
Véase también value().
[noexcept, since 6.6] void QSqlField::swap(QSqlField &other)
Intercambia este campo con other. Esta operación es muy rápida y nunca falla.
Esta función se introdujo en Qt 6.6.
QString QSqlField::tableName() const
Devuelve el nombre de la tabla.
Nota: Función Getter para la propiedad tableName.
Véase también setTableName().
QVariant QSqlField::value() const
Devuelve el valor de value.
Nota: Función Getter para el valor de la propiedad.
Véase también setValue().
bool QSqlField::operator!=(const QSqlField &other) const
Devuelve true si el campo no es igual a other; en caso contrario devuelve false.
QSqlField &QSqlField::operator=(const QSqlField &other)
Establece el campo igual a other.
bool QSqlField::operator==(const QSqlField &other) const
Devuelve true si el campo es igual a other; en caso contrario devuelve 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.