QSqlField Class
QSqlField クラスは、SQL データベース・テーブルおよびビューのフィールドを操作します。詳細...
ヘッダ | #include <QSqlField> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS Sql) target_link_libraries(mytarget PRIVATE Qt6::Sql) |
qmake: | QT += sql |
- 継承メンバを含む全メンバのリスト
- 非推奨メンバ
- QSqlField はデータベースクラスおよび暗黙的に共有されるクラスの一部です。
パブリック型
enum | RequiredStatus { Required, Optional, Unknown } |
プロパティ
|
パブリック機能
(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 |
詳細説明
QSqlField は、データ型やカラム名など、データベーステーブルまたはビュー内の単一のカラムの特性を表します。フィールドにはデータベースカラムの値も含まれ、表示または変更することができます。
フィールド・データの値は QVariants として格納されます。互換性のないデータ型の使用は許可されません。例えば
ただし、フィールドは可能な限り、特定のデータ型をフィールドのデータ型にキャストしようとします:
QSqlField field("age", QMetaType::fromType<int>()); field.setValue(QString("123")); // casts QString to int
QSqlField オブジェクトがアプリケーションコードで明示的に作成されることはほとんどありません。それらは通常、すでにフィールドのリストを含むQSqlRecordを介して間接的にアクセスされます。例えば
QSqlQuery query; ... QSqlRecord record = query.record(); QSqlField field = record.field("country");
QSqlField オブジェクトはフィールドに関するメタデータを提供することができます。たとえば、name()、variant type()、length()、precision()、defaultValue()、typeID()、requiredStatus()、isGenerated()、isReadOnly()などです。フィールドのデータは、isNull() かどうかをチェックし、value() を取得することができます。編集時には、setValue() でデータを設定するか、clear() で NULL を設定します。
QSqlRecordも参照 。
メンバ型ドキュメント
enum QSqlField::RequiredStatus
フィールドが必須か任意かを指定します。
定数 | 値 | 説明 |
---|---|---|
QSqlField::Required | 1 | フィールドはレコード挿入時に指定する必要があります。 |
QSqlField::Optional | 0 | レコードの挿入時にフィールドを指定する必要はありません。 |
QSqlField::Unknown | -1 | データベース・ドライバはフィールドが必須かオプションかを判断できませんでした。 |
requiredStatusも参照してください 。
プロパティのドキュメント
[since 6.8]
autoValue : bool
値がデータベースによって自動生成される場合、例えば自動インクリメントの主キー値の場合、この値はtrue
になります。
注: ODBC ドライバを使用する場合、ODBC API の制限により、isAutoValue()
フィールドは、SELECT
クエリを実行して取得したQSqlRecord の結果のQSqlField にのみ入力されます。QSqlDatabase::record() またはQSqlDatabase::primaryIndex() から返されたQSqlRecord の結果のQSqlField では、false
です。
このプロパティは Qt 6.8 で導入されました。
アクセス関数:
bool | isAutoValue() const |
void | setAutoValue(bool autoVal) |
[since 6.8]
defaultValue : QVariant
このプロパティは、このフィールドのデフォルト値を保持します。一部のデータベース・ドライバのみがこのプロパティをサポートしています。現在のところ、SQLite、PostgreSQL、Oracle、MySQL/MariaDB です。
このプロパティは Qt 6.8 で導入されました。
アクセス関数:
QVariant | defaultValue() const |
void | setDefaultValue(const QVariant &value) |
[since 6.8]
generated : bool
このプロパティは、生成された状態を保持します。generated がfalse
の場合、このフィールドに対して SQL は生成されません。それ以外の場合、QSqlQueryModel やQSqlTableModel などの Qt クラスがこのフィールドに対して SQL を生成します。
このプロパティは Qt 6.8 で導入されました。
アクセス関数:
bool | isGenerated() const |
void | setGenerated(bool gen) |
[since 6.8]
length : int
このプロパティはフィールドの長さを保持する。
値が負の場合、その情報はデータベースから利用できないことを意味します。文字列の場合、これは文字列が保持できる最大文字数です。
このプロパティは Qt 6.8 で導入されました。
アクセス関数:
[since 6.8]
metaType : QMetaType
このプロパティは、データベースに格納されているフィールドの型を保持します。long int や double に格納するには大きすぎる数値は、精度の低下を防ぐため、通常は文字列として格納されます。
このプロパティは Qt 6.8 で導入されました。
アクセス関数:
QMetaType | metaType() const |
void | setMetaType(QMetaType type) |
QSqlDatabase::numericalPrecisionPolicyも参照して ください。
name : QString
このプロパティはフィールド名を保持する。これはカラム名またはユーザが指定したエイリアスになります。
アクセス関数:
[since 6.8]
precision : int
このプロパティはフィールドの精度を保持する。
返される値が負の場合、その情報はデータベースから利用できないことを意味します。
このプロパティは Qt 6.8 で導入されました。
アクセス関数:
int | precision() const |
void | setPrecision(int precision) |
[since 6.8]
readOnly : bool
このプロパティがtrue
の場合、このQSqlField を変更することはできない。読み取り専用フィールドは、setValue() で値を設定したり、clear() で NULL にクリアすることはできません。
このプロパティは Qt 6.8 で導入されました。
アクセス関数:
bool | isReadOnly() const |
void | setReadOnly(bool readOnly) |
[since 6.8]
requiredStatus : RequiredStatus
このプロパティはフィールドのRequiredStatus 。必須フィールドに値がない場合、INSERT
は失敗します。
このプロパティは Qt 6.8 で導入されました。
アクセス関数:
QSqlField::RequiredStatus | requiredStatus() const |
void | setRequiredStatus(QSqlField::RequiredStatus required) |
RequiredStatusも参照してください 。
[since 6.8]
tableName : QString
このプロパティはフィールドの tableName を保持します。
注意: QPSQL ドライバを使用する場合、libpq ライブラリの制限により、tableName()
フィールドは、フォワードのみのクエリのQSqlQuery::record() によって取得されたQSqlRecord の結果のQSqlField には入力されません。
このプロパティは Qt 6.8 で導入されました。
アクセス関数:
QString | tableName() const |
void | setTableName(const QString &tableName) |
[since 6.8]
value : QVariant
このプロパティは、value を保持する。QVariant
value を読み取り専用のQSqlField に設定することは、no-op である。value のデータ型がフィールドの現在のデータ型と異なる場合、適切な型へのキャストが試みられる。これにより、QString を整数データ型に代入する場合など、フィールドのデータ型が保持される。
値を NULL に設定するには、clear() を使用します。
このプロパティは Qt 6.8 で導入されました。
アクセス関数:
メンバ関数のドキュメント
[explicit, since 6.0]
QSqlField::QSqlField(const QString &fieldName = QString(), QMetaType type = QMetaType(), const QString &table = QString())
これはオーバーロードされた関数である。
table にtype 型のfieldName という空のフィールドを構築します。
この関数は Qt 6.0 で導入されました。
QSqlField::QSqlField(const QSqlField &other)
other のコピーを作成する。
[noexcept]
QSqlField::~QSqlField()
オブジェクトを破棄し、割り当てられたリソースを解放する。
void QSqlField::clear()
フィールドの値をクリアし、NULLに設定する。フィールドが読み取り専用の場合は何も起こらない。
QVariant QSqlField::defaultValue() const
defaultValueの値を設定します。
注: defaultValue プロパティのゲッター関数です。
setDefaultValue()も参照してください 。
bool QSqlField::isAutoValue() const
autoValue の値を返す。
注: プロパティのゲッター関数autoValue 。
bool QSqlField::isGenerated() const
generated の値を返す。
注: プロパティのゲッター関数generated 。
bool QSqlField::isNull() const
フィールドの値が NULL の場合はtrue
を返し、そうでない場合は false を返します。
valueも参照 。
bool QSqlField::isReadOnly() const
readOnly の値を返す。
注: プロパティのゲッター関数readOnly 。
bool QSqlField::isValid() const
フィールドのバリアントタイプが有効な場合はtrue
を返し、そうでない場合はfalse
を返す。
int QSqlField::length() const
length の値を返す。
備考: プロパティ length のゲッター関数。
setLength()も参照してください 。
QMetaType QSqlField::metaType() const
metaType の値を返す。
メモ: プロパティ metaType のゲッター関数。
setMetaType()も参照 。
QString QSqlField::name() const
name の値を返す。
備考: プロパティ name のゲッター関数。
setName()も参照してください 。
int QSqlField::precision() const
precision の値を返す。
注: プロパティ precision のゲッター関数。
setPrecision()も参照 。
QSqlField::RequiredStatus QSqlField::requiredStatus() const
requiredStatus の値を返す。
注: requiredStatus プロパティのゲッター関数。
setRequiredStatus()も参照してください 。
void QSqlField::setAutoValue(bool autoVal)
autoValue をautoVal に設定する。
注: プロパティautoValue に対するセッター関数。
isAutoValue()も参照してください 。
void QSqlField::setDefaultValue(const QVariant &value)
defaultValue をvalue に設定する。
注: プロパティdefaultValue に対するセッター関数。
defaultValue()も参照してください 。
void QSqlField::setGenerated(bool gen)
generated をgen に設定する。
注: プロパティgenerated に対するセッター関数。
isGenerated()も参照してください 。
void QSqlField::setLength(int fieldLength)
length をfieldLength に設定する。
注: プロパティlength に対するセッター関数。
length()も参照してください 。
void QSqlField::setMetaType(QMetaType type)
metaType をtype に設定する。
注: プロパティmetaType に対するセッター関数。
metaType()も参照してください 。
void QSqlField::setName(const QString &name)
name をname に設定する。
注: プロパティname に対するセッター関数。
name()も参照してください 。
void QSqlField::setPrecision(int precision)
precision をprecision に設定する。
注: プロパティprecision に対するセッター関数。
precision()も参照してください 。
void QSqlField::setReadOnly(bool readOnly)
readOnly をreadOnly に設定する。
注: プロパティreadOnly に対するセッター関数。
isReadOnly()も参照してください 。
void QSqlField::setRequired(bool required)
このフィールドの必須ステータスを、required が true の場合はRequired に設定し、そうでない場合はOptional に設定する。
requiredStatusも参照 。
void QSqlField::setRequiredStatus(QSqlField::RequiredStatus required)
requiredStatus をrequired に設定する。
注: プロパティrequiredStatus に対するセッター関数。
requiredStatus()も参照してください 。
void QSqlField::setTableName(const QString &tableName)
tableName をtableName に設定する。
注: プロパティtableName に対するセッター関数。
tableName()も参照してください 。
void QSqlField::setValue(const QVariant &value)
value をvalue に設定する。
注: プロパティvalue に対するセッター関数。
value()も参照してください 。
[noexcept, since 6.6]
void QSqlField::swap(QSqlField &other)
このフィールドをother と入れ替える。この操作は非常に高速で、失敗することはありません。
この関数は Qt 6.6 で導入されました。
QString QSqlField::tableName() const
tableName を返します。
注: プロパティ tableName のゲッター関数です。
setTableName()も参照してください 。
QVariant QSqlField::value() const
valueの値を返す。
備考: プロパティ値のゲッター関数。
setValue()も参照してください 。
bool QSqlField::operator!=(const QSqlField &other) const
フィールドがother と等しくない場合はtrue
を返し、そうでない場合は false を返す。
QSqlField &QSqlField::operator=(const QSqlField &other)
フィールドをother に等しくする。
bool QSqlField::operator==(const QSqlField &other) const
フィールドがother と等しければtrue
を返し、そうでなければ false を返す。
© 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.