QSqlField Class
QSqlField クラスは、SQL データベース・テーブルおよびビューのフィールドを操作します。詳細...
Header: | #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 ライブラリの制限により、前方のみのクエリの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]
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 の値を返す。
注釈 : 精度プロパティのゲッター関数。
setPrecision() も参照 。
QSqlField::RequiredStatus QSqlField::requiredStatus() const
requiredStatus の値を返す。
注釈 requiredStatus プロパティのゲッター関数。
setRequiredStatus()も参照 。
void QSqlField::setAutoValue(bool autoVal)
autoValue をautoVal に設定する。
注釈: プロパティautoValue に対する Setter 関数。
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 を返します。
本ドキュメントに含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。