QSqlTableModel Class
QSqlTableModel クラスは、単一のデータベーステーブルに対して編集可能なデータモデルを提供します。詳細...
| ヘッダー: | #include <QSqlTableModel> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS Sql) target_link_libraries(mytarget PRIVATE Qt6::Sql) |
| qmake: | QT += sql |
| 継承元: | QSqlQueryModel |
| 継承元: |
- 継承されたメンバーを含むすべてのメンバーの一覧
- QSqlTableModel は、データベースクラスの一部です。
パブリック型
| enum | EditStrategy { OnFieldChange, OnRowChange, OnManualSubmit } |
パブリック関数
| QSqlTableModel(QObject *parent = nullptr, const QSqlDatabase &db = QSqlDatabase()) | |
| virtual | ~QSqlTableModel() |
| QSqlDatabase | database() const |
| QSqlTableModel::EditStrategy | editStrategy() const |
| int | fieldIndex(const QString &fieldName) const |
| QString | filter() const |
| bool | insertRecord(int row, const QSqlRecord &record) |
| bool | isDirty(const QModelIndex &index) const |
| bool | isDirty() const |
| QSqlIndex | primaryKey() const |
| QSqlRecord | record() const |
| QSqlRecord | record(int row) const |
| virtual void | revertRow(int row) |
| virtual void | setEditStrategy(QSqlTableModel::EditStrategy strategy) |
| virtual void | setFilter(const QString &filter) |
| bool | setRecord(int row, const QSqlRecord &values) |
| virtual void | setSort(int column, Qt::SortOrder order) |
| virtual void | setTable(const QString &tableName) |
| QString | tableName() const |
再実装されたパブリック関数
| virtual void | clear() override |
| virtual bool | clearItemData(const QModelIndex &index) override |
| virtual QVariant | data(const QModelIndex &index, int role = Qt::DisplayRole) const override |
| virtual Qt::ItemFlags | flags(const QModelIndex &index) const override |
| virtual QVariant | headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override |
| virtual bool | insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual bool | removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual bool | removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override |
| virtual int | rowCount(const QModelIndex &parent = QModelIndex()) const override |
| virtual bool | setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole) override |
| virtual void | sort(int column, Qt::SortOrder order) override |
パブリック・スロット
| virtual void | revert() override |
| void | revertAll() |
| virtual bool | select() |
| virtual bool | selectRow(int row) |
| virtual bool | submit() override |
| bool | submitAll() |
シグナル
| void | beforeDelete(int row) |
| void | beforeInsert(QSqlRecord &record) |
| void | beforeUpdate(int row, QSqlRecord &record) |
| void | primeInsert(int row, QSqlRecord &record) |
protected関数
| virtual bool | deleteRowFromTable(int row) |
| virtual bool | insertRowIntoTable(const QSqlRecord &values) |
| virtual QString | orderByClause() const |
| QSqlRecord | primaryValues(int row) const |
| virtual QString | selectStatement() const |
| void | setPrimaryKey(const QSqlIndex &key) |
| virtual bool | updateRowInTable(int row, const QSqlRecord &values) |
再実装された保護関数
| virtual QModelIndex | indexInQuery(const QModelIndex &item) const override |
詳細な説明
QSqlTableModelは、単一のテーブルからデータベースレコードを読み書きするための高レベルなインターフェースです。これは、より低レベルのQSqlQuery の上に構築されており、QTableView などのビュークラスにデータを提供するために使用できます。例:
QSqlTableModel *model = new QSqlTableModel;
model->setTable("employee");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
model->select();
model->setHeaderData(0, Qt::Horizontal, tr("Name"));
model->setHeaderData(1, Qt::Horizontal, tr("Salary"));
QTableView *view = new QTableView;
view->setModel(model);
view->hideColumn(0); // don't show the ID
view->show();SQLテーブルの名前と編集戦略を設定し、次にビューヘッダーに表示されるラベルを設定します。編集戦略は、ユーザーがビューで行った変更が実際にデータベースに反映されるタイミングを決定します。可能な値は、OnFieldChange 、OnRowChange 、およびOnManualSubmit です。
QSqlTableModel を使用すると、ビューにバインドすることなく、プログラムからデータベースにアクセスすることも可能です:
QSqlTableModel model;
model.setTable("employee");
model.select();
int salary = model.record(4).value("salary").toInt();上記のコードスニペットは、クエリ `SELECT * from employee` の結果セット内のレコード 4 から、salary フィールドを抽出しています。
setFilter() を使用してフィルタを設定したり、setSort() を使用して並べ替え順を変更したりすることが可能です。最後に、select() を呼び出して、モデルにデータを格納する必要があります。
tablemodelの例では、QTableView のデータソースとして QSqlTableModel を使用する方法を示しています。
QSqlTableModel は外部キーを直接サポートしていません。外部キーを解決したい場合は、QSqlRelationalTableModel およびQSqlRelationalDelegate を使用してください。
関連項目: QSqlRelationalTableModel 、QSqlQuery 、モデル/ビュープログラミング、テーブルモデルの例、およびキャッシュされたSQLテーブル。
メンバ型のドキュメント
enum QSqlTableModel::EditStrategy
この列挙型は、データベース内の値を編集する際にどの戦略を選択するかを指定するものです。
| 定数 | 値 | 説明 |
|---|---|---|
QSqlTableModel::OnFieldChange | 0 | モデルへのすべての変更は、データベースに即座に反映されます。 |
QSqlTableModel::OnRowChange | 1 | 行への変更は、ユーザーが別の行を選択したときに適用されます。 |
QSqlTableModel::OnManualSubmit | 2 | submitAll() またはrevertAll() が呼び出されるまで、すべての変更はモデルにキャッシュされます。 |
注:部分的にしか初期化されていない行がデータベースに挿入されるのを防ぐため、OnFieldChange は、新しく挿入された行に対してはOnRowChange と同様に動作します。
setEditStrategy()も参照してください 。
メンバ関数のドキュメント
[explicit] QSqlTableModel::QSqlTableModel(QObject *parent = nullptr, const QSqlDatabase &db = QSqlDatabase())
空の QSqlTableModel を作成し、親を `parent ` に、データベース接続を `db` に設定します。db が無効な場合、デフォルトのデータベース接続が使用されます。
デフォルトの編集戦略はOnRowChange です。
[virtual noexcept] QSqlTableModel::~QSqlTableModel()
オブジェクトを破棄し、割り当てられたリソースをすべて解放します。
[signal] void QSqlTableModel::beforeDelete(int row)
このシグナルは、現在アクティブなデータベーステーブルからrow が削除される前に、deleteRowFromTable()によって発火されます。
[signal] void QSqlTableModel::beforeInsert(QSqlRecord &record)
このシグナルは、現在アクティブなデータベーステーブルに新しい行が挿入される前に、insertRowIntoTable() によって発行されます。挿入されようとしている値はrecord に格納されており、挿入される前に変更することができます。
[signal] void QSqlTableModel::beforeUpdate(int row, QSqlRecord &record)
このシグナルは、updateRowInTable() によって、現在アクティブなデータベーステーブル内の `row ` が `record` の値で更新される前に発せられます。
なお、更新されるのは「生成済み」としてマークされた値のみです。「生成済み」フラグはQSqlRecord::setGenerated() で設定でき、QSqlRecord::isGenerated() で確認できます。
QSqlRecord::isGenerated()も参照してください 。
[override virtual] void QSqlTableModel::clear()
QSqlQueryModel::clear() を再実装します。
[override virtual] bool QSqlTableModel::clearItemData(const QModelIndex &index)
QAbstractItemModel::clearItemData(const QModelIndex &index) を再実装しています。
[override virtual] QVariant QSqlTableModel::data(const QModelIndex &index, int role = Qt::DisplayRole) const
QSqlQueryModel::data(const QModelIndex &item, int role) const を再実装します。
setData()も参照してください 。
QSqlDatabase QSqlTableModel::database() const
モデルのデータベース接続を取得します。
[virtual protected] bool QSqlTableModel::deleteRowFromTable(int row)
指定されたrow を、現在アクティブなデータベーステーブルから削除します。
これはデータベースに対して直接操作を行う低レベルなメソッドであり、直接呼び出してはなりません。値を削除するには、removeRow() またはremoveRows() を使用してください。データベースをいつ変更するかは、モデルの編集戦略に基づいてモデルが判断します。
行が削除された場合は `true ` を返し、そうでない場合は `false` を返します。
removeRow() およびremoveRows()も参照してください 。
QSqlTableModel::EditStrategy QSqlTableModel::editStrategy() const
現在の編集戦略を返します。
setEditStrategy()も参照してください 。
int QSqlTableModel::fieldIndex(const QString &fieldName) const
フィールド `fieldName` のインデックスを返します。モデルに該当するフィールドが存在しない場合は -1 を返します。
QString QSqlTableModel::filter() const
現在設定されているフィルタを返します。
setFilter() およびselect()も参照してください 。
[override virtual] Qt::ItemFlags QSqlTableModel::flags(const QModelIndex &index) const
QAbstractTableModel::flags(const QModelIndex &index) const を再実装します。
[override virtual] QVariant QSqlTableModel::headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const
QSqlQueryModel::headerData(int section, Qt::Orientation orientation, int role) const を再実装します。
[override virtual protected] QModelIndex QSqlTableModel::indexInQuery(const QModelIndex &item) const
QSqlQueryModel::indexInQuery(const QModelIndex &item) const を再実装します。
モデル内の指定された `item ` に対応する、データベースの結果セット内の値のインデックスを返します。
列や行の挿入、削除、移動が行われていない場合、戻り値はitem と同一になります。
item が範囲外の場合、またはitem が結果セット内の値を指していない場合は、無効なモデルインデックスを返します。
QSqlQueryModel::indexInQuery()も参照してください 。
bool QSqlTableModel::insertRecord(int row, const QSqlRecord &record)
位置row にrecord を挿入します。row が負の値の場合、レコードは末尾に追加されます。内部でinsertRows()およびsetRecord()を呼び出します。
レコードの挿入に成功した場合は `true ` を返し、失敗した場合は `false` を返します。
OnFieldChange およびOnRowChange に対しては、変更が即座に送信されます。失敗した場合、モデルに新しい行は残されません。
insertRows()、removeRows()、およびsetRecord()も参照してください 。
[virtual protected] bool QSqlTableModel::insertRowIntoTable(const QSqlRecord &values)
values の値を、現在アクティブなデータベーステーブルに挿入します。
これはデータベースに対して直接操作を行う低レベルなメソッドであり、直接呼び出してはなりません。値の挿入には、insertRow() およびsetData() を使用してください。データベースをいつ更新するかは、モデルの編集戦略に基づいて決定されます。
値の挿入に成功した場合は `true ` を返し、失敗した場合は `false` を返します。エラー情報は `lastError()` で取得できます。
lastError()、insertRow()、およびinsertRows()も参照してください 。
[override virtual] bool QSqlTableModel::insertRows(int row, int count, const QModelIndex &parent = QModelIndex())
QAbstractItemModel::insertRows(int row, int count, const QModelIndex &parent) を再実装します。
位置row にcount 個の空行を挿入します。このモデルは親子関係をサポートしていないため、parent は無効である必要があることに注意してください。
編集戦略OnFieldChange およびOnRowChange の場合、一度に挿入できる行は 1 行のみであり、モデルには他のキャッシュされた変更が含まれていてはなりません。
新しい行が追加されるたびに、primeInsert() シグナルが発信されます。新しい行をデフォルト値で初期化したい場合は、このシグナルに接続してください。
編集戦略にかかわらず、行は送信されません。
パラメータが範囲外であるか、行を挿入できない場合はfalse を返し、それ以外の場合はtrue を返します。
primeInsert() およびinsertRecord()も参照してください 。
bool QSqlTableModel::isDirty(const QModelIndex &index) const
インデックス `index ` の値が「ダーティ」である場合は `true ` を返し、そうでない場合は `false` を返します。ダーティな値とは、モデル内で変更されたものの、まだデータベースに書き込まれていない値のことです。
index が無効であるか、存在しない行を指している場合は、false が返されます。
bool QSqlTableModel::isDirty() const
モデルに、データベースへコミットされていない変更済みの値が含まれている場合は `true ` を返し、そうでない場合は `false` を返します。
これはオーバーロードされた関数です。
[virtual protected] QString QSqlTableModel::orderByClause() const
現在設定されているソート順に基づいて、SQLのORDER BY 句を返します。
setSort() およびselectStatement()も参照してください 。
QSqlIndex QSqlTableModel::primaryKey() const
現在のテーブルの主キーを返します。テーブルが設定されていない場合や主キーがない場合は、空のQSqlIndex を返します。
setTable()、setPrimaryKey()、およびQSqlDatabase::primaryIndex()も参照してください 。
[protected] QSqlRecord QSqlTableModel::primaryValues(int row) const
row に指定された値で、主キーセットに含まれるフィールドを持つレコードを返します。主キーが定義されていない場合、返されるレコードにはすべてのフィールドが含まれます。
primaryKey()も参照してください 。
[signal] void QSqlTableModel::primeInsert(int row, QSqlRecord &record)
このシグナルは、現在アクティブなデータベーステーブルの指定されたrow に対して挿入処理が開始された際、insertRows() によって発火します。record パラメータは(参照型であるため)書き込みが可能であり、例えば、一部のフィールドにデフォルト値を設定したり、フィールドの生成フラグを設定したりするために使用できます。 このシグナルを処理中は、setData() やsetRecord() などの他の手段を用いてレコードを編集しようとしないでください。
QSqlRecord QSqlTableModel::record() const
これはオーバーロードされた関数です。
フィールド名のみを含む空のレコードを返します。この関数は、レコードのフィールド名を取得するために使用できます。
setRecord() およびQSqlRecord::isEmpty()も参照してください 。
QSqlRecord QSqlTableModel::record(int row) const
モデル内のrow にあるレコードを返します。
row が有効な行のインデックスである場合、その行の値がレコードに設定されます。
モデルが初期化されていない場合は、空のレコードが返されます。
QSqlRecord::isEmpty()も参照してください 。
[override virtual] bool QSqlTableModel::removeColumns(int column, int count, const QModelIndex &parent = QModelIndex())
QSqlQueryModel::removeColumns(int column, int count, const QModelIndex &parent) の再実装。
parent モデルから、インデックスcolumn を起点としてcount 列を削除します。
列が正常に削除された場合は真を返し、そうでない場合は `false` を返します。
removeRows()も参照してください 。
[override virtual] bool QSqlTableModel::removeRows(int row, int count, const QModelIndex &parent = QModelIndex())
QAbstractItemModel::removeRows(int row, int count, const QModelIndex &parent) を再実装します。
row から始まるcount の行を削除します。このモデルは階層構造をサポートしていないため、parent は無効なモデルインデックスでなければなりません。
編集戦略が `OnManualSubmit` の場合、データベースからの行の削除は、`submitAll()` が呼び出されるまで遅延されます。
OnFieldChange およびOnRowChange の場合、一度に削除できる行は1行のみであり、かつ他の行にキャッシュされた変更がない場合に限られます。削除は直ちにデータベースに送信されます。モデルは、select()で更新されるまで、正常に削除された行の空白行を保持します。
削除に失敗した場合、その操作はモデル内で元に戻されません。アプリケーション側で再送信または取り消しを行う必要があります。
削除対象の範囲内にあり、挿入済みだがまだ正常に送信されていない行は、直ちにモデルから削除されます。
データベースから行が削除される前に、beforeDelete() シグナルが発行されます。
row < 0 または row + count >rowCount() の場合、何の処理も行われず、false が返されます。すべての行を削除できた場合はtrue を返し、そうでない場合はfalse を返します。詳細なデータベースのエラー情報は、lastError() を使用して取得できます。
removeColumns() およびinsertRows()も参照してください 。
[override virtual slot] void QSqlTableModel::revert()
QAbstractItemModel::revert() を再実装します。
この再実装されたスロットは、ユーザーが現在の行の編集をキャンセルした際に、アイテムのデリゲートによって呼び出されます。
モデルの戦略が `OnRowChange ` または `OnFieldChange` に設定されている場合、変更を元に戻します。戦略が `OnManualSubmit ` の場合は何も行いません。
OnManualSubmit 戦略の場合はrevertAll() を使用して保留中の変更をすべて元に戻し、revertRow() を使用して特定の行を元に戻します。
submit()、submitAll()、revertRow()、およびrevertAll()も参照してください 。
[slot] void QSqlTableModel::revertAll()
保留中の変更をすべて元に戻します。
revert()、revertRow()、およびsubmitAll()も参照してください 。
[virtual] void QSqlTableModel::revertRow(int row)
指定されたrow に対するすべての変更を元に戻します。
revert()、revertAll()、submit()、およびsubmitAll()も参照してください 。
[override virtual] int QSqlTableModel::rowCount(const QModelIndex &parent = QModelIndex()) const
QSqlQueryModel::rowCount(const QModelIndex &parent) const を再実装します。
[virtual slot] bool QSqlTableModel::select()
setTable() で設定されたテーブルから、指定されたフィルタおよびソート条件を用いてモデルにデータを格納し、成功した場合は `true ` を返します。失敗した場合は `false` を返します。
注: select()を呼び出すと 、未送信の変更はすべて元に戻され、挿入された列はすべて削除されます。
関連項目: setTable()、setFilter()、およびselectStatement()。
[virtual slot] bool QSqlTableModel::selectRow(int row)
モデル内の `row ` を、プライマリキーの値と一致するデータベーステーブルの行の値で更新します。プライマリキーがない場合は、すべての列の値が一致している必要があります。一致する行が見つからない場合、モデルには空の行が表示されます。
成功した場合は `true ` を返し、失敗した場合は `false` を返します。
select()も参照してください 。
[virtual protected] QString QSqlTableModel::selectStatement() const
モデルにデータを入力するために内部で使用される SQL ステートメント `SELECT ` を返します。このステートメントには、フィルタおよび `ORDER BY ` 句が含まれます。
filter() およびorderByClause()も参照してください 。
[override virtual] bool QSqlTableModel::setData(const QModelIndex &index, const QVariant &value, int role = Qt::EditRole)
QAbstractItemModel::setData(const QModelIndex &index, const QVariant &value, int role) を再実装します。
ロールrole に対する項目index のデータをvalue に設定します。
編集戦略OnFieldChange では、他のインデックスにキャッシュされた変更がない場合にのみ、インデックスに変更が反映されます。変更は即座にコミットされます。ただし、データベースにまだ挿入されていない行は自由に変更でき、自動的にコミットされることはありません。コミットされた変更は、エラーが発生しても元に戻されることはありません。
OnRowChange の場合、他の行にキャッシュされた変更がない場合にのみ、インデックスは変更を受け取ることができます。変更は自動的に送信されません。
value が現在の値と等しい場合、true を返します。ただし、その値はデータベースにコミットされません。
値が設定可能であれば `true ` を返し、エラー(例えば `index ` が範囲外の場合など)が発生した場合は `false` を返します。
ロールがQt::EditRole でない場合は、false を返します。EditRole 以外のロールのデータを設定するには、カスタムプロキシモデルを使用するか、QSqlTableModel をサブクラス化してください。
editStrategy()、data()、submit()、submitAll()、およびrevertRow()も参照してください 。
[virtual] void QSqlTableModel::setEditStrategy(QSqlTableModel::EditStrategy strategy)
データベース内の値を編集するための戦略を「strategy 」に設定します。
これにより、保留中の変更はすべて取り消されます。
editStrategy() およびrevertAll()も参照してください 。
[virtual] void QSqlTableModel::setFilter(const QString &filter)
現在のフィルターを「filter 」に設定します。
このフィルタは、キーワード `WHERE ` を含まない SQL の `WHERE ` 句です(例:name='Josephine') )。
モデルにすでにデータベースからのデータが格納されている場合、モデルは新しいフィルタを使用してそのデータを再選択します。そうでない場合、フィルタは次に `select()` が呼び出されたときに適用されます。
filter()、select()、selectStatement()、およびorderByClause()も参照してください 。
[protected] void QSqlTableModel::setPrimaryKey(const QSqlIndex &key)
サブクラスが主キーを `key` に設定できるようにする、プロテクトされたメソッド。
通常、setTable() を呼び出すたびに、主キーは自動的に設定されます。
primaryKey() およびQSqlDatabase::primaryIndex()も参照してください 。
bool QSqlTableModel::setRecord(int row, const QSqlRecord &values)
モデル内のrow にvalues を適用します。ソースフィールドとターゲットフィールドは、レコード内の位置ではなく、フィールド名に基づいてマッピングされます。
values で生成されたフラグは、データベースに変更が送信される際に、対応するフィールドが使用されるかどうかを判断するために保持される点に注意してください。デフォルトでは、QSqlRecord 内のすべてのフィールドに対してtrue に設定されています。values 内の任意の値について、変更をデータベースに保存するには、setGenerated (false)を使用してフラグをfalse に設定する必要があります。
編集戦略OnFieldChange およびOnRowChange の場合、他の行にキャッシュされた変更がない場合にのみ、その行に変更が反映されます。変更は即座に送信されます。送信された変更は、失敗しても元に戻されることはありません。
すべての値を設定できた場合はtrue を返し、そうでない場合は false を返します。
record() およびeditStrategy()も参照してください 。
[virtual] void QSqlTableModel::setSort(int column, Qt::SortOrder order)
column の並べ替え順序をorder に設定します。これは現在のデータには影響しません。新しい並べ替え順序でデータを更新するには、select() を呼び出してください。
sort()、select()、およびorderByClause()も参照してください 。
[virtual] void QSqlTableModel::setTable(const QString &tableName)
モデルが操作するデータベーステーブルをtableName に設定します。テーブルからデータを選択するのではなく、そのフィールド情報を取得します。
テーブルのデータをモデルに読み込むには、select() を呼び出します。
エラー情報は、lastError() で取得できます。
select()、setFilter()、およびlastError()も参照してください 。
[override virtual] void QSqlTableModel::sort(int column, Qt::SortOrder order)
QAbstractItemModel::sort(int column, Qt::SortOrder order) を再実装しています。
column に基づき、order のソート順でデータをソートします。これにより、データが即座に選択されます。モデルにデータを格納せずにソート順を設定するには、setSort() を使用してください。
setSort()、select()、およびorderByClause()も参照してください 。
[override virtual slot] bool QSqlTableModel::submit()
QAbstractItemModel::submit() を再実装します。
この再実装されたスロットは、ユーザーが現在の行の編集を停止した際に、アイテムデリゲートによって呼び出されます。
モデルの戦略が `OnRowChange ` または `OnFieldChange` に設定されている場合、現在編集中の行を送信します。戦略が `OnManualSubmit ` の場合は何もしません。
「OnManualSubmit 」戦略の場合、保留中の変更をすべて送信するには、submitAll() を使用してください。
成功した場合はtrue を返し、そうでない場合はfalse を返します。詳細なエラー情報を取得するには、lastError() を使用してください。
モデルは自動的に再読み込みされません。成功した場合、送信された行はデータベースから更新されます。
関連項目: revert()、revertRow()、submitAll()、revertAll()、およびlastError()。
[slot] bool QSqlTableModel::submitAll()
保留中の変更をすべて送信し、成功した場合は `true ` を返します。エラーが発生した場合は `false ` を返します。詳細なエラー情報は `lastError()` で取得できます。
OnManualSubmit モードでは、成功した場合、モデルが再読み込みされます。そのモデルを表示しているビューでは、選択内容がすべて失われます。
注:OnManualSubmit モードでは、submitAll() が失敗しても、すでに送信された変更はキャッシュから消去されません。これにより、データを失うことなくトランザクションをロールバックし、再送信することが可能になります。
revertAll() およびlastError()も参照してください 。
QString QSqlTableModel::tableName() const
現在選択されているテーブルの名前を返します。
[virtual protected] bool QSqlTableModel::updateRowInTable(int row, const QSqlRecord &values)
現在アクティブなデータベーステーブル内の指定されたrow を、指定されたvalues で更新します。成功した場合はtrue を返し、失敗した場合はfalse を返します。
これはデータベースに対して直接操作を行う低レベルなメソッドであり、直接呼び出してはなりません。値の更新にはsetData()を使用してください。データベースをいつ変更するかは、モデルの編集戦略に基づいて決定されます。
なお、generated-flag が設定されている値のみが更新される点に注意してください。generated-flag はQSqlRecord::setGenerated() で設定でき、QSqlRecord::isGenerated() で確認できます。
QSqlRecord::isGenerated() およびsetData()も参照してください 。
© 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.