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(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 は、データベーステーブルまたはビュー内の単一の列の特性(データ型や列名など)を表します。また、フィールドにはデータベース列の値も含まれており、この値は表示または変更することができます。
フィールドのデータ値は QVariant として格納されます。互換性のない型を使用することは許可されていません。例:
ただし、フィールドは可能な場合、特定のデータ型をフィールドのデータ型にキャストしようとします:
QSqlField field("age", QMetaType::fromType<int>());
field.setValue(QString("123")); // casts QString to intQSqlField オブジェクトがアプリケーションコード内で明示的に作成されることはほとんどありません。通常、すでにフィールドのリストを含むQSqlRecordを通じて間接的にアクセスされます。例:
QSqlQuery query;
...
QSqlRecord record = query.record();
QSqlField field = record.field("country");QSqlField オブジェクトは、フィールドに関するいくつかのメタデータを提供できます。例えば、name()、variantmetaType()、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 となります。
注: データベースに新しいレコードを書き込む際 、autoValue フィールドには、レコードがデータベースに送信された後にのみ、データベースによって生成された新しい値が格納されます。 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 ライブラリの制限により、フォワードオンリークエリのQSqlQuery::record() によって取得されたQSqlRecord から生成されるQSqlField では、tableName() フィールドに値が設定されません。
この列挙型は Qt 6.8 で導入されました。
アクセス関数:
| QString | tableName() const |
| void | setTableName(const QString &tableName) |
[since 6.8] value : QVariant
このプロパティは、value をQVariant
value を読み取り専用のQSqlField に設定しても、何の効果もありません。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 default] QSqlField::QSqlField(QSqlField &&other)
QSqlField のインスタンスをMoveコンストラクタで生成します。
[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 の値を返します。
注: プロパティ `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` を返します。
© 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.