QSqlRecord Class
QSqlRecord クラスは、データベースのレコードをカプセル化します。詳細...
| ヘッダー: | #include <QSqlRecord> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Sql) target_link_libraries(mytarget PRIVATE Qt6::Sql) |
| qmake: | QT += sql |
| 継承元: |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QSqlRecord は、データベースクラスおよび暗黙的に共有されるクラスの一部です。
パブリック関数
| QSqlRecord() | |
| QSqlRecord(const QSqlRecord &other) | |
(since 6.6) | QSqlRecord(QSqlRecord &&other) |
| ~QSqlRecord() | |
| void | append(const QSqlField &field) |
| void | clear() |
| void | clearValues() |
| bool | contains(QAnyStringView name) const |
| int | count() const |
| QSqlField | field(int index) const |
| QSqlField | field(QAnyStringView name) const |
| QString | fieldName(int index) const |
| int | indexOf(QAnyStringView name) const |
| void | insert(int pos, const QSqlField &field) |
| bool | isEmpty() const |
| bool | isGenerated(int index) const |
| bool | isGenerated(QAnyStringView name) const |
| bool | isNull(int index) const |
| bool | isNull(QAnyStringView name) const |
| QSqlRecord | keyValues(const QSqlRecord &keyFields) const |
| void | remove(int pos) |
| void | replace(int pos, const QSqlField &field) |
| void | setGenerated(QAnyStringView name, bool generated) |
| void | setGenerated(int index, bool generated) |
| void | setNull(int index) |
| void | setNull(QAnyStringView name) |
| void | setValue(int index, const QVariant &val) |
| void | setValue(QAnyStringView name, const QVariant &val) |
(since 6.6) void | swap(QSqlRecord &other) |
| QVariant | value(int index) const |
| QVariant | value(QAnyStringView name) const |
| bool | operator!=(const QSqlRecord &other) const |
(since 6.6) QSqlRecord & | operator=(QSqlRecord &&other) |
| QSqlRecord & | operator=(const QSqlRecord &other) |
| bool | operator==(const QSqlRecord &other) const |
詳細な説明
QSqlRecord クラスは、データベースレコード(通常はデータベース内のテーブルまたはビューの行)の機能と特性をカプセル化しています。QSqlRecord は、フィールドの追加や削除、およびフィールド値の設定や取得をサポートしています。
レコードのフィールドの値は、setValue() を使用して名前または位置で設定できます。フィールドを null に設定する場合は、setNull() を使用します。名前でフィールドの位置を検索するにはindexOf() を使用し、特定の位置にあるフィールドの名前を検索するにはfieldName() を使用します。field() を使用して、指定されたフィールドのQSqlField オブジェクトを取得します。contains() を使用すると、レコードに特定のフィールド名が含まれているかどうかを確認できます。
データベース上で実行されるクエリが生成される際、isGenerated()がtrueとなるフィールドのみが、生成されるSQLに含まれます。
レコードのフィールドは、append() またはinsert() を使用して追加したり、replace() を使用して置換したり、remove() を使用して削除したりすることができます。clear() を使用すると、すべてのフィールドを削除できます。フィールドの数はcount() によって返されます。clearValues() を使用すると、すべてのフィールドの値をクリア(null)にすることができます。
QSqlField およびQSqlQuery::record()も参照してください 。
メンバ関数のドキュメント
QSqlRecord::QSqlRecord()
空のレコードを作成します。
isEmpty()、append()、およびinsert()も参照してください 。
QSqlRecord::QSqlRecord(const QSqlRecord &other)
other のコピーを作成します。
QSqlRecord は暗黙的に共有されます。つまり、レコードのコピーを定数時間で作成できます。
[constexpr noexcept default, since 6.6] QSqlRecord::QSqlRecord(QSqlRecord &&other)
other から新しい QSqlRecord を移動生成します。
注:移動元のオブジェクト `other `は 、部分的に形成された状態になります。この状態では、有効な操作は破棄と新しい値の代入のみです。
この関数は Qt 6.6 で導入されました。
[noexcept] QSqlRecord::~QSqlRecord()
オブジェクトを破棄し、割り当てられていたリソースをすべて解放します。
void QSqlRecord::append(const QSqlField &field)
レコードの末尾に、フィールド「field 」のコピーを追加します。
insert()、replace()、およびremove()も参照してください 。
void QSqlRecord::clear()
レコードのすべてのフィールドを削除します。
clearValues() およびisEmpty()も参照してください 。
void QSqlRecord::clearValues()
レコード内のすべてのフィールドの値をクリアし、各フィールドをNULLに設定します。
setValue()も参照してください 。
bool QSqlRecord::contains(QAnyStringView name) const
レコードに「name 」というフィールドが存在する場合はtrue を返し、そうでない場合はfalse を返します。
注: Qt 6.8 以前のバージョンでは 、この関数はQAnyStringView ではなくQString を受け取っていました。
int QSqlRecord::count() const
レコード内のフィールド数を返します。
isEmpty()も参照してください 。
QSqlField QSqlRecord::field(int index) const
位置index にあるフィールドを返します。index が範囲外の場合、関数はデフォルト構築された値を返します。
QSqlField QSqlRecord::field(QAnyStringView name) const
name という名前のフィールドを返します。name という名前のフィールドが見つからない場合、この関数はデフォルトコンストラクタで生成された値を返します。
注: Qt 6.8 以前のバージョンでは 、この関数はQAnyStringView ではなくQString を受け取っていました。
これはオーバーロードされた関数です。
QString QSqlRecord::fieldName(int index) const
位置index にあるフィールド名を返します。そのフィールドが存在しない場合は、空の文字列が返されます。
indexOf()も参照してください 。
int QSqlRecord::indexOf(QAnyStringView name) const
レコード内の「name 」というフィールドの位置を返します。見つからない場合は-1を返します。フィールド名の大文字小文字は区別されません。一致するフィールドが複数ある場合は、最初のものが返されます。
注: Qt 6.8 以前のバージョンでは 、この関数は `QString` を受け取り、`QAnyStringView` は受け付けませんでした。
fieldName()も参照してください 。
void QSqlRecord::insert(int pos, const QSqlField &field)
レコード内のpos の位置に、フィールドfield を挿入します。
append()、replace()、およびremove()も参照してください 。
bool QSqlRecord::isEmpty() const
レコードにフィールドがない場合は `true ` を返し、それ以外の場合は `false` を返します。
append()、insert()、およびclear()も参照してください 。
bool QSqlRecord::isGenerated(int index) const
レコードのindex の位置にフィールドが存在し、そのフィールドが生成される場合(デフォルト)、true を返します。それ以外の場合は、false を返します。
setGenerated()も参照してください 。
bool QSqlRecord::isGenerated(QAnyStringView name) const
レコードに「name 」というフィールドがあり、このフィールドが生成される場合(デフォルト)、true を返します。それ以外の場合は、false を返します。
注: Qt 6.8以前のバージョンでは 、この関数の引数は `QString` であり、`QAnyStringView` ではありませんでした。
これはオーバーロードされた関数です。
setGenerated()も参照してください 。
bool QSqlRecord::isNull(int index) const
フィールド `index ` が `null` であるか、位置 `index` にフィールドが存在しない場合は `true ` を返します。それ以外の場合は `false` を返します。
setNull()も参照してください 。
bool QSqlRecord::isNull(QAnyStringView name) const
name という名前のフィールドが null であるか、name という名前のフィールドが存在しない場合は、true を返します。それ以外の場合は、false を返します。
注: Qt 6.8 以前のバージョンでは 、この関数の引数はQAnyStringView ではなくQString でした。
これはオーバーロードされた関数です。
setNull()も参照してください 。
QSqlRecord QSqlRecord::keyValues(const QSqlRecord &keyFields) const
keyFields に定義されているフィールドを含むレコードを返し、各フィールドはフィールド名に基づいて対応する値に設定されます。
void QSqlRecord::remove(int pos)
位置pos にあるフィールドを削除します。pos が範囲外の場合、何も起こりません。
append()、insert()、およびreplace()も参照してください 。
void QSqlRecord::replace(int pos, const QSqlField &field)
位置pos にあるフィールドを、指定されたfield で置き換えます。pos が範囲外の場合、何も起こりません。
append()、insert()、およびremove()も参照してください 。
void QSqlRecord::setGenerated(QAnyStringView name, bool generated)
name というフィールドの生成フラグをgenerated に設定します。このフィールドが存在しない場合は、何も起こりません。たとえば、QSqlQueryModel によって生成されるSQLには、generated がtrueに設定されているフィールドのみが含まれます。
注: Qt 6.8以前のバージョンでは 、この関数は `QString` を受け取り、`QAnyStringView` は受け取りませんでした。
isGenerated()も参照してください 。
void QSqlRecord::setGenerated(int index, bool generated)
フィールド「index 」の生成されたフラグを「generated 」に設定します。
isGenerated()も参照してください 。
void QSqlRecord::setNull(int index)
フィールド「index 」の値をnullに設定します。このフィールドが存在しない場合は、何も起こりません。
isNull() およびsetValue()も参照してください 。
void QSqlRecord::setNull(QAnyStringView name)
name というフィールドの値を null に設定します。このフィールドが存在しない場合は、何も起こりません。
注: Qt 6.8以前のバージョンでは 、この関数の引数は `QString` であり、`QAnyStringView` ではありませんでした。
これはオーバーロードされた関数です。
void QSqlRecord::setValue(int index, const QVariant &val)
位置index にあるフィールドの値をval に設定します。そのフィールドが存在しない場合は、何も起こりません。
value() およびsetNull()も参照してください 。
void QSqlRecord::setValue(QAnyStringView name, const QVariant &val)
name というフィールドの値をval に設定します。このフィールドが存在しない場合は、何も起こりません。
注: Qt 6.8以前のバージョンでは 、この関数の引数は `QString` であり、`QAnyStringView` ではありませんでした。
これはオーバーロードされた関数です。
setNull()も参照してください 。
[noexcept, since 6.6] void QSqlRecord::swap(QSqlRecord &other)
このSQLレコードをother と入れ替えます。この操作は非常に高速で、失敗することはありません。
この関数は Qt 6.6 で導入されました。
QVariant QSqlRecord::value(int index) const
レコード内の位置index にあるフィールドの値を返します。index が範囲外の場合、無効なQVariant が返されます。
setValue()、fieldName()、およびisNull()も参照してください 。
QVariant QSqlRecord::value(QAnyStringView name) const
レコード内のname というフィールドの値を返します。name というフィールドが存在しない場合、無効なバリアントが返されます。
注: Qt 6.8 以前のバージョンでは 、この関数は `QAnyStringView` ではなく `QString` を受け取っていました。
これはオーバーロードされた関数です。
indexOf() およびisNull()も参照してください 。
bool QSqlRecord::operator!=(const QSqlRecord &other) const
このオブジェクトが `other` と同一でない場合は `true ` を返し、同一の場合は `false` を返します。
operator==()も参照してください 。
[noexcept, since 6.6] QSqlRecord &QSqlRecord::operator=(QSqlRecord &&other)
other をこのQSqlRecord インスタンスに割り当てます。
注: 移動元のオブジェクト other は 、部分的に形成された状態になります。この状態では、有効な操作は破棄と新しい値への代入のみです。
この関数は Qt 6.6 で導入されました。
QSqlRecord &QSqlRecord::operator=(const QSqlRecord &other)
レコードをother と同じ値に設定します。
QSqlRecord は暗黙的に共有されます。つまり、レコードのコピーを定数時間で作成できます。
bool QSqlRecord::operator==(const QSqlRecord &other) const
このオブジェクトが `other ` と同一である場合(つまり、同じ順序で同じフィールドを持つ場合)、true を返します。それ以外の場合は、false を返します。
operator!=()も参照してください 。
© 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.