![]() |
Qt 6.x
The Qt SDK
|
The QSqlTableModel class provides an editable data model for a single database table. More...
#include <qsqltablemodel.h>
Public Types | |
enum | EditStrategy { OnFieldChange , OnRowChange , OnManualSubmit } |
This enum type describes which strategy to choose when editing values in the database. More... | |
![]() | |
enum | LayoutChangeHint { NoLayoutChangeHint , VerticalSortHint , HorizontalSortHint } |
This enum describes the way the model changes layout. More... | |
enum class | CheckIndexOption { NoOption = 0x0000 , IndexIsValid = 0x0001 , DoNotUseParent = 0x0002 , ParentIsInvalid = 0x0004 } |
Public Slots | |
virtual bool | select () |
Populates the model with data from the table that was set via setTable(), using the specified filter and sort condition, and returns true if successful; otherwise returns false . | |
virtual bool | selectRow (int row) |
bool | submit () override |
This reimplemented slot is called by the item delegates when the user stopped editing the current row. | |
void | revert () override |
This reimplemented slot is called by the item delegates when the user canceled editing the current row. | |
bool | submitAll () |
Submits all pending changes and returns true on success. | |
void | revertAll () |
Reverts all pending changes. | |
![]() | |
virtual bool | submit () |
Lets the model know that it should submit cached information to permanent storage. | |
virtual void | revert () |
Lets the model know that it should discard cached information. | |
![]() | |
void | deleteLater () |
\threadsafe | |
Signals | |
void | primeInsert (int row, QSqlRecord &record) |
This signal is emitted by insertRows(), when an insertion is initiated in the given row of the currently active database table. | |
void | beforeInsert (QSqlRecord &record) |
This signal is emitted by insertRowIntoTable() before a new row is inserted into the currently active database table. | |
void | beforeUpdate (int row, QSqlRecord &record) |
This signal is emitted by updateRowInTable() before the row is updated in the currently active database table with the values from record. | |
void | beforeDelete (int row) |
This signal is emitted by deleteRowFromTable() before the row is deleted from the currently active database table. | |
![]() | |
void | dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight, const QList< int > &roles=QList< int >()) |
This signal is emitted whenever the data in an existing item changes. | |
void | headerDataChanged (Qt::Orientation orientation, int first, int last) |
This signal is emitted whenever a header is changed. | |
void | layoutChanged (const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint) |
void | layoutAboutToBeChanged (const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint) |
void | rowsAboutToBeInserted (const QModelIndex &parent, int first, int last, QPrivateSignal) |
This signal is emitted just before rows are inserted into the model. | |
void | rowsInserted (const QModelIndex &parent, int first, int last, QPrivateSignal) |
This signal is emitted after rows have been inserted into the model. | |
void | rowsAboutToBeRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal) |
This signal is emitted just before rows are removed from the model. | |
void | rowsRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal) |
This signal is emitted after rows have been removed from the model. | |
void | columnsAboutToBeInserted (const QModelIndex &parent, int first, int last, QPrivateSignal) |
This signal is emitted just before columns are inserted into the model. | |
void | columnsInserted (const QModelIndex &parent, int first, int last, QPrivateSignal) |
This signal is emitted after columns have been inserted into the model. | |
void | columnsAboutToBeRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal) |
This signal is emitted just before columns are removed from the model. | |
void | columnsRemoved (const QModelIndex &parent, int first, int last, QPrivateSignal) |
This signal is emitted after columns have been removed from the model. | |
void | modelAboutToBeReset (QPrivateSignal) |
void | modelReset (QPrivateSignal) |
void | rowsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow, QPrivateSignal) |
void | rowsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow, QPrivateSignal) |
void | columnsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn, QPrivateSignal) |
void | columnsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn, QPrivateSignal) |
![]() | |
void | destroyed (QObject *=nullptr) |
This signal is emitted immediately before the object obj is destroyed, after any instances of QPointer have been notified, and cannot be blocked. | |
void | objectNameChanged (const QString &objectName, QPrivateSignal) |
This signal is emitted after the object's name has been changed. | |
Public Member Functions | |
QSqlTableModel (QObject *parent=nullptr, const QSqlDatabase &db=QSqlDatabase()) | |
Creates an empty QSqlTableModel and sets the parent to parent and the database connection to db. | |
virtual | ~QSqlTableModel () |
Destroys the object and frees any allocated resources. | |
virtual void | setTable (const QString &tableName) |
Sets the database table on which the model operates to tableName. | |
QString | tableName () const |
Returns the name of the currently selected table. | |
Qt::ItemFlags | flags (const QModelIndex &index) const override |
\reimp | |
QSqlRecord | record () const |
This is an overloaded function. | |
QSqlRecord | record (int row) const |
QVariant | data (const QModelIndex &idx, int role=Qt::DisplayRole) const override |
\reimp | |
bool | setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override |
Sets the data for the item index for the role role to value. | |
bool | clearItemData (const QModelIndex &index) override |
\reimp | |
QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override |
\reimp | |
bool | isDirty () const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
bool | isDirty (const QModelIndex &index) const |
Returns true if the value at the index index is dirty, otherwise false. | |
void | clear () override |
\reimp | |
virtual void | setEditStrategy (EditStrategy strategy) |
Sets the strategy for editing values in the database to strategy. | |
EditStrategy | editStrategy () const |
Returns the current edit strategy. | |
QSqlIndex | primaryKey () const |
Returns the primary key for the current table, or an empty QSqlIndex if the table is not set or has no primary key. | |
QSqlDatabase | database () const |
Returns the model's database connection. | |
int | fieldIndex (const QString &fieldName) const |
Returns the index of the field fieldName, or -1 if no corresponding field exists in the model. | |
void | sort (int column, Qt::SortOrder order) override |
Sorts the data by column with the sort order order. | |
virtual void | setSort (int column, Qt::SortOrder order) |
Sets the sort order for column to order. | |
QString | filter () const |
Returns the currently set filter. | |
virtual void | setFilter (const QString &filter) |
Sets the current filter to filter. | |
int | rowCount (const QModelIndex &parent=QModelIndex()) const override |
\reimp | |
bool | removeColumns (int column, int count, const QModelIndex &parent=QModelIndex()) override |
Removes count columns from the parent model, starting at index column. | |
bool | removeRows (int row, int count, const QModelIndex &parent=QModelIndex()) override |
Removes count rows starting at row. | |
bool | insertRows (int row, int count, const QModelIndex &parent=QModelIndex()) override |
Inserts count empty rows at position row. | |
bool | insertRecord (int row, const QSqlRecord &record) |
Inserts the record at position row. | |
bool | setRecord (int row, const QSqlRecord &record) |
Applies values to the row in the model. | |
virtual void | revertRow (int row) |
Reverts all changes for the specified row. | |
![]() | |
QSqlQueryModel (QObject *parent=nullptr) | |
Creates an empty QSqlQueryModel with the given parent. | |
virtual | ~QSqlQueryModel () |
Destroys the object and frees any allocated resources. | |
int | rowCount (const QModelIndex &parent=QModelIndex()) const override |
int | columnCount (const QModelIndex &parent=QModelIndex()) const override |
\reimp | |
QSqlRecord | record (int row) const |
Returns the record containing information about the fields of the current query. | |
QSqlRecord | record () const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Returns an empty record containing information about the fields of the current query. | |
QVariant | data (const QModelIndex &item, int role=Qt::DisplayRole) const override |
Returns the value for the specified item and role. | |
QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override |
Returns the header data for the given role in the section of the header with the specified orientation. | |
bool | setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole) override |
Sets the caption for a horizontal header for the specified role to value. | |
bool | insertColumns (int column, int count, const QModelIndex &parent=QModelIndex()) override |
Inserts count columns into the model at position column. | |
bool | removeColumns (int column, int count, const QModelIndex &parent=QModelIndex()) override |
Removes count columns from the model starting from position column. | |
void | setQuery (QSqlQuery &&query) |
Resets the model and sets the data provider to be the given query. | |
void | setQuery (const QString &query, const QSqlDatabase &db=QSqlDatabase()) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.Executes the query query for the given database connection db. | |
const QSqlQuery & | query (QT6_DECL_NEW_OVERLOAD) const |
Returns a reference to the const QSqlQuery object associated with this model. | |
virtual void | clear () |
Clears the model and releases any acquired resource. | |
QSqlError | lastError () const |
Returns information about the last error that occurred on the database. | |
void | fetchMore (const QModelIndex &parent=QModelIndex()) override |
bool | canFetchMore (const QModelIndex &parent=QModelIndex()) const override |
QHash< int, QByteArray > | roleNames () const override |
![]() | |
QAbstractTableModel (QObject *parent=nullptr) | |
Constructs an abstract table model for the given parent. | |
~QAbstractTableModel () | |
Destroys the abstract table model. | |
QModelIndex | index (int row, int column, const QModelIndex &parent=QModelIndex()) const override |
Returns the index of the data in row and column with parent. | |
QModelIndex | sibling (int row, int column, const QModelIndex &idx) const override |
\reimp | |
bool | dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override |
\reimp | |
Qt::ItemFlags | flags (const QModelIndex &index) const override |
\reimp | |
QObject * | parent () const |
Returns a pointer to the parent object. | |
![]() | |
QAbstractItemModel (QObject *parent=nullptr) | |
Constructs an abstract item model with the given parent. | |
virtual | ~QAbstractItemModel () |
Destroys the abstract item model. | |
Q_INVOKABLE bool | hasIndex (int row, int column, const QModelIndex &parent=QModelIndex()) const |
Returns {true} if the model returns a valid QModelIndex for row and column with parent, otherwise returns {false}. | |
virtual Q_INVOKABLE QModelIndex | index (int row, int column, const QModelIndex &parent=QModelIndex()) const =0 |
Returns the index of the item in the model specified by the given row, column and parent index. | |
virtual Q_INVOKABLE QModelIndex | parent (const QModelIndex &child) const =0 |
virtual Q_INVOKABLE QModelIndex | sibling (int row, int column, const QModelIndex &idx) const |
Returns the sibling at row and column for the item at index, or an invalid QModelIndex if there is no sibling at that location. | |
virtual Q_INVOKABLE int | rowCount (const QModelIndex &parent=QModelIndex()) const =0 |
Returns the number of rows under the given parent. | |
virtual Q_INVOKABLE int | columnCount (const QModelIndex &parent=QModelIndex()) const =0 |
Returns the number of columns for the children of the given parent. | |
virtual Q_INVOKABLE bool | hasChildren (const QModelIndex &parent=QModelIndex()) const |
Returns {true} if parent has any children; otherwise returns {false}. | |
virtual Q_INVOKABLE QVariant | data (const QModelIndex &index, int role=Qt::DisplayRole) const =0 |
Returns the data stored under the given role for the item referred to by the index. | |
virtual Q_INVOKABLE bool | setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) |
Sets the role data for the item at index to value. | |
virtual Q_INVOKABLE QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const |
Returns the data for the given role and section in the header with the specified orientation. | |
virtual bool | setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole) |
Sets the data for the given role and section in the header with the specified orientation to the value supplied. | |
virtual QMap< int, QVariant > | itemData (const QModelIndex &index) const |
Returns a map with values for all predefined roles in the model for the item at the given index. | |
virtual bool | setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles) |
Sets the role data for the item at index to the associated value in roles, for every Qt::ItemDataRole. | |
virtual bool | clearItemData (const QModelIndex &index) |
virtual QStringList | mimeTypes () const |
Returns the list of allowed MIME types. | |
virtual QMimeData * | mimeData (const QModelIndexList &indexes) const |
Returns an object that contains serialized items of data corresponding to the list of indexes specified. | |
virtual bool | canDropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const |
Returns {true} if a model can accept a drop of the data. | |
virtual bool | dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) |
Handles the data supplied by a drag and drop operation that ended with the given action. | |
virtual Qt::DropActions | supportedDropActions () const |
virtual Qt::DropActions | supportedDragActions () const |
Returns the actions supported by the data in this model. | |
Q_INVOKABLE | Q_REVISION (6, 4) virtual bool insertRows(int row |
Q_INVOKABLE | Q_REVISION (6, 4) virtual bool insertColumns(int column |
Q_INVOKABLE | Q_REVISION (6, 4) virtual bool removeRows(int row |
Q_INVOKABLE | Q_REVISION (6, 4) virtual bool removeColumns(int column |
Q_INVOKABLE | Q_REVISION (6, 4) virtual bool moveRows(const QModelIndex &sourceParent |
Q_INVOKABLE | Q_REVISION (6, 4) virtual bool moveColumns(const QModelIndex &sourceParent |
Q_INVOKABLE | Q_REVISION (6, 4) inline bool insertRow(int row |
Q_INVOKABLE | Q_REVISION (6, 4) inline bool insertColumn(int column |
Q_INVOKABLE | Q_REVISION (6, 4) inline bool removeRow(int row |
Q_INVOKABLE | Q_REVISION (6, 4) inline bool removeColumn(int column |
Q_INVOKABLE | Q_REVISION (6, 4) inline bool moveRow(const QModelIndex &sourceParent |
Q_INVOKABLE | Q_REVISION (6, 4) inline bool moveColumn(const QModelIndex &sourceParent |
virtual Q_INVOKABLE void | fetchMore (const QModelIndex &parent) |
Fetches any available data for the items with the parent specified by the parent index. | |
virtual Q_INVOKABLE bool | canFetchMore (const QModelIndex &parent) const |
Returns {true} if there is more data available for parent; otherwise returns {false}. | |
virtual Q_INVOKABLE Qt::ItemFlags | flags (const QModelIndex &index) const |
Returns the item flags for the given index. | |
Q_INVOKABLE | Q_REVISION (6, 4) virtual void sort(int column |
virtual QModelIndex | buddy (const QModelIndex &index) const |
Returns a model index for the buddy of the item represented by index. | |
virtual Q_INVOKABLE QModelIndexList | match (const QModelIndex &start, int role, const QVariant &value, int hits=1, Qt::MatchFlags flags=Qt::MatchFlags(Qt::MatchStartsWith|Qt::MatchWrap)) const |
Returns a list of indexes for the items in the column of the start index where data stored under the given role matches the specified value. | |
virtual QSize | span (const QModelIndex &index) const |
Returns the row and column span of the item represented by index. | |
virtual QHash< int, QByteArray > | roleNames () const |
bool | checkIndex (const QModelIndex &index, CheckIndexOptions options=CheckIndexOption::NoOption) const |
virtual void | multiData (const QModelIndex &index, QModelRoleDataSpan roleDataSpan) const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
![]() | |
Q_INVOKABLE | QObject (QObject *parent=nullptr) |
Constructs an object with parent object parent. | |
virtual | ~QObject () |
Destroys the object, deleting all its child objects. | |
virtual bool | event (QEvent *event) |
This virtual function receives events to an object and should return true if the event e was recognized and processed. | |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
Filters events if this object has been installed as an event filter for the watched object. | |
QString | objectName () const |
Q_WEAK_OVERLOAD void | setObjectName (const QString &name) |
Sets the object's name to name. | |
void | setObjectName (QAnyStringView name) |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
QBindable< QString > | bindableObjectName () |
bool | isWidgetType () const |
Returns true if the object is a widget; otherwise returns false . | |
bool | isWindowType () const |
Returns true if the object is a window; otherwise returns false . | |
bool | isQuickItemType () const |
Returns true if the object is a QQuickItem; otherwise returns false . | |
bool | signalsBlocked () const noexcept |
Returns true if signals are blocked; otherwise returns false . | |
bool | blockSignals (bool b) noexcept |
If block is true, signals emitted by this object are blocked (i.e., emitting a signal will not invoke anything connected to it). | |
QThread * | thread () const |
Returns the thread in which the object lives. | |
void | moveToThread (QThread *thread) |
Changes the thread affinity for this object and its children. | |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
This is an overloaded function that will start a timer of type timerType and a timeout of interval milliseconds. | |
int | startTimer (std::chrono::milliseconds time, Qt::TimerType timerType=Qt::CoarseTimer) |
void | killTimer (int id) |
Kills the timer with timer identifier, id. | |
template<typename T > | |
T | findChild (const QString &aName=QString(), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns the child of this object that can be cast into type T and that is called name, or \nullptr if there is no such object. | |
template<typename T > | |
QList< T > | findChildren (const QString &aName, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
Returns all children of this object with the given name that can be cast to type T, or an empty list if there are no such objects. | |
template<typename T > | |
QList< T > | findChildren (Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
const QObjectList & | children () const |
Returns a list of child objects. | |
void | setParent (QObject *parent) |
Makes the object a child of parent. | |
void | installEventFilter (QObject *filterObj) |
Installs an event filter filterObj on this object. | |
void | removeEventFilter (QObject *obj) |
Removes an event filter object obj from this object. | |
QMetaObject::Connection | connect (const QObject *sender, const char *signal, const char *member, Qt::ConnectionType type=Qt::AutoConnection) const |
bool | disconnect (const char *signal=nullptr, const QObject *receiver=nullptr, const char *member=nullptr) const |
bool | disconnect (const QObject *receiver, const char *member=nullptr) const |
void | dumpObjectTree () const |
Dumps a tree of children to the debug output. | |
void | dumpObjectInfo () const |
Dumps information about signal connections, etc. | |
bool | setProperty (const char *name, const QVariant &value) |
Sets the value of the object's name property to value. | |
bool | setProperty (const char *name, QVariant &&value) |
QVariant | property (const char *name) const |
Returns the value of the object's name property. | |
QList< QByteArray > | dynamicPropertyNames () const |
QBindingStorage * | bindingStorage () |
const QBindingStorage * | bindingStorage () const |
QObject * | parent () const |
Returns a pointer to the parent object. | |
bool | inherits (const char *classname) const |
Returns true if this object is an instance of a class that inherits className or a QObject subclass that inherits className; otherwise returns false . | |
Protected Member Functions | |
QSqlTableModel (QSqlTableModelPrivate &dd, QObject *parent=nullptr, const QSqlDatabase &db=QSqlDatabase()) | |
virtual bool | updateRowInTable (int row, const QSqlRecord &values) |
Updates the given row in the currently active database table with the specified values. | |
virtual bool | insertRowIntoTable (const QSqlRecord &values) |
Inserts the values values into the currently active database table. | |
virtual bool | deleteRowFromTable (int row) |
Deletes the given row from the currently active database table. | |
virtual QString | orderByClause () const |
Returns an SQL {ORDER BY} clause based on the currently set sort order. | |
virtual QString | selectStatement () const |
Returns the SQL SELECT statement used internally to populate the model. | |
void | setPrimaryKey (const QSqlIndex &key) |
Protected method that allows subclasses to set the primary key to key. | |
QModelIndex | indexInQuery (const QModelIndex &item) const override |
Returns the index of the value in the database result set for the given item in the model. | |
QSqlRecord | primaryValues (int row) const |
![]() | |
void | beginInsertRows (const QModelIndex &parent, int first, int last) |
void | endInsertRows () |
void | beginRemoveRows (const QModelIndex &parent, int first, int last) |
void | endRemoveRows () |
void | beginInsertColumns (const QModelIndex &parent, int first, int last) |
void | endInsertColumns () |
void | beginRemoveColumns (const QModelIndex &parent, int first, int last) |
void | endRemoveColumns () |
void | beginResetModel () |
void | endResetModel () |
virtual void | queryChange () |
This virtual function is called whenever the query changes. | |
virtual QModelIndex | indexInQuery (const QModelIndex &item) const |
Returns the index of the value in the database result set for the given item in the model. | |
void | setLastError (const QSqlError &error) |
Protected function which allows derived classes to set the value of the last error that occurred on the database to error. | |
QSqlQueryModel (QSqlQueryModelPrivate &dd, QObject *parent=nullptr) | |
![]() | |
QAbstractTableModel (QAbstractItemModelPrivate &dd, QObject *parent) | |
![]() | |
QAbstractItemModel (QAbstractItemModelPrivate &dd, QObject *parent=nullptr) | |
QModelIndex | createIndex (int row, int column, const void *data=nullptr) const |
Creates a model index for the given row and column with the internal pointer ptr. | |
QModelIndex | createIndex (int row, int column, quintptr id) const |
Creates a model index for the given row and column with the internal identifier, id. | |
void | encodeData (const QModelIndexList &indexes, QDataStream &stream) const |
bool | decodeData (int row, int column, const QModelIndex &parent, QDataStream &stream) |
void | beginInsertRows (const QModelIndex &parent, int first, int last) |
Begins a row insertion operation. | |
void | endInsertRows () |
Ends a row insertion operation. | |
void | beginRemoveRows (const QModelIndex &parent, int first, int last) |
Begins a row removal operation. | |
void | endRemoveRows () |
Ends a row removal operation. | |
bool | beginMoveRows (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationRow) |
void | endMoveRows () |
Ends a row move operation. | |
void | beginInsertColumns (const QModelIndex &parent, int first, int last) |
Begins a column insertion operation. | |
void | endInsertColumns () |
Ends a column insertion operation. | |
void | beginRemoveColumns (const QModelIndex &parent, int first, int last) |
Begins a column removal operation. | |
void | endRemoveColumns () |
Ends a column removal operation. | |
bool | beginMoveColumns (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationColumn) |
Begins a column move operation. | |
void | endMoveColumns () |
Ends a column move operation. | |
void | beginResetModel () |
Begins a model reset operation. | |
void | endResetModel () |
Completes a model reset operation. | |
void | changePersistentIndex (const QModelIndex &from, const QModelIndex &to) |
Changes the QPersistentModelIndex that is equal to the given from model index to the given to model index. | |
void | changePersistentIndexList (const QModelIndexList &from, const QModelIndexList &to) |
QModelIndexList | persistentIndexList () const |
![]() | |
QObject * | sender () const |
Returns a pointer to the object that sent the signal, if called in a slot activated by a signal; otherwise it returns \nullptr. | |
int | senderSignalIndex () const |
int | receivers (const char *signal) const |
Returns the number of receivers connected to the signal. | |
bool | isSignalConnected (const QMetaMethod &signal) const |
virtual void | timerEvent (QTimerEvent *event) |
This event handler can be reimplemented in a subclass to receive timer events for the object. | |
virtual void | childEvent (QChildEvent *event) |
This event handler can be reimplemented in a subclass to receive child events. | |
virtual void | customEvent (QEvent *event) |
This event handler can be reimplemented in a subclass to receive custom events. | |
virtual void | connectNotify (const QMetaMethod &signal) |
virtual void | disconnectNotify (const QMetaMethod &signal) |
QObject (QObjectPrivate &dd, QObject *parent=nullptr) | |
Additional Inherited Members | |
![]() | |
static QMetaObject::Connection | connect (const QObject *sender, const char *signal, const QObject *receiver, const char *member, Qt::ConnectionType=Qt::AutoConnection) |
\threadsafe | |
static QMetaObject::Connection | connect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &method, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::ContextTypeForFunctor< Func2 >::ContextType *context, Func2 &&slot, Qt::ConnectionType type=Qt::AutoConnection) |
template<typename Func1 , typename Func2 > | |
static QMetaObject::Connection | connect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, Func2 &&slot) |
static bool | disconnect (const QObject *sender, const char *signal, const QObject *receiver, const char *member) |
\threadsafe | |
static bool | disconnect (const QObject *sender, const QMetaMethod &signal, const QObject *receiver, const QMetaMethod &member) |
static bool | disconnect (const QMetaObject::Connection &) |
Disconnect a connection. | |
template<typename Func1 , typename Func2 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const typename QtPrivate::FunctionPointer< Func2 >::Object *receiver, Func2 slot) |
template<typename Func1 > | |
static bool | disconnect (const typename QtPrivate::FunctionPointer< Func1 >::Object *sender, Func1 signal, const QObject *receiver, void **zero) |
![]() | |
Q_INVOKABLE int | count |
Q_INVOKABLE int const QModelIndex & | parent = QModelIndex()) |
Returns the parent of the model item with the given index. | |
Q_INVOKABLE int | sourceRow |
Q_INVOKABLE int int | count |
Q_INVOKABLE int int const QModelIndex & | destinationParent |
Q_INVOKABLE int int const QModelIndex int | destinationChild |
Q_INVOKABLE int | sourceColumn |
Q_INVOKABLE const QModelIndex & | parent = QModelIndex()) |
Q_INVOKABLE int const QModelIndex & | destinationParent |
Q_INVOKABLE int const QModelIndex int | destinationChild |
Q_INVOKABLE Qt::SortOrder | order = Qt::AscendingOrder) |
![]() | |
virtual void | resetInternalData () |
![]() | |
QScopedPointer< QObjectData > | d_ptr |
![]() | |
QString | objectName |
the name of this object | |
![]() | |
template< class T > T | qobject_cast (const QObject *object) |
Returns the given object cast to type T if the object is of type T (or of a subclass); otherwise returns \nullptr. | |
template< typename T > T | qFindChildqFindChildren (const QObject *obj, const QString &name)() |
template< typename T > QList< T > | qFindChildrenqFindChildren (const QObject *obj, const QString &name)() |
QObjectList | |
\macro Q_CLASSINFO(Name, Value) | |
The QSqlTableModel class provides an editable data model for a single database table.
\inmodule QtSql
QSqlTableModel is a high-level interface for reading and writing database records from a single table. It is built on top of the lower-level QSqlQuery and can be used to provide data to view classes such as QTableView. For example:
We set the SQL table's name and the edit strategy, then we set up the labels displayed in the view header. The edit strategy dictates when the changes done by the user in the view are actually applied to the database. The possible values are \l OnFieldChange, \l OnRowChange, and \l OnManualSubmit.
QSqlTableModel can also be used to access a database programmatically, without binding it to a view:
The code snippet above extracts the salary
field from record 4 in the result set of the query {SELECT * from employee}.
It is possible to set filters using setFilter(), or modify the sort order using setSort(). At the end, you must call select() to populate the model with data.
The \l{tablemodel} example illustrates how to use QSqlTableModel as the data source for a QTableView.
QSqlTableModel provides no direct support for foreign keys. Use the QSqlRelationalTableModel and QSqlRelationalDelegate if you want to resolve foreign keys.
Definition at line 21 of file qsqltablemodel.h.
This enum type describes which strategy to choose when editing values in the database.
\value OnFieldChange All changes to the model will be applied immediately to the database. \value OnRowChange Changes to a row will be applied when the user selects a different row. \value OnManualSubmit All changes will be cached in the model until either submitAll() or revertAll() is called.
Note: To prevent inserting only partly initialized rows into the database, OnFieldChange
will behave like OnRowChange
for newly inserted rows.
Enumerator | |
---|---|
OnFieldChange | |
OnRowChange | |
OnManualSubmit |
Definition at line 28 of file qsqltablemodel.h.
|
explicit |
Creates an empty QSqlTableModel and sets the parent to parent and the database connection to db.
If db is not valid, the default database connection will be used.
The default edit strategy is \l OnRowChange.
Definition at line 260 of file qsqltablemodel.cpp.
References d, QSqlDatabase::database(), and db.
|
virtual |
Destroys the object and frees any allocated resources.
Definition at line 279 of file qsqltablemodel.cpp.
|
protected |
Definition at line 269 of file qsqltablemodel.cpp.
References d, QSqlDatabase::database(), and db.
|
signal |
This signal is emitted by deleteRowFromTable() before the row is deleted from the currently active database table.
Referenced by deleteRowFromTable().
|
signal |
This signal is emitted by insertRowIntoTable() before a new row is inserted into the currently active database table.
The values that are about to be inserted are stored in record and can be modified before they will be inserted.
Referenced by insertRowIntoTable().
|
signal |
This signal is emitted by updateRowInTable() before the row is updated in the currently active database table with the values from record.
Note that only values that are marked as generated will be updated. The generated flag can be set with \l QSqlRecord::setGenerated() and checked with \l QSqlRecord::isGenerated().
Referenced by updateRowInTable().
|
overridevirtual |
\reimp
Reimplemented from QSqlQueryModel.
Definition at line 1236 of file qsqltablemodel.cpp.
References QSqlQueryModel::beginResetModel(), QSqlQueryModel::clear(), d, and QSqlQueryModel::endResetModel().
Referenced by QSqlRelationalTableModel::clear(), and setTable().
|
overridevirtual |
\reimp
Reimplemented from QAbstractItemModel.
Definition at line 578 of file qsqltablemodel.cpp.
References Qt::EditRole, and setData().
|
overridevirtual |
\reimp
Reimplemented from QSqlQueryModel.
Definition at line 439 of file qsqltablemodel.cpp.
References d, QSqlQueryModel::data(), Qt::DisplayRole, Qt::EditRole, it, and QSqlTableModelPrivate::None.
Referenced by QSqlRelationalTableModel::data(), and setData().
QSqlDatabase QSqlTableModel::database | ( | ) | const |
Returns the model's database connection.
Definition at line 906 of file qsqltablemodel.cpp.
References d.
Referenced by QRelation::populateDictionary(), QRelation::populateModel(), and QSqlRelationalTableModel::selectStatement().
|
protectedvirtual |
Deletes the given row from the currently active database table.
This is a low-level method that operates directly on the database and should not be called directly. Use removeRow() or removeRows() to delete values. The model will decide depending on its edit strategy when to modify the database.
Returns true
if the row was deleted; otherwise returns false
.
Definition at line 664 of file qsqltablemodel.cpp.
References beforeDelete(), QSqlQueryModelSql::concat(), d, QSqlDriver::DeleteStatement, emit, QString::isEmpty(), QSqlDriver::PreparedQueries, primaryValues(), QSqlError::StatementError, and QSqlDriver::WhereStatement.
Referenced by submitAll().
QSqlTableModel::EditStrategy QSqlTableModel::editStrategy | ( | ) | const |
Returns the current edit strategy.
Definition at line 842 of file qsqltablemodel.cpp.
References d.
int QSqlTableModel::fieldIndex | ( | const QString & | fieldName | ) | const |
Returns the index of the field fieldName, or -1 if no corresponding field exists in the model.
Definition at line 965 of file qsqltablemodel.cpp.
References d.
QString QSqlTableModel::filter | ( | ) | const |
Returns the currently set filter.
Definition at line 1208 of file qsqltablemodel.cpp.
References d.
Referenced by QSqlRelationalTableModel::selectStatement(), and setFilter().
|
overridevirtual |
\reimp
Reimplemented from QAbstractTableModel.
Definition at line 1247 of file qsqltablemodel.cpp.
References d, QSqlTableModelPrivate::Delete, QAbstractItemModel::flags(), QSqlTableModelPrivate::Insert, isDirty(), Qt::ItemIsEditable, OnFieldChange, OnRowChange, QSqlTableModelPrivate::ModifiedRow::op(), and QSqlTableModelPrivate::ModifiedRow::submitted().
|
overridevirtual |
\reimp
Reimplemented from QSqlQueryModel.
Definition at line 455 of file qsqltablemodel.cpp.
References d, QSqlTableModelPrivate::Delete, Qt::DisplayRole, QSqlQueryModel::headerData(), QSqlTableModelPrivate::Insert, and Qt::Vertical.
|
overrideprotectedvirtual |
Returns the index of the value in the database result set for the given item in the model.
The return value is identical to item if no columns or rows have been inserted, removed, or moved around.
Returns an invalid model index if item is out of bounds or if item does not point to a value in the result set.
Reimplemented from QSqlQueryModel.
Definition at line 1192 of file qsqltablemodel.cpp.
References QAbstractItemModel::createIndex(), d, QSqlQueryModel::indexInQuery(), QSet< T >::insert(), it, and item.
bool QSqlTableModel::insertRecord | ( | int | row, |
const QSqlRecord & | record | ||
) |
Inserts the record at position row.
If row is negative, the record will be appended to the end. Calls insertRows() and setRecord() internally.
Returns true
if the record could be inserted, otherwise false.
Changes are submitted immediately for OnFieldChange and OnRowChange. Failure does not leave a new row in the model.
Definition at line 1155 of file qsqltablemodel.cpp.
References insertRow(), record(), revertRow(), rowCount(), and setRecord().
|
protectedvirtual |
Inserts the values values into the currently active database table.
This is a low-level method that operates directly on the database and should not be called directly. Use insertRow() and setData() to insert values. The model will decide depending on its edit strategy when to modify the database.
Returns true
if the values could be inserted, otherwise false. Error information can be retrieved with \l lastError().
Reimplemented in QSqlRelationalTableModel.
Definition at line 634 of file qsqltablemodel.cpp.
References beforeInsert(), d, emit, QSqlDriver::InsertStatement, QString::isEmpty(), QSqlDriver::PreparedQueries, and QSqlError::StatementError.
Referenced by QSqlRelationalTableModel::insertRowIntoTable(), and submitAll().
|
override |
Inserts count empty rows at position row.
Note that parent must be invalid, since this model does not support parent-child relations.
For edit strategies OnFieldChange and OnRowChange, only one row may be inserted at a time and the model may not contain other cached changes.
The primeInsert() signal will be emitted for each new row. Connect to it if you want to initialize the new row with default values.
Does not submit rows, regardless of edit strategy.
Returns false
if the parameters are out of bounds or the row cannot be inserted; otherwise returns true
.
Definition at line 1106 of file qsqltablemodel.cpp.
References QSqlQueryModel::beginInsertRows(), QAbstractItemModel::count, d, emit, QSqlQueryModel::endInsertRows(), i, QSqlTableModelPrivate::Insert, isDirty(), it, OnManualSubmit, QAbstractTableModel::parent(), primeInsert(), and rowCount().
bool QSqlTableModel::isDirty | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Returns true
if the model contains modified values that have not been committed to the database, otherwise false.
Definition at line 475 of file qsqltablemodel.cpp.
Referenced by flags(), insertRows(), removeRows(), and setRecord().
bool QSqlTableModel::isDirty | ( | const QModelIndex & | index | ) | const |
Returns true
if the value at the index index is dirty, otherwise false.
Dirty values are values that were modified in the model but not yet written into the database.
If index is invalid or points to a non-existing row, false is returned.
Definition at line 494 of file qsqltablemodel.cpp.
References d, QSqlTableModelPrivate::Delete, QSqlTableModelPrivate::Insert, it, and QSqlTableModelPrivate::Update.
|
protectedvirtual |
Returns an SQL {ORDER BY} clause based on the currently set sort order.
Reimplemented in QSqlRelationalTableModel.
Definition at line 945 of file qsqltablemodel.cpp.
References QSqlQueryModelSql::asc(), Qt::AscendingOrder, d, QSqlQueryModelSql::desc(), QSqlDriver::FieldName, QSqlQueryModelSql::orderBy(), and QSqlDriver::TableName.
Referenced by QSqlRelationalTableModel::orderByClause(), and selectStatement().
QSqlIndex QSqlTableModel::primaryKey | ( | ) | const |
Returns the primary key for the current table, or an empty QSqlIndex if the table is not set or has no primary key.
Definition at line 882 of file qsqltablemodel.cpp.
References d.
|
protected |
Definition at line 1404 of file qsqltablemodel.cpp.
References d, QSqlRecord::keyValues(), QSqlTableModelPrivate::None, QSqlTableModelPrivate::ModifiedRow::op(), QSqlTableModelPrivate::ModifiedRow::primaryValues(), and QSqlQueryModel::record().
Referenced by deleteRowFromTable(), selectRow(), and updateRowInTable().
|
signal |
This signal is emitted by insertRows(), when an insertion is initiated in the given row of the currently active database table.
The record parameter can be written to (since it is a reference), for example to populate some fields with default values and set the generated flags of the fields. Do not try to edit the record via other means such as setData() or setRecord() while handling this signal.
Referenced by insertRows().
QSqlRecord QSqlTableModel::record | ( | ) | const |
This is an overloaded function.
It returns an empty record, having only the field names. This function can be used to retrieve the field names of a record.
Definition at line 1289 of file qsqltablemodel.cpp.
References QSqlQueryModel::record().
Referenced by insertRecord(), QRelation::populateDictionary(), and selectRow().
QSqlRecord QSqlTableModel::record | ( | int | row | ) | const |
If row is the index of a valid row, the record will be populated with values from that row.
If the model is not initialized, an empty record will be returned.
Definition at line 1306 of file qsqltablemodel.cpp.
References QSqlRecord::count(), d, i, QSqlRecord::isGenerated(), QSqlTableModelPrivate::None, QSqlTableModelPrivate::ModifiedRow::op(), QSqlTableModelPrivate::ModifiedRow::rec(), QSqlQueryModel::record(), and QSqlRecord::setGenerated().
|
override |
Removes count columns from the parent model, starting at index column.
Returns if the columns were successfully removed; otherwise returns false
.
Definition at line 1012 of file qsqltablemodel.cpp.
References QAbstractItemModel::count, d, i, QAbstractTableModel::parent(), and select().
Referenced by QSqlRelationalTableModel::removeColumns().
|
override |
Removes count rows starting at row.
Since this model does not support hierarchical structures, parent must be an invalid model index.
When the edit strategy is OnManualSubmit, deletion of rows from the database is delayed until submitAll() is called.
For OnFieldChange and OnRowChange, only one row may be deleted at a time and only if no other row has a cached change. Deletions are submitted immediately to the database. The model retains a blank row for successfully deleted row until refreshed with select().
After failed deletion, the operation is not reverted in the model. The application may resubmit or revert.
Inserted but not yet successfully submitted rows in the range to be removed are immediately removed from the model.
Before a row is deleted from the database, the beforeDelete() signal is emitted.
If row < 0 or row + count > rowCount(), no action is taken and false is returned. Returns true
if all rows could be removed; otherwise returns false
. Detailed database error information can be retrieved using lastError().
Definition at line 1053 of file qsqltablemodel.cpp.
References d, QSqlTableModelPrivate::Delete, emit, QAbstractItemModel::headerDataChanged(), QSqlTableModelPrivate::Insert, isDirty(), QSqlTableModelPrivate::None, OnManualSubmit, QSqlTableModelPrivate::ModifiedRow::op(), QAbstractTableModel::parent(), QSqlQueryModel::record(), revertRow(), rowCount(), QSqlTableModelPrivate::ModifiedRow::setOp(), submit(), and Qt::Vertical.
|
overrideslot |
This reimplemented slot is called by the item delegates when the user canceled editing the current row.
Reverts the changes if the model's strategy is set to OnRowChange or OnFieldChange. Does nothing for the OnManualSubmit strategy.
Use revertAll() to revert all pending changes for the OnManualSubmit strategy or revertRow() to revert a specific row.
Definition at line 798 of file qsqltablemodel.cpp.
References d, OnFieldChange, OnRowChange, and revertAll().
|
slot |
Reverts all pending changes.
Definition at line 853 of file qsqltablemodel.cpp.
References d, i, revertRow(), QList< T >::size(), and QList< T >::value().
Referenced by revert(), and setEditStrategy().
|
virtual |
Reverts all changes for the specified row.
Definition at line 867 of file qsqltablemodel.cpp.
References d.
Referenced by insertRecord(), removeRows(), revertAll(), and QSqlRelationalTableModel::revertRow().
|
overridevirtual |
\reimp
Reimplemented from QSqlQueryModel.
Definition at line 1170 of file qsqltablemodel.cpp.
References d, QAbstractTableModel::parent(), and QSqlQueryModel::rowCount().
Referenced by insertRecord(), insertRows(), QRelation::populateDictionary(), removeRows(), selectRow(), setData(), setRecord(), and updateRowInTable().
|
virtualslot |
Populates the model with data from the table that was set via setTable(), using the specified filter and sort condition, and returns true
if successful; otherwise returns false
.
Reimplemented in QRelatedTableModel, and QSqlRelationalTableModel.
Definition at line 334 of file qsqltablemodel.cpp.
References QSqlQueryModel::beginResetModel(), d, QSqlQueryModel::endResetModel(), QSqlQueryModel::lastError(), selectStatement(), and QSqlQueryModel::setQuery().
Referenced by removeColumns(), QRelatedTableModel::select(), QSqlRelationalTableModel::select(), setFilter(), sort(), and submitAll().
|
virtualslot |
Refreshes row in the model with values from the database table row matching on primary key values. Without a primary key, all column values must match. If no matching row is found, the model will show an empty row.
Returns true
if successful; otherwise returns false
.
Definition at line 368 of file qsqltablemodel.cpp.
References Qt::CaseInsensitive, QSqlQueryModel::columnCount(), QSqlRecord::count(), QAbstractItemModel::createIndex(), d, QAbstractItemModel::dataChanged(), emit, QAbstractItemModel::headerDataChanged(), QString::isEmpty(), primaryValues(), record(), rowCount(), selectStatement(), QString::size(), QSqlQueryModelSql::sp(), QSqlRecord::value(), Qt::Vertical, QSqlQueryModelSql::where(), and QSqlDriver::WhereStatement.
Referenced by submitAll().
|
protectedvirtual |
Returns the SQL SELECT
statement used internally to populate the model.
The statement includes the filter and the {ORDER BY} clause.
Reimplemented in QSqlRelationalTableModel.
Definition at line 978 of file qsqltablemodel.cpp.
References QSqlQueryModelSql::concat(), d, QString::isEmpty(), orderByClause(), QSqlDriver::SelectStatement, QSqlError::StatementError, and QSqlQueryModelSql::where().
Referenced by select(), selectRow(), and QSqlRelationalTableModel::selectStatement().
|
overridevirtual |
Sets the data for the item index for the role role to value.
For edit strategy OnFieldChange, an index may receive a change only if no other index has a cached change. Changes are submitted immediately. However, rows that have not yet been inserted in the database may be freely changed and are not submitted automatically. Submitted changes are not reverted upon failure.
For OnRowChange, an index may receive a change only if no other row has a cached change. Changes are not submitted automatically.
Returns true
if value is equal to the current value. However, the value will not be submitted to the database.
Returns true
if the value could be set or false on error, for example if index is out of bounds.
Returns false
if the role is not Qt::EditRole. To set data for roles other than EditRole, either use a custom proxy model or subclass QSqlTableModel.
Reimplemented from QAbstractItemModel.
Definition at line 539 of file qsqltablemodel.cpp.
References d, data(), QAbstractItemModel::dataChanged(), Qt::EditRole, emit, QSqlTableModelPrivate::Insert, QVariant::isNull(), Qt::ItemIsEditable, QSqlTableModelPrivate::None, OnFieldChange, QSqlQueryModel::record(), rowCount(), QAbstractItemModel::setData(), submit(), and QSqlTableModelPrivate::Update.
Referenced by clearItemData(), QSqlRelationalTableModel::setData(), and setRecord().
|
virtual |
Sets the strategy for editing values in the database to strategy.
This will revert any pending changes.
Definition at line 830 of file qsqltablemodel.cpp.
References d, and revertAll().
Sets the current filter to filter.
The filter is a SQL WHERE
clause without the keyword WHERE
(for example, {name='Josephine')}.
If the model is already populated with data from a database, the model re-selects it with the new filter. Otherwise, the filter will be applied the next time select() is called.
Definition at line 1226 of file qsqltablemodel.cpp.
References d, filter(), and select().
Protected method that allows subclasses to set the primary key to key.
Normally, the primary index is set automatically whenever you call setTable().
Definition at line 897 of file qsqltablemodel.cpp.
References d.
bool QSqlTableModel::setRecord | ( | int | row, |
const QSqlRecord & | values | ||
) |
Applies values to the row in the model.
The source and target fields are mapped by field name, not by position in the record.
Note that the generated flags in values are preserved to determine whether the corresponding fields are used when changes are submitted to the database. By default, it is set to true
for all fields in a QSqlRecord. You must set the flag to false
using \l{QSqlRecord::}{setGenerated}(false) for any value in values, to save changes back to the database.
For edit strategies OnFieldChange and OnRowChange, a row may receive a change only if no other row has a cached change. Changes are submitted immediately. Submitted changes are not reverted upon failure.
Returns true
if all the values could be set; otherwise returns false.
Definition at line 1346 of file qsqltablemodel.cpp.
References QMap< Key, T >::constBegin(), QMap< Key, T >::constEnd(), QAbstractItemModel::createIndex(), d, QSqlTableModelPrivate::Delete, e, i, isDirty(), map, QSqlTableModelPrivate::None, OnManualSubmit, QSqlTableModelPrivate::ModifiedRow::op(), Q_ASSERT_X, QSqlQueryModel::record(), QSqlTableModelPrivate::ModifiedRow::recRef(), rowCount(), setData(), QSqlRecord::setGenerated(), submit(), and QSqlTableModelPrivate::Update.
Referenced by insertRecord().
|
virtual |
Sets the sort order for column to order.
This does not affect the current data, to refresh the data using the new sort order, call select().
Definition at line 932 of file qsqltablemodel.cpp.
References d, and QAbstractItemModel::order.
Referenced by sort().
Sets the database table on which the model operates to tableName.
Does not select data from the table, but fetches its field information.
To populate the model with the table's data, call select().
Error information can be retrieved with \l lastError().
Reimplemented in QSqlRelationalTableModel.
Definition at line 294 of file qsqltablemodel.cpp.
References clear(), d, QSqlError::StatementError, and tableName().
Referenced by QRelation::populateModel(), and QSqlRelationalTableModel::setTable().
|
override |
Sorts the data by column with the sort order order.
This will immediately select data, use setSort() to set a sort order without populating the model with data.
Definition at line 919 of file qsqltablemodel.cpp.
References select(), and setSort().
|
overrideslot |
This reimplemented slot is called by the item delegates when the user stopped editing the current row.
Submits the currently edited row if the model's strategy is set to OnRowChange or OnFieldChange. Does nothing for the OnManualSubmit strategy.
Use submitAll() to submit all pending changes for the OnManualSubmit strategy.
Returns true
on success; otherwise returns false
. Use lastError() to query detailed error information.
Does not automatically repopulate the model. Submitted rows are refreshed from the database on success.
Definition at line 777 of file qsqltablemodel.cpp.
References d, OnFieldChange, OnRowChange, and submitAll().
Referenced by removeRows(), setData(), and setRecord().
|
slot |
Submits all pending changes and returns true
on success.
Returns false
on error, detailed error information can be obtained with lastError().
In OnManualSubmit, on success the model will be repopulated. Any views presenting it will lose their selections.
Note: In OnManualSubmit mode, already submitted changes won't be cleared from the cache when submitAll() fails. This allows transactions to be rolled back and resubmitted without losing data.
Definition at line 703 of file qsqltablemodel.cpp.
References d, QSqlTableModelPrivate::Delete, deleteRowFromTable(), QSqlRecord::indexOf(), QSqlTableModelPrivate::Insert, insertRowIntoTable(), QSqlRecord::isGenerated(), it, QSqlTableModelPrivate::None, OnManualSubmit, QSqlTableModelPrivate::ModifiedRow::op(), Q_ASSERT_X, QSqlTableModelPrivate::ModifiedRow::rec(), select(), selectRow(), QSqlTableModelPrivate::ModifiedRow::setSubmitted(), QSqlTableModelPrivate::ModifiedRow::setValue(), QSqlTableModelPrivate::ModifiedRow::submitted(), QSqlTableModelPrivate::Update, and updateRowInTable().
Referenced by submit().
QString QSqlTableModel::tableName | ( | ) | const |
Returns the name of the currently selected table.
Definition at line 319 of file qsqltablemodel.cpp.
References d.
Referenced by QSqlRelationalTableModel::selectStatement(), and setTable().
|
protectedvirtual |
Updates the given row in the currently active database table with the specified values.
Returns true
if successful; otherwise returns false
.
This is a low-level method that operates directly on the database and should not be called directly. Use setData() to update values. The model will decide depending on its edit strategy when to modify the database.
Note that only values that have the generated-flag set are updated. The generated-flag can be set with QSqlRecord::setGenerated() and tested with QSqlRecord::isGenerated().
Reimplemented in QSqlRelationalTableModel.
Definition at line 599 of file qsqltablemodel.cpp.
References beforeUpdate(), QSqlQueryModelSql::concat(), d, emit, QString::isEmpty(), QSqlDriver::PreparedQueries, primaryValues(), rowCount(), QSqlError::StatementError, QSqlDriver::UpdateStatement, and QSqlDriver::WhereStatement.
Referenced by submitAll(), and QSqlRelationalTableModel::updateRowInTable().