QSqlField Class
Die Klasse „QSqlField“ dient zur Bearbeitung der Felder in SQL-Datenbanktabellen und -Ansichten. Mehr...
| Header: | #include <QSqlField> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Sql) target_link_libraries(mytarget PRIVATE Qt6::Sql) |
| qmake: | QT += sql |
- Liste aller Mitglieder, einschließlich geerbter Mitglieder
- Veraltete Mitglieder
- QSqlField ist Teil der Datenbankklassen und der implizit gemeinsam genutzten Klassen.
Öffentliche Typen
| enum | RequiredStatus { Required, Optional, Unknown } |
Eigenschaften
|
Öffentliche Funktionen
(since 6.0) | QSqlField(const QString &fieldName = QString(), QMetaType type = QMetaType(), const QString &table = QString()) |
| QSqlField(const QSqlField &other) | |
| QSqlField(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 |
Ausführliche Beschreibung
QSqlField repräsentiert die Eigenschaften einer einzelnen Spalte in einer Datenbanktabelle oder -ansicht, wie beispielsweise den Datentyp und den Spaltennamen. Ein Feld enthält außerdem den Wert der Datenbankspalte, der angezeigt oder geändert werden kann.
Felddatenwerte werden als QVariants gespeichert. Die Verwendung eines inkompatiblen Typs ist nicht zulässig. Beispiel:
Das Feld versucht jedoch, bestimmte Datentypen nach Möglichkeit in den Felddatentyp umzuwandeln:
QSqlField field("age", QMetaType::fromType<int>());
field.setValue(QString("123")); // casts QString to intQSqlField-Objekte werden im Anwendungscode selten explizit erstellt. Der Zugriff erfolgt in der Regel indirekt über ` QSqlRecords`, die bereits eine Liste von Feldern enthalten. Beispiel:
QSqlQuery query;
...
QSqlRecord record = query.record();
QSqlField field = record.field("country");Ein QSqlField-Objekt kann einige Metadaten zum Feld bereitstellen, zum Beispiel dessen „ name()“, „variant metaType()“, „ length()“, „ precision()“, „ defaultValue()“, „typeID()“ sowie dessen „ requiredStatus()“, „ isGenerated()“ und „ isReadOnly()“. Die Daten des Feldes können überprüft werden, um festzustellen, ob sie „ isNull “ () sind, und die „ value “ () können abgerufen werden. Beim Bearbeiten können die Daten mit „ setValue “ () gesetzt oder mit „ clear “ () auf NULL gesetzt werden.
Siehe auch QSqlRecord.
Dokumentation zu Mitgliedstypen
enum QSqlField::RequiredStatus
Gibt an, ob das Feld ein Pflichtfeld oder ein optionales Feld ist.
| Konstante | Wert | Beschreibung |
|---|---|---|
QSqlField::Required | 1 | Das Feld muss beim Einfügen von Datensätzen angegeben werden. |
QSqlField::Optional | 0 | Das Feld muss beim Einfügen von Datensätzen nicht angegeben werden. |
QSqlField::Unknown | -1 | Der Datenbanktreiber konnte nicht feststellen, ob das Feld obligatorisch oder optional ist. |
Siehe auch requiredStatus.
Eigenschaftsdokumentation
[since 6.8] autoValue : bool
Wenn der Wert von der Datenbank automatisch generiert wird, beispielsweise bei automatisch inkrementierten Primärschlüsselwerten, lautet dieser Wert „ true “.
Hinweis: Beim Schreiben eines neuen Datensatzes in die Datenbank enthält das Feld „ autoValue “ den von der Datenbank generierten neuen Wert erst, nachdem der Datensatz an die Datenbank übermittelt wurde. Bei Verwendung des ODBC-Treibers wird das Feld „ isAutoValue() “ aufgrund von Einschränkungen in der ODBC-API nur in einem „ QSqlField “ gefüllt, das aus einem „ QSqlRecord “ resultiert, der durch die Ausführung einer „ SELECT “-Abfrage erhalten wurde. Für ein „ QSqlField “, das aus einem „ QSqlRecord “ resultiert, der von „ QSqlDatabase::record()“ oder „ QSqlDatabase::primaryIndex()“ zurückgegeben wurde, gilt „ false “.
Diese Aufzählung wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
| bool | isAutoValue() const |
| void | setAutoValue(bool autoVal) |
[since 6.8] defaultValue : QVariant
Diese Eigenschaft enthält den Standardwert für dieses Feld. Nur einige Datenbanktreiber unterstützen diese Eigenschaft. Derzeit sind dies SQLite, PostgreSQL, Oracle und MySQL/MariaDB.
Diese Aufzählung wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
| QVariant | defaultValue() const |
| void | setDefaultValue(const QVariant &value) |
[since 6.8] generated : bool
Diese Eigenschaft enthält den generierten Status. Wenn „ generated “ auf „ false “ gesetzt ist, wird für dieses Feld kein SQL generiert; andernfalls generieren Qt-Klassen wie „ QSqlQueryModel “ und „ QSqlTableModel “ SQL für dieses Feld.
Diese Aufzählung wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
| bool | isGenerated() const |
| void | setGenerated(bool gen) |
[since 6.8] length : int
Diese Eigenschaft enthält die Länge des Feldes.
Ist der Wert negativ, bedeutet dies, dass die Information in der Datenbank nicht verfügbar ist. Bei Zeichenketten ist dies die maximale Anzahl an Zeichen, die die Zeichenkette enthalten kann; bei anderen Typen variiert die Bedeutung.
Diese Aufzählung wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
[since 6.8] metaType : QMetaType
Diese Eigenschaft enthält den in der Datenbank gespeicherten Typ des Feldes. Beachten Sie, dass der tatsächliche Wert möglicherweise einen anderen Typ hat. Numerische Werte, die zu groß sind, um in einem `long int` oder `double` gespeichert zu werden, werden in der Regel als Zeichenketten gespeichert, um Genauigkeitsverluste zu vermeiden.
Diese Aufzählung wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
| QMetaType | metaType() const |
| void | setMetaType(QMetaType type) |
Siehe auch „ QSqlDatabase::numericalPrecisionPolicy “.
name : QString
Diese Eigenschaft enthält den Namen des Feldes. Dabei kann es sich um den Spaltennamen oder einen vom Benutzer vergebenen Alias handeln.
Zugriffsfunktionen:
[since 6.8] precision : int
Diese Eigenschaft gibt die Genauigkeit des Feldes an; dies ist nur für numerische Typen von Bedeutung.
Ist der Rückgabewert negativ, bedeutet dies, dass die Informationen in der Datenbank nicht verfügbar sind.
Diese Enumeration wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
| int | precision() const |
| void | setPrecision(int precision) |
[since 6.8] readOnly : bool
Wenn diese Eigenschaft auf „ true “ gesetzt ist, kann dieses „ QSqlField “ nicht geändert werden. Der Wert eines schreibgeschützten Feldes kann nicht mit „ setValue()“ gesetzt und nicht mit „ clear()“ auf NULL gesetzt werden.
Diese Enumeration wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
| bool | isReadOnly() const |
| void | setReadOnly(bool readOnly) |
[since 6.8] requiredStatus : RequiredStatus
Diese Eigenschaft enthält die „ RequiredStatus “ des Feldes. Ein „ INSERT “ schlägt fehl, wenn ein Pflichtfeld keinen Wert enthält.
Diese Aufzählung wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
| QSqlField::RequiredStatus | requiredStatus() const |
| void | setRequiredStatus(QSqlField::RequiredStatus required) |
Siehe auch „ RequiredStatus “.
[since 6.8] tableName : QString
Diese Eigenschaft enthält den „tableName“ des Feldes.
Hinweis: Bei Verwendung des QPSQL-Treibers wird aufgrund von Einschränkungen in der libpq-Bibliothek das Feld „ tableName() “ in einem „ QSqlField “ nicht gefüllt, das aus einem „ QSqlRecord “ resultiert, der durch „ QSqlQuery::record()“ einer Forward-Only-Abfrage abgerufen wurde.
Diese Aufzählung wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
| QString | tableName() const |
| void | setTableName(const QString &tableName) |
[since 6.8] value : QVariant
Diese Eigenschaft enthält den value als QVariant
Das Setzen von „ value “ auf ein schreibgeschütztes „ QSqlField “ hat keine Auswirkung. Wenn sich der Datentyp von „ value “ vom aktuellen Datentyp des Feldes unterscheidet, wird versucht, ihn in den richtigen Typ umzuwandeln. Dadurch bleibt der Datentyp des Feldes bei einer Zuweisung erhalten, z. B. bei der Zuweisung eines „ QString “ zu einem ganzzahligen Datentyp.
Um den Wert auf NULL zu setzen, verwenden Sie ` clear()`.
Diese Aufzählung wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
Dokumentation zu den Member-Funktionen
[explicit, since 6.0] QSqlField::QSqlField(const QString &fieldName = QString(), QMetaType type = QMetaType(), const QString &table = QString())
Erstellt ein leeres Feld namens „ fieldName “ vom Typ „ type “ in „ table “.
Dies ist eine überladene Funktion.
Diese Funktion wurde in Qt 6.0 eingeführt.
QSqlField::QSqlField(const QSqlField &other)
Erstellt eine Kopie von „ other “.
[noexcept default] QSqlField::QSqlField(QSqlField &&other)
Erstellt eine Instanz von ` QSqlField` mithilfe von `Move`.
[noexcept] QSqlField::~QSqlField()
Löscht das Objekt und gibt alle zugewiesenen Ressourcen frei.
void QSqlField::clear()
Löscht den Wert des Feldes und setzt ihn auf NULL. Ist das Feld schreibgeschützt, geschieht nichts.
QVariant QSqlField::defaultValue() const
Legt den Wert von „defaultValue“ fest.
Hinweis: Getter -Funktion für die Eigenschaft „defaultValue“.
Siehe auch „ setDefaultValue()“.
bool QSqlField::isAutoValue() const
Gibt den Wert von „ autoValue “ zurück.
Hinweis: Getter -Funktion für die Eigenschaft „ autoValue “.
bool QSqlField::isGenerated() const
Gibt den Wert von ` generated` zurück.
Hinweis: Getter -Funktion für die Eigenschaft „ generated “.
bool QSqlField::isNull() const
Gibt „ true “ zurück, wenn der Wert des Feldes NULL ist; andernfalls wird „false“ zurückgegeben.
Siehe auch „ value “.
bool QSqlField::isReadOnly() const
Gibt den Wert von ` readOnly` zurück.
Hinweis: Getter -Funktion für die Eigenschaft „ readOnly “.
bool QSqlField::isValid() const
Gibt „ true “ zurück, wenn der Variantentyp des Feldes gültig ist; andernfalls wird „ false “ zurückgegeben.
int QSqlField::length() const
Gibt den Wert von „length“ zurück.
Hinweis: Getter -Funktion für die Eigenschaft „length“.
Siehe auch „ setLength()“.
QMetaType QSqlField::metaType() const
Gibt den Wert von metaType zurück.
Hinweis: Getter -Funktion für die Eigenschaft „metaType“.
Siehe auch „ setMetaType()“.
QString QSqlField::name() const
Gibt den Wert von „name“ zurück.
Hinweis: Getter -Funktion für die Eigenschaft „name“.
Siehe auch „ setName()“.
int QSqlField::precision() const
Gibt den Wert von „precision“ zurück.
Hinweis: Getter -Funktion für die Eigenschaft „precision“.
Siehe auch „ setPrecision()“.
QSqlField::RequiredStatus QSqlField::requiredStatus() const
Gibt den Wert von „requiredStatus“ zurück.
Hinweis: Getter -Funktion für die Eigenschaft „requiredStatus“.
Siehe auch „ setRequiredStatus()“.
void QSqlField::setAutoValue(bool autoVal)
Setzt „ autoValue “ auf „ autoVal “.
Hinweis: Setter -Funktion für die Eigenschaft „ autoValue “.
Siehe auch isAutoValue().
void QSqlField::setDefaultValue(const QVariant &value)
Setzt „ defaultValue “ auf „ value “.
Hinweis: Setter -Funktion für die Eigenschaft ` defaultValue`.
Siehe auch defaultValue().
void QSqlField::setGenerated(bool gen)
Setzt „ generated “ auf „ gen “.
Hinweis: Setter -Funktion für die Eigenschaft generated.
Siehe auch isGenerated().
void QSqlField::setLength(int fieldLength)
Setzt „ length “ auf „ fieldLength “.
Hinweis: Setter -Funktion für die Eigenschaft ` length`.
Siehe auch length().
void QSqlField::setMetaType(QMetaType type)
Setzt „ metaType “ auf „ type “.
Hinweis: Setter -Funktion für die Eigenschaft ` metaType`.
Siehe auch metaType().
void QSqlField::setName(const QString &name)
Setzt „ name “ auf „ name “.
Hinweis: Setter -Funktion für die Eigenschaft ` name`.
Siehe auch name().
void QSqlField::setPrecision(int precision)
Setzt „ precision “ auf „ precision “.
Hinweis: Setter -Funktion für die Eigenschaft ` precision`.
Siehe auch precision().
void QSqlField::setReadOnly(bool readOnly)
Setzt „ readOnly “ auf „ readOnly “.
Hinweis: Setter -Funktion für die Eigenschaft ` readOnly`.
Siehe auch isReadOnly().
void QSqlField::setRequired(bool required)
Setzt den erforderlichen Status dieses Feldes auf „ Required “, wenn „ required “ wahr ist; andernfalls wird er auf „ Optional “ gesetzt.
Siehe auch „ requiredStatus “.
void QSqlField::setRequiredStatus(QSqlField::RequiredStatus required)
Setzt „ requiredStatus “ auf „ required “.
Hinweis: Setter -Funktion für die Eigenschaft ` requiredStatus`.
Siehe auch requiredStatus().
void QSqlField::setTableName(const QString &tableName)
Setzt „ tableName “ auf „ tableName “.
Hinweis: Setter -Funktion für die Eigenschaft ` tableName`.
Siehe auch „ tableName()“.
void QSqlField::setValue(const QVariant &value)
Setzt „ value “ auf „ value “.
Hinweis: Setter -Funktion für die Eigenschaft ` value`.
Siehe auch value().
[noexcept, since 6.6] void QSqlField::swap(QSqlField &other)
Tauscht dieses Feld mit „ other “ aus. Dieser Vorgang ist sehr schnell und schlägt niemals fehl.
Diese Funktion wurde in Qt 6.6 eingeführt.
QString QSqlField::tableName() const
Gibt den tabellennamen zurück.
Hinweis: Getter -Funktion für die Eigenschaft „tableName“.
Siehe auch „ setTableName()“.
QVariant QSqlField::value() const
Gibt den Wert von „value“ zurück.
Hinweis: Getter -Funktion für die Eigenschaft „value“.
Siehe auch „ setValue()“.
bool QSqlField::operator!=(const QSqlField &other) const
Gibt „ true “ zurück, wenn das Feld nicht mit „ other “ übereinstimmt; andernfalls wird „false“ zurückgegeben.
QSqlField &QSqlField::operator=(const QSqlField &other)
Setzt das Feld auf den Wert „ other “.
bool QSqlField::operator==(const QSqlField &other) const
Gibt „ true “ zurück, wenn das Feld gleich „ other “ ist; andernfalls wird „false“ zurückgegeben.
© 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.