QSqlField Class

QSqlField クラスは、SQL データベース・テーブルおよびビューのフィールドを操作します。詳細...

Header: #include <QSqlField>
CMake: find_package(Qt6 REQUIRED COMPONENTS Sql)
target_link_libraries(mytarget PRIVATE Qt6::Sql)
qmake: QT += sql

パブリック型

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(QPixmap());  // WRONG

ただし、フィールドは可能な限り、特定のデータ型をフィールドのデータ型にキャストしようとします:

    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::Required1レコードの挿入時にフィールドを指定する必要があります。
QSqlField::Optional0レコードの挿入時にフィールドを指定する必要はありません。
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

このプロパティは、生成された状態を保持します。generatedfalse の場合、このフィールドに対して SQL は生成されません。そうでない場合、QSqlQueryModelQSqlTableModel などの Qt クラスがこのフィールドに対して SQL を生成します。

このプロパティは Qt 6.8 で導入されました。

アクセス関数:

bool isGenerated() const
void setGenerated(bool gen)

[since 6.8] length : int

このプロパティは、フィールドの長さを保持します。

値が負の場合、その情報はデータベースから利用できないことを意味します。文字列の場合、これは文字列が保持できる最大文字数です。

このプロパティは Qt 6.8 で導入されました。

アクセス関数:

int length() const
void setLength(int fieldLength)

[since 6.8] metaType : QMetaType

このプロパティは、データベースに格納されているフィールドの型を保持します。long int や double に格納するには大きすぎる数値は、精度の低下を防ぐために、通常は文字列として格納されます。

このプロパティは Qt 6.8 で導入されました。

アクセス関数:

QMetaType metaType() const
void setMetaType(QMetaType type)

QSqlDatabase::numericalPrecisionPolicyも参照してください

name : QString

このプロパティはフィールドの名前を保持します。このプロパティはフィールドの名前を保持します。これはカラム名、またはユーザーが指定したエイリアスになります。

アクセス関数:

QString name() const
void setName(const QString &name)

[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

このプロパティは、valueQVariant

value を読み取り専用のQSqlField に設定することはできません。value のデータ型がフィールドの現在のデータ型と異なる場合、適切な型へのキャストが試みられます。これにより、QString を整数データ型に代入する場合など、フィールドのデータ型が保持される。

値を NULL に設定するには、clear() を使用します。

このプロパティは Qt 6.8 で導入されました。

アクセス関数:

QVariant value() const
void setValue(const QVariant &value)

メンバ関数ドキュメント

[explicit, since 6.0] QSqlField::QSqlField(const QString &fieldName = QString(), QMetaType type = QMetaType(), const QString &table = QString())

これはオーバーロードされた関数です。

tabletype 型の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)

autoValueautoVal に設定する。

注釈: プロパティautoValue に対する Setter 関数。

isAutoValue() も参照

void QSqlField::setDefaultValue(const QVariant &value)

defaultValuevalue に設定する。

注: プロパティdefaultValue に対するセッター関数。

defaultValue()も参照

void QSqlField::setGenerated(bool gen)

generatedgen に設定する。

注: プロパティgenerated に対するセッター関数。

isGenerated()も参照

void QSqlField::setLength(int fieldLength)

lengthfieldLength に設定する。

注: プロパティlength に対するセッター関数。

length()も参照

void QSqlField::setMetaType(QMetaType type)

metaTypetype に設定する。

注: プロパティmetaType に対するセッター関数。

metaType()も参照

void QSqlField::setName(const QString &name)

namename に設定する。

注: プロパティname に対するセッター関数。

name()も参照

void QSqlField::setPrecision(int precision)

precisionprecision に設定する。

注: プロパティprecision に対するセッター関数。

precision()も参照

void QSqlField::setReadOnly(bool readOnly)

readOnlyreadOnly に設定する。

注: プロパティreadOnly に対するセッター関数。

isReadOnly()も参照

void QSqlField::setRequired(bool required)

このフィールドの必須ステータスを、required が true の場合はRequired に設定し、そうでない場合はOptional に設定します。

requiredStatusも参照して ください。

void QSqlField::setRequiredStatus(QSqlField::RequiredStatus required)

requiredStatusrequired に設定する。

注釈: プロパティrequiredStatus に対するセッター関数。

requiredStatus()も参照

void QSqlField::setTableName(const QString &tableName)

tableNametableName に設定する。

注: プロパティtableName に対するセッター関数。

tableName()も参照

void QSqlField::setValue(const QVariant &value)

valuevalue に設定する。

注: プロパティ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.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。