QSqlField Class
Die Klasse QSqlField manipuliert die Felder in SQL-Datenbanktabellen und Views. Mehr...
Kopfzeile: | #include <QSqlField> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Sql) target_link_libraries(mytarget PRIVATE Qt6::Sql) |
qmake: | QT += sql |
- Liste aller Mitglieder, einschließlich vererbter Mitglieder
- Veraltete Mitglieder
- QSqlField ist Teil von Database Classes und Implicitly Shared Classes.
Ö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() | |
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 |
Detaillierte Beschreibung
QSqlField repräsentiert die Eigenschaften einer einzelnen Spalte in einer Datenbanktabelle oder einem View, wie z.B. den Datentyp und den Spaltennamen. Ein Feld enthält auch den Wert der Datenbankspalte, der angezeigt oder geändert werden kann.
Felddatenwerte werden als QVarianten gespeichert. Die Verwendung eines inkompatiblen Typs ist nicht erlaubt. Ein Beispiel:
Das Feld wird jedoch versuchen, bestimmte Datentypen in den Felddatentyp umzuwandeln, wenn dies möglich ist:
QSqlField field("age", QMetaType::fromType<int>()); field.setValue(QString("123")); // casts QString to int
QSqlField-Objekte werden selten explizit im Anwendungscode erstellt. Auf sie wird normalerweise indirekt über QSqlRecordzugegriffen, das bereits eine Liste von Feldern enthält. Ein Beispiel:
QSqlQuery query; ... QSqlRecord record = query.record(); QSqlField field = record.field("country");
Ein QSqlField-Objekt kann einige Metadaten über das Feld bereitstellen, zum Beispiel seine name(), variant type(), length(), precision(), defaultValue(), typeID() und seine requiredStatus(), isGenerated() und isReadOnly(). Die Daten des Feldes können überprüft werden, um zu sehen, ob sie isNull() und value() abgerufen werden. Beim Bearbeiten können die Daten mit setValue() gesetzt oder mit clear() auf NULL gesetzt werden.
Siehe auch QSqlRecord.
Dokumentation der Mitgliedstypen
enum QSqlField::RequiredStatus
Gibt an, ob das Feld erforderlich oder optional 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 erforderlich oder optional ist. |
Siehe auch requiredStatus.
Eigenschaft Dokumentation
[since 6.8]
autoValue : bool
Wenn der Wert von der Datenbank automatisch generiert wird, z. B. automatisch inkrementierende Primärschlüsselwerte, lautet dieser Wert true
.
Hinweis: Bei Verwendung des ODBC-Treibers wird das Feld isAutoValue()
aufgrund von Einschränkungen in der ODBC-API nur in einem QSqlField ausgefüllt, das aus einem QSqlRecord resultiert, das durch die Ausführung einer SELECT
-Abfrage erhalten wurde. Es ist false
in einer QSqlField, die aus einer QSqlRecord resultiert, die von QSqlDatabase::record() oder QSqlDatabase::primaryIndex() zurückgegeben wurde.
Diese Eigenschaft 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 Eigenschaft 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 false
ist, wird kein SQL für dieses Feld generiert; andernfalls werden Qt-Klassen wie QSqlQueryModel und QSqlTableModel SQL für dieses Feld generieren.
Diese Eigenschaft 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 nicht in der Datenbank verfügbar ist. Für Strings ist dies die maximale Anzahl von Zeichen, die der String enthalten kann; die Bedeutung variiert für andere Typen.
Diese Eigenschaft wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
[since 6.8]
metaType : QMetaType
Diese Eigenschaft enthält den Typ des Feldes, wie er in der Datenbank gespeichert ist. Beachten Sie, dass der tatsächliche Wert einen anderen Typ haben kann. Numerische Werte, die zu groß sind, um sie in einem long int oder double zu speichern, werden normalerweise als Strings gespeichert, um Präzisionsverluste zu vermeiden.
Diese Eigenschaft 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. Dies kann der Spaltenname oder ein vom Benutzer vergebener Alias sein.
Zugriffsfunktionen:
[since 6.8]
precision : int
Diese Eigenschaft enthält die Genauigkeit des Feldes; sie ist nur für numerische Typen sinnvoll.
Wenn der zurückgegebene Wert negativ ist, bedeutet dies, dass die Information nicht in der Datenbank verfügbar ist.
Diese Eigenschaft wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
int | precision() const |
void | setPrecision(int precision) |
[since 6.8]
readOnly : bool
Wenn diese Eigenschaft true
ist, kann QSqlField nicht geändert werden. Der Wert eines schreibgeschützten Feldes kann nicht mit setValue() gesetzt werden und kann nicht mit clear() auf NULL zurückgesetzt werden.
Diese Eigenschaft 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. Eine INSERT
wird fehlschlagen, wenn ein erforderliches Feld keinen Wert hat.
Diese Eigenschaft 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 Tabellennamen des Feldes.
Hinweis: Bei Verwendung des QPSQL-Treibers wird aufgrund von Einschränkungen in der libpq-Bibliothek das Feld tableName()
nicht in einer QSqlField ausgefüllt, die aus einer QSqlRecord resultiert, die durch QSqlQuery::record() einer reinen Vorwärtsabfrage erhalten wurde.
Diese Eigenschaft 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 die value als eine QVariant
Das Setzen von value auf ein schreibgeschütztes QSqlField ist ein No-op. Wenn der Datentyp von value vom aktuellen Datentyp des Feldes abweicht, wird versucht, ihn auf den richtigen Typ zu übertragen. Dadurch bleibt der Datentyp des Feldes im Falle einer Zuweisung erhalten, z. B. ein QString an einen Integer-Datentyp.
Um den Wert auf NULL zu setzen, verwenden Sie clear().
Diese Eigenschaft wurde in Qt 6.8 eingeführt.
Zugriffsfunktionen:
Dokumentation der Mitgliedsfunktionen
[explicit, since 6.0]
QSqlField::QSqlField(const QString &fieldName = QString(), QMetaType type = QMetaType(), const QString &table = QString())
Dies ist eine überladene Funktion.
Konstruiert ein leeres Feld namens fieldName vom Typ type in table.
Diese Funktion wurde in Qt 6.0 eingeführt.
QSqlField::QSqlField(const QSqlField &other)
Konstruiert eine Kopie von other.
[noexcept]
QSqlField::~QSqlField()
Zerstört das Objekt und gibt alle zugewiesenen Ressourcen frei.
void QSqlField::clear()
Löscht den Wert des Feldes und setzt ihn auf NULL. Wenn das Feld schreibgeschützt ist, 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 setzt er ihn auf Optional.
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 nie 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 ungleich other ist; andernfalls wird false zurückgegeben.
QSqlField &QSqlField::operator=(const QSqlField &other)
Setzt das Feld gleich other.
bool QSqlField::operator==(const QSqlField &other) const
Gibt true
zurück, wenn das Feld gleich other ist; andernfalls wird false zurückgegeben.
© 2025 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.