25 Q_DECLARE_PRIVATE(QSqlTableModel)
26 Q_MOC_INCLUDE(<QtSql/qsqlrecord.h>)
29 enum EditStrategy {OnFieldChange, OnRowChange, OnManualSubmit};
31 explicit QSqlTableModel(QObject *parent =
nullptr,
const QSqlDatabase &db = QSqlDatabase());
32 virtual ~QSqlTableModel();
34 virtual void setTable(
const QString &tableName);
35 QString tableName()
const;
37 Qt::ItemFlags flags(
const QModelIndex &index)
const override;
39 QSqlRecord record()
const;
40 QSqlRecord record(
int row)
const;
41 QVariant data(
const QModelIndex &idx,
int role = Qt::DisplayRole)
const override;
42 bool setData(
const QModelIndex &index,
const QVariant &value,
int role = Qt::EditRole) override;
43 bool clearItemData(
const QModelIndex &index) override;
45 QVariant headerData(
int section, Qt::Orientation orientation,
int role = Qt::DisplayRole)
const override;
48 bool isDirty(
const QModelIndex &index)
const;
50 void clear() override;
52 virtual void setEditStrategy(EditStrategy strategy);
53 EditStrategy editStrategy()
const;
55 QSqlIndex primaryKey()
const;
56 QSqlDatabase database()
const;
57 int fieldIndex(
const QString &fieldName)
const;
59 void sort(
int column, Qt::SortOrder order) override;
60 virtual void setSort(
int column, Qt::SortOrder order);
62 QString filter()
const;
63 virtual void setFilter(
const QString &filter);
65 int rowCount(
const QModelIndex &parent = QModelIndex())
const override;
67 bool removeColumns(
int column,
int count,
const QModelIndex &parent = QModelIndex()) override;
68 bool removeRows(
int row,
int count,
const QModelIndex &parent = QModelIndex()) override;
69 bool insertRows(
int row,
int count,
const QModelIndex &parent = QModelIndex()) override;
71 bool insertRecord(
int row,
const QSqlRecord &record);
72 bool setRecord(
int row,
const QSqlRecord &record);
74 virtual void revertRow(
int row);
77 virtual bool select();
78 virtual bool selectRow(
int row);
80 bool submit() override;
81 void revert() override;
87 void primeInsert(
int row, QSqlRecord &record);
89 void beforeInsert(QSqlRecord &record);
90 void beforeUpdate(
int row, QSqlRecord &record);
91 void beforeDelete(
int row);
94 QSqlTableModel(QSqlTableModelPrivate &dd, QObject *parent =
nullptr,
const QSqlDatabase &db = QSqlDatabase());
96 virtual bool updateRowInTable(
int row,
const QSqlRecord &values);
97 virtual bool insertRowIntoTable(
const QSqlRecord &values);
98 virtual bool deleteRowFromTable(
int row);
99 virtual QString orderByClause()
const;
100 virtual QString selectStatement()
const;
102 void setPrimaryKey(
const QSqlIndex &key);
103#if QT_SQL_REMOVED_SINCE(6
, 5
)
104 void setQuery(
const QSqlQuery &query);
106 QModelIndex indexInQuery(
const QModelIndex &item)
const override;
107 QSqlRecord primaryValues(
int row)
const;