CopperSpice API
1.9.1
|
The QSqlQueryModel class provides a read-only data model for SQL result sets. More...
Public Methods | |
QSqlQueryModel (QObject *parent=nullptr) | |
virtual | ~QSqlQueryModel () |
bool | canFetchMore (const QModelIndex &parent=QModelIndex ()) const override |
virtual void | clear () |
int | columnCount (const QModelIndex &index=QModelIndex ()) const override |
QVariant | data (const QModelIndex &item, int role=Qt::DisplayRole) const override |
void | fetchMore (const QModelIndex &parent=QModelIndex ()) override |
QVariant | headerData (int section, Qt::Orientation orientation, int role=Qt::DisplayRole) const override |
bool | insertColumns (int column, int count, const QModelIndex &parent=QModelIndex ()) override |
QSqlError | lastError () const |
QSqlQuery | query () const |
QSqlRecord | record () const |
QSqlRecord | record (int row) const |
bool | removeColumns (int column, int count, const QModelIndex &parent=QModelIndex ()) override |
int | rowCount (const QModelIndex &index=QModelIndex ()) const override |
bool | setHeaderData (int section, Qt::Orientation orientation, const QVariant &value, int role=Qt::EditRole) override |
void | setQuery (const QSqlQuery &query) |
void | setQuery (const QString &query, const QSqlDatabase &db=QSqlDatabase ()) |
Public Methods inherited from QAbstractTableModel | |
QAbstractTableModel (QObject *parent=nullptr) | |
~QAbstractTableModel () | |
bool | dropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override |
Qt::ItemFlags | flags (const QModelIndex &index) const override |
QModelIndex | index (int row, int column, const QModelIndex &parent=QModelIndex ()) const override |
QObject * | parent () const |
QModelIndex | sibling (int row, int column, const QModelIndex &index) const override |
Public Methods inherited from QAbstractItemModel | |
QAbstractItemModel (QObject *parent=nullptr) | |
virtual | ~QAbstractItemModel () |
virtual QModelIndex | buddy (const QModelIndex &index) const |
virtual bool | canDropMimeData (const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) const |
bool | hasIndex (int row, int column, const QModelIndex &parent=QModelIndex ()) const |
bool | insertColumn (int column, const QModelIndex &parent=QModelIndex ()) |
bool | insertRow (int row, const QModelIndex &parent=QModelIndex ()) |
virtual bool | insertRows (int row, int count, const QModelIndex &parent=QModelIndex ()) |
virtual QMap< int, QVariant > | itemData (const QModelIndex &index) const |
virtual QModelIndexList | match (const QModelIndex &start, int role, const QVariant &value, int hits=1, Qt::MatchFlags flags=Qt::MatchFlags (Qt::MatchStartsWith|Qt::MatchWrap)) const |
virtual QMimeData * | mimeData (const QModelIndexList &indexes) const |
virtual QStringList | mimeTypes () const |
bool | moveColumn (const QModelIndex &sourceParent, int sourceColumn, const QModelIndex &destinationParent, int destinationChild) |
virtual bool | moveColumns (const QModelIndex &sourceParent, int sourceColumn, int count, const QModelIndex &destinationParent, int destinationChild) |
bool | moveRow (const QModelIndex &sourceParent, int sourceRow, const QModelIndex &destinationParent, int destinationChild) |
virtual bool | moveRows (const QModelIndex &sourceParent, int sourceRow, int count, const QModelIndex &destinationParent, int destinationChild) |
QObject * | parent () const |
bool | removeColumn (int column, const QModelIndex &parent=QModelIndex ()) |
bool | removeRow (int row, const QModelIndex &parent=QModelIndex ()) |
virtual bool | removeRows (int row, int count, const QModelIndex &parent=QModelIndex ()) |
virtual QMultiHash< int, QString > | roleNames () const |
virtual bool | setData (const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) |
virtual bool | setItemData (const QModelIndex &index, const QMap< int, QVariant > &roles) |
virtual void | sort (int column, Qt::SortOrder order=Qt::AscendingOrder) |
virtual QSize | span (const QModelIndex &index) const |
virtual Qt::DropActions | supportedDragActions () const |
virtual Qt::DropActions | supportedDropActions () const |
Public Methods inherited from QObject | |
QObject (QObject *parent=nullptr) | |
~QObject () | |
bool | blockSignals (bool block) |
const QList< QObject * > & | children () const |
bool | connect (const QObject *sender, const QString &signalMethod, const QString &location, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection) |
bool | connect (const QObject *sender, const QString &signalMethod, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection) |
bool | disconnect (const QObject *receiver, const QString &slotMethod=QString ()) const |
bool | disconnect (const QString &signalMethod, const QString &location, const QObject *receiver=nullptr, const QString &slotMethod=QString ()) const |
bool | disconnect (const QString &signalMethod=QString (), const QObject *receiver=nullptr, const QString &slotMethod=QString ()) const |
void | dumpObjectInfo () |
void | dumpObjectTree () |
QList< QString > | dynamicPropertyNames () const |
virtual bool | event (QEvent *event) |
virtual bool | eventFilter (QObject *watched, QEvent *event) |
template<typename T > | |
T | findChild (const QString &childName=QString ()) const |
template<class T > | |
QList< T > | findChildren (const QRegularExpression ®Exp, Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
template<class T > | |
QList< T > | findChildren (const QString &childName=QString (), Qt::FindChildOptions options=Qt::FindChildrenRecursively) const |
bool | inherits (const QString &className) const |
void | installEventFilter (QObject *filterObj) |
bool | isWidgetType () const |
bool | isWindowType () const |
void | killTimer (int id) |
const QMetaObject * | metaObject () const |
void | moveToThread (QThread *targetThread) |
QString | objectName () const |
QObject * | parent () const |
template<class T = QVariant> | |
T | property (const QString &name) const |
void | removeEventFilter (QObject *obj) |
void | setObjectName (const QString &name) |
void | setParent (QObject *parent) |
bool | setProperty (const QString &name, const QVariant &value) |
bool | signalsBlocked () const |
int | startTimer (int interval, Qt::TimerType timerType=Qt::CoarseTimer) |
QThread * | thread () const |
Protected Methods | |
virtual QModelIndex | indexInQuery (const QModelIndex &item) const |
virtual void | queryChange () |
void | setLastError (const QSqlError &error) |
Protected Methods inherited from QAbstractItemModel | |
void | beginInsertColumns (const QModelIndex &parent, int first, int last) |
void | beginInsertRows (const QModelIndex &parent, int first, int last) |
bool | beginMoveColumns (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationColumn) |
bool | beginMoveRows (const QModelIndex &sourceParent, int sourceFirst, int sourceLast, const QModelIndex &destinationParent, int destinationRow) |
void | beginRemoveColumns (const QModelIndex &parent, int first, int last) |
void | beginRemoveRows (const QModelIndex &parent, int first, int last) |
void | beginResetModel () |
void | changePersistentIndex (const QModelIndex &from, const QModelIndex &to) |
void | changePersistentIndexList (const QModelIndexList &from, const QModelIndexList &to) |
QModelIndex | createIndex (int row, int column, quintptr id) const |
QModelIndex | createIndex (int row, int column, void *data=nullptr) const |
void | endInsertColumns () |
void | endInsertRows () |
void | endMoveColumns () |
void | endMoveRows () |
void | endRemoveColumns () |
void | endRemoveRows () |
void | endResetModel () |
QModelIndexList | persistentIndexList () const |
Protected Methods inherited from QObject | |
virtual void | childEvent (QChildEvent *event) |
virtual void | connectNotify (const QMetaMethod &signalMethod) const |
virtual void | customEvent (QEvent *event) |
virtual void | disconnectNotify (const QMetaMethod &signalMethod) const |
bool | isSignalConnected (const QMetaMethod &signalMethod) const |
int | receivers (const QString &signal) const |
QObject * | sender () const |
int | senderSignalIndex () const |
virtual void | timerEvent (QTimerEvent *event) |
Additional Inherited Members | |
Public Signals inherited from QAbstractItemModel | |
void | columnsAboutToBeInserted (const QModelIndex &parent, int first, int last) |
void | columnsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn) |
void | columnsAboutToBeRemoved (const QModelIndex &parent, int first, int last) |
void | columnsInserted (const QModelIndex &parent, int first, int last) |
void | columnsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationColumn) |
void | columnsRemoved (const QModelIndex &parent, int first, int last) |
void | dataChanged (const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector< int > &roles=QVector< int >()) |
void | headerDataChanged (Qt::Orientation orientation, int first, int last) |
void | layoutAboutToBeChanged (const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint) |
void | layoutChanged (const QList< QPersistentModelIndex > &parents=QList< QPersistentModelIndex >(), QAbstractItemModel::LayoutChangeHint hint=QAbstractItemModel::NoLayoutChangeHint) |
void | modelAboutToBeReset () |
void | modelReset () |
void | rowsAboutToBeInserted (const QModelIndex &parent, int first, int last) |
void | rowsAboutToBeMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow) |
void | rowsAboutToBeRemoved (const QModelIndex &parent, int first, int last) |
void | rowsInserted (const QModelIndex &parent, int first, int last) |
void | rowsMoved (const QModelIndex &sourceParent, int sourceStart, int sourceEnd, const QModelIndex &destinationParent, int destinationRow) |
void | rowsRemoved (const QModelIndex &parent, int first, int last) |
Public Signals inherited from QObject | |
void | destroyed (QObject *obj=nullptr) |
void | objectNameChanged (const QString &objectName) |
Public Slots inherited from QAbstractItemModel | |
virtual void | revert () |
virtual bool | submit () |
Public Slots inherited from QObject | |
void | deleteLater () |
Static Public Methods inherited from QObject | |
static bool | connect (const QObject *sender, const QMetaMethod &signalMethod, const QObject *receiver, const QMetaMethod &slotMethod, Qt::ConnectionType type=Qt::AutoConnection) |
static bool | connect (const QObject *sender, const QString &signalMethod, const QObject *receiver, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection, const QString &location=QString ()) |
static bool | connect (const QObject *sender, const QString &signalMethod, const QString &location, const QObject *receiver, const QString &slotMethod, Qt::ConnectionType type=Qt::AutoConnection) |
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class SlotClass , class... SlotArgs, class SlotReturn > | |
static bool | connect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, SlotReturn (SlotClass::*slotMethod)(SlotArgs...), Qt::ConnectionType type=Qt::AutoConnection) |
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class T > | |
static bool | connect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, T slotLambda, Qt::ConnectionType type=Qt::AutoConnection) |
static bool | disconnect (const QObject *sender, const QMetaMethod &signalMethod, const QObject *receiver, const QMetaMethod &slotMethod) |
static bool | disconnect (const QObject *sender, const QString &signalMethod, const QObject *receiver, const QString &slotMethod) |
static bool | disconnect (const QObject *sender, const QString &signalMethod, const QString &location, const QObject *receiver, const QString &slotMethod) |
static bool | disconnect (const QObject *sender, std::nullptr_t, const QObject *receiver, std::nullptr_t) |
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class SlotClass , class... SlotArgs, class SlotReturn > | |
static bool | disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, SlotReturn (SlotClass::*slotMethod)(SlotArgs...)) |
template<class Sender , class SignalClass , class... SignalArgs, class Receiver > | |
static bool | disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, std::nullptr_t slotMethod=nullptr) |
template<class Sender , class SignalClass , class... SignalArgs, class Receiver , class T > | |
static bool | disconnect (const Sender *sender, void (SignalClass::*signalMethod)(SignalArgs...), const Receiver *receiver, T slotMethod) |
static QMetaObject & | staticMetaObject () |
static QString | tr (const char *text, const char *comment=nullptr, std::optional< int > numArg=std::optional< int >()) |
Protected Slots inherited from QAbstractItemModel | |
void | resetInternalData () |
Properties inherited from QObject | |
objectName | |
Related Functions inherited from QObject | |
T | qobject_cast (QObject *object) |
QObjectList | |
The QSqlQueryModel class provides a read only data model for SQL result sets. This class is a high level interface for executing SQL statements and traversing the result set. It is built on top of the lower level QSqlQuery and can be used to provide data to view classes such as QTableView.
If the database does not return the number of selected rows in a query, the model will fetch rows incrementally. Refer to fetchMore() for more information.
In the following code the setQuery() is called on the model and then the column headers are configured.
QSqlQueryModel can also be used to access a database without binding it to a view. The code shown below extracts the salary field from record 4 in the result set.
The QSqlQueryModel is read only. In order to write to the database using this model you will need to inherit from this class and override setData() and flags().
Another option is to use QSqlTableModel which provides a read /write model based on a single database table.
|
explicit |
Creates an empty QSqlQueryModel with the given parent.
|
virtual |
Destroys the object and frees any allocated resources.
|
overridevirtual |
The parent should always be an invalid QModelIndex. Returns true if it is possible to read more rows from the database. This only affects databases that do not report back the size of a query.
Reimplemented from QAbstractItemModel::canFetchMore()
|
virtual |
Clears the model and releases any acquired resource.
Reimplemented in QSqlRelationalTableModel::clear(), QSqlTableModel::clear()
|
overridevirtual |
Implements QAbstractItemModel::columnCount()
|
overridevirtual |
Returns the value for the specified item and role. If item is out of bounds or if an error occurred, an invalid QVariant is returned.
Implements QAbstractItemModel::data()
Reimplemented in QSqlRelationalTableModel::data(), QSqlTableModel::data()
|
overridevirtual |
The parent should always be an invalid QModelIndex. Fetches more rows from a database. This only affects databases that do not report back the size of a query (see QSqlDriver::hasFeature()). The following example shows how to force fetching of the entire result set.
Reimplemented from QAbstractItemModel::fetchMore()
|
overridevirtual |
Returns the header data for the given role in the section of the header with the specified orientation.
Reimplemented from QAbstractItemModel::headerData()
Reimplemented in QSqlTableModel::headerData()
|
protectedvirtual |
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 in QSqlTableModel::indexInQuery()
|
overridevirtual |
Inserts count columns into the model at position column. The parent object must always be an invalid QModelIndex, since the model does not support parent-child relationships. Returns true if column is within bounds, otherwise returns false. By default inserted columns are empty. To fill them with data, reimplement data() and handle any inserted column separately.
Reimplemented from QAbstractItemModel::insertColumns()
QSqlError QSqlQueryModel::lastError | ( | ) | const |
Returns information about the last error that occurred on the database.
QSqlQuery QSqlQueryModel::query | ( | ) | const |
Returns the QSqlQuery associated with this model.
|
protectedvirtual |
This method is called whenever the query changes. The default implementation does nothing. Use query() to retrieve the new query.
QSqlRecord QSqlQueryModel::record | ( | ) | const |
Returns an empty record containing information about the fields of the current query. If the model is not initialized, an empty record will be returned.
QSqlRecord QSqlQueryModel::record | ( | int | row | ) | const |
Returns the record containing information about the fields of the current query. 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.
|
overridevirtual |
Removes count columns from the model starting from position column. The parent object must always be an invalid QModelIndex, since the model does not support parent-child relationships. Removing columns effectively hides them. It does not affect the underlying QSqlQuery.
Returns true if the columns were removed, otherwise returns false.
Reimplemented from QAbstractItemModel::removeColumns()
Reimplemented in QSqlTableModel::removeColumns(), QSqlRelationalTableModel::removeColumns()
|
overridevirtual |
If the database supports returning the size of a query the number of rows of the current query is returned. Otherwise, returns the number of rows currently cached on the client. The index should always be an invalid QModelIndex.
Implements QAbstractItemModel::rowCount()
Reimplemented in QSqlTableModel::rowCount()
|
overridevirtual |
Sets the caption for a horizontal header for the specified role to value. This is useful if the model is used to display data in a view (e.g., QTableView). Returns true if orientation is Qt::Horizontal and the section refers to a valid section, otherwise returns false. This method can not be used to modify values in the database since the model is read only.
Reimplemented from QAbstractItemModel::setHeaderData()
|
protected |
Protected method which allows derived classes to set the value of the last error that occurred on the database to error.
void QSqlQueryModel::setQuery | ( | const QSqlQuery & | query | ) |
Resets the model and sets the data provider to be the given query. The query must be active and must not be isForwardOnly(). Calling lastError() can be used to retrieve verbose information if there was an error setting the query. Calling setQuery() will remove any inserted columns.
void QSqlQueryModel::setQuery | ( | const QString & | query, |
const QSqlDatabase & | db = QSqlDatabase() |
||
) |
Executes the query for the given database connection db. If no database or an invalid database is specified, the default connection is used. Calling lastError() can be used to retrieve verbose information if there was an error setting the query.