diff options
Diffstat (limited to 'src/sql/models')
-rw-r--r-- | src/sql/models/qsqlquerymodel.cpp | 21 | ||||
-rw-r--r-- | src/sql/models/qsqlquerymodel.h | 3 | ||||
-rw-r--r-- | src/sql/models/qsqlrelationaltablemodel.cpp | 51 | ||||
-rw-r--r-- | src/sql/models/qsqltablemodel.cpp | 37 | ||||
-rw-r--r-- | src/sql/models/qsqltablemodel.h | 2 |
5 files changed, 48 insertions, 66 deletions
diff --git a/src/sql/models/qsqlquerymodel.cpp b/src/sql/models/qsqlquerymodel.cpp index b45b08eb47..6f91fb9739 100644 --- a/src/sql/models/qsqlquerymodel.cpp +++ b/src/sql/models/qsqlquerymodel.cpp @@ -139,8 +139,6 @@ QSqlQueryModel::~QSqlQueryModel() } /*! - \since 4.1 - Fetches more rows from a database. This only affects databases that don't report back the size of a query (see QSqlDriver::hasFeature()). @@ -162,8 +160,6 @@ void QSqlQueryModel::fetchMore(const QModelIndex &parent) } /*! - \since 4.1 - Returns \c true if it is possible to read more rows from the database. This only affects databases that don't report back the size of a query (see QSqlDriver::hasFeature()). @@ -295,7 +291,6 @@ void QSqlQueryModel::endResetModel() } /*! \fn int QSqlQueryModel::rowCount(const QModelIndex &parent) const - \since 4.1 If the database supports returning the size of a query (see QSqlDriver::hasFeature()), the number of rows of the current @@ -384,18 +379,17 @@ void QSqlQueryModel::queryChange() // do nothing } - +#if QT_DEPRECATED_SINCE(6, 2) /*! \deprecated [6.2] Use the \c{setQuery(QSqlQuery &&query)} overload instead. \overload - \since 4.5 - */ void QSqlQueryModel::setQuery(const QSqlQuery &query) { QT_IGNORE_DEPRECATIONS(QSqlQuery copy = query;) setQuery(std::move(copy)); } +#endif // QT_DEPRECATED_SINCE(6, 2) /*! Resets the model and sets the data provider to be the given \a @@ -521,18 +515,15 @@ bool QSqlQueryModel::setHeaderData(int section, Qt::Orientation orientation, } /*! - Returns the QSqlQuery associated with this model. + Returns a reference to the const QSqlQuery object associated with this model. \sa setQuery() */ -QT_WARNING_PUSH -QT_WARNING_DISABLE_DEPRECATED -QSqlQuery QSqlQueryModel::query() const +const QSqlQuery &QSqlQueryModel::query(QT6_IMPL_NEW_OVERLOAD) const { Q_D(const QSqlQueryModel); return d->query; } -QT_WARNING_POP /*! Returns information about the last error that occurred on the @@ -627,7 +618,7 @@ bool QSqlQueryModel::insertColumns(int column, int count, const QModelIndex &par d->colOffsets.append(nVal); Q_ASSERT(d->colOffsets.size() >= d->rec.count()); } - for (int i = column + 1; i < d->colOffsets.count(); ++i) + for (int i = column + 1; i < d->colOffsets.size(); ++i) ++d->colOffsets[i]; } endInsertColumns(); @@ -656,7 +647,7 @@ bool QSqlQueryModel::removeColumns(int column, int count, const QModelIndex &par int i; for (i = 0; i < count; ++i) d->rec.remove(column); - for (i = column; i < d->colOffsets.count(); ++i) + for (i = column; i < d->colOffsets.size(); ++i) d->colOffsets[i] -= count; endRemoveColumns(); diff --git a/src/sql/models/qsqlquerymodel.h b/src/sql/models/qsqlquerymodel.h index ede97b04fb..73308b79e8 100644 --- a/src/sql/models/qsqlquerymodel.h +++ b/src/sql/models/qsqlquerymodel.h @@ -46,7 +46,10 @@ public: #endif void setQuery(QSqlQuery &&query); void setQuery(const QString &query, const QSqlDatabase &db = QSqlDatabase()); +#if QT_SQL_REMOVED_SINCE(6, 5) QSqlQuery query() const; +#endif + const QSqlQuery &query(QT6_DECL_NEW_OVERLOAD) const; virtual void clear(); diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp index cb4c5df6c2..c086d88ffe 100644 --- a/src/sql/models/qsqlrelationaltablemodel.cpp +++ b/src/sql/models/qsqlrelationaltablemodel.cpp @@ -27,7 +27,7 @@ public: inline const static QString relTablePrefix(int i) { return QString::number(i).prepend("relTblAl_"_L1); } }; -typedef QSqlRelationalTableModelSql Sql; +using SqlrTm = QSqlRelationalTableModelSql; /*! \class QSqlRelation @@ -253,7 +253,7 @@ public: void QSqlRelationalTableModelPrivate::clearChanges() { - for (int i = 0; i < relations.count(); ++i) { + for (int i = 0; i < relations.size(); ++i) { QRelation &rel = relations[i]; rel.clear(); } @@ -277,7 +277,7 @@ int QSqlRelationalTableModelPrivate::nameToIndex(const QString &name) const void QSqlRelationalTableModelPrivate::clearCache() { - for (int i = 0; i < relations.count(); ++i) + for (int i = 0; i < relations.size(); ++i) relations[i].clearDictionary(); QSqlTableModelPrivate::clearCache(); @@ -395,7 +395,7 @@ QVariant QSqlRelationalTableModel::data(const QModelIndex &index, int role) cons { Q_D(const QSqlRelationalTableModel); - if (role == Qt::DisplayRole && index.column() >= 0 && index.column() < d->relations.count() && + if (role == Qt::DisplayRole && index.column() >= 0 && index.column() < d->relations.size() && d->relations.value(index.column()).isValid()) { QRelation &relation = d->relations[index.column()]; if (!relation.isDictionaryInitialized()) @@ -438,7 +438,7 @@ bool QSqlRelationalTableModel::setData(const QModelIndex &index, const QVariant int role) { Q_D(QSqlRelationalTableModel); - if ( role == Qt::EditRole && index.column() > 0 && index.column() < d->relations.count() + if ( role == Qt::EditRole && index.column() > 0 && index.column() < d->relations.size() && d->relations.value(index.column()).isValid()) { QRelation &relation = d->relations[index.column()]; if (!relation.isDictionaryInitialized()) @@ -540,12 +540,12 @@ QString QSqlRelationalTableModel::selectStatement() const QString fList; QString conditions; - QString from = Sql::from(tableName()); + QString from = SqlrTm::from(tableName()); for (int i = 0; i < d->baseRec.count(); ++i) { QSqlRelation relation = d->relations.value(i).rel; const QString tableField = d->fullyQualifiedFieldName(tableName(), d->db.driver()->escapeIdentifier(d->baseRec.fieldName(i), QSqlDriver::FieldName)); if (relation.isValid()) { - const QString relTableAlias = Sql::relTablePrefix(i); + const QString relTableAlias = SqlrTm::relTablePrefix(i); QString displayTableField = d->fullyQualifiedFieldName(relTableAlias, relation.displayColumn()); // Duplicate field names must be aliased @@ -559,36 +559,37 @@ QString QSqlRelationalTableModel::selectStatement() const QString alias = QString::fromLatin1("%1_%2_%3") .arg(relTableName, displayColumn, QString::number(fieldNames.value(fieldList[i]))); alias.truncate(d->db.driver()->maximumIdentifierLength(QSqlDriver::FieldName)); - displayTableField = Sql::as(displayTableField, alias); + alias = d->db.driver()->escapeIdentifier(alias, QSqlDriver::FieldName); + displayTableField = SqlrTm::as(displayTableField, alias); --fieldNames[fieldList[i]]; } - fList = Sql::comma(fList, displayTableField); + fList = SqlrTm::comma(fList, displayTableField); // Join related table - const QString tblexpr = Sql::concat(relation.tableName(), relTableAlias); + const QString tblexpr = SqlrTm::concat(relation.tableName(), relTableAlias); const QString relTableField = d->fullyQualifiedFieldName(relTableAlias, relation.indexColumn()); - const QString cond = Sql::eq(tableField, relTableField); + const QString cond = SqlrTm::eq(tableField, relTableField); if (d->joinMode == QSqlRelationalTableModel::InnerJoin) { // FIXME: InnerJoin code is known to be broken. // Use LeftJoin mode if you want correct behavior. - from = Sql::comma(from, tblexpr); - conditions = Sql::et(conditions, cond); + from = SqlrTm::comma(from, tblexpr); + conditions = SqlrTm::et(conditions, cond); } else { - from = Sql::concat(from, Sql::leftJoin(tblexpr)); - from = Sql::concat(from, Sql::on(cond)); + from = SqlrTm::concat(from, SqlrTm::leftJoin(tblexpr)); + from = SqlrTm::concat(from, SqlrTm::on(cond)); } } else { - fList = Sql::comma(fList, tableField); + fList = SqlrTm::comma(fList, tableField); } } if (fList.isEmpty()) return QString(); - const QString stmt = Sql::concat(Sql::select(fList), from); - const QString where = Sql::where(Sql::et(Sql::paren(conditions), Sql::paren(filter()))); - return Sql::concat(Sql::concat(stmt, where), orderByClause()); + const QString stmt = SqlrTm::concat(SqlrTm::select(fList), from); + const QString where = SqlrTm::where(SqlrTm::et(SqlrTm::paren(conditions), SqlrTm::paren(filter()))); + return SqlrTm::concat(SqlrTm::concat(stmt, where), orderByClause()); } /*! @@ -603,7 +604,7 @@ QString QSqlRelationalTableModel::selectStatement() const QSqlTableModel *QSqlRelationalTableModel::relationModel(int column) const { Q_D(const QSqlRelationalTableModel); - if (column < 0 || column >= d->relations.count()) + if (column < 0 || column >= d->relations.size()) return nullptr; QRelation &relation = const_cast<QSqlRelationalTableModelPrivate *>(d)->relations[column]; @@ -643,7 +644,6 @@ void QSqlRelationalTableModel::clear() \value LeftJoin - Left join mode, returns all rows from the left table (table_name1), even if there are no matches in the right table (table_name2). \sa QSqlRelationalTableModel::setJoinMode() - \since 4.8 */ /*! @@ -652,7 +652,6 @@ void QSqlRelationalTableModel::clear() LeftJoin mode if you want to show them. \sa QSqlRelationalTableModel::JoinMode - \since 4.8 */ void QSqlRelationalTableModel::setJoinMode( QSqlRelationalTableModel::JoinMode joinMode ) { @@ -732,9 +731,9 @@ QString QSqlRelationalTableModel::orderByClause() const if (!rel.isValid()) return QSqlTableModel::orderByClause(); - QString f = d->fullyQualifiedFieldName(Sql::relTablePrefix(d->sortColumn), rel.displayColumn()); - f = d->sortOrder == Qt::AscendingOrder ? Sql::asc(f) : Sql::desc(f); - return Sql::orderBy(f); + QString f = d->fullyQualifiedFieldName(SqlrTm::relTablePrefix(d->sortColumn), rel.displayColumn()); + f = d->sortOrder == Qt::AscendingOrder ? SqlrTm::asc(f) : SqlrTm::desc(f); + return SqlrTm::orderBy(f); } /*! @@ -749,7 +748,7 @@ bool QSqlRelationalTableModel::removeColumns(int column, int count, const QModel for (int i = 0; i < count; ++i) { d->baseRec.remove(column); - if (d->relations.count() > column) + if (d->relations.size() > column) d->relations.remove(column); } return QSqlTableModel::removeColumns(column, count, parent); diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp index 1fed690170..265d7782a0 100644 --- a/src/sql/models/qsqltablemodel.cpp +++ b/src/sql/models/qsqltablemodel.cpp @@ -19,7 +19,7 @@ QT_BEGIN_NAMESPACE using namespace Qt::StringLiterals; -typedef QSqlTableModelSql Sql; +using SqlTm = QSqlTableModelSql; QSqlTableModelPrivate::~QSqlTableModelPrivate() { @@ -32,7 +32,7 @@ QSqlTableModelPrivate::~QSqlTableModelPrivate() QSqlRecord QSqlTableModelPrivate::record(const QList<QVariant> &values) const { QSqlRecord r = rec; - for (int i = 0; i < r.count() && i < values.count(); ++i) + for (int i = 0; i < r.count() && i < values.size(); ++i) r.setValue(i, values.at(i)); return r; } @@ -205,7 +205,7 @@ bool QSqlTableModelPrivate::exec(const QString &stmt, bool prepStatement, want to resolve foreign keys. \sa QSqlRelationalTableModel, QSqlQuery, {Model/View Programming}, - {Table Model Example}, {Cached Table Example} + {Table Model Example}, {Cached SQL Table} */ /*! @@ -342,10 +342,9 @@ bool QSqlTableModel::select() d->clearCache(); - QSqlQuery qu(query, d->db); - setQuery(qu); + this->QSqlQueryModel::setQuery(query, d->db); - if (!qu.isActive() || lastError().isValid()) { + if (!d->query.isActive() || lastError().isValid()) { // something went wrong - revert to non-select state d->initRecordAndPrimaryIndex(); endResetModel(); @@ -380,9 +379,9 @@ bool QSqlTableModel::selectRow(int row) d->tableName, primaryValues(row), false); - static const QString wh = Sql::where() + Sql::sp(); + static const QString wh = SqlTm::where() + SqlTm::sp(); if (d->filter.startsWith(wh, Qt::CaseInsensitive)) - d->filter.remove(0, wh.length()); + d->filter.remove(0, wh.size()); QString stmt; @@ -582,18 +581,6 @@ bool QSqlTableModel::clearItemData(const QModelIndex &index) } /*! - This function simply calls QSqlQueryModel::setQuery(\a query). - You should normally not call it on a QSqlTableModel. Instead, use - setTable(), setSort(), setFilter(), etc., to set up the query. - - \sa selectStatement() -*/ -void QSqlTableModel::setQuery(const QSqlQuery &query) -{ - QT_IGNORE_DEPRECATIONS(QSqlQueryModel::setQuery(query);) -} - -/*! Updates the given \a row in the currently active database table with the specified \a values. Returns \c true if successful; otherwise returns \c false. @@ -627,7 +614,7 @@ bool QSqlTableModel::updateRowInTable(int row, const QSqlRecord &values) return false; } - return d->exec(Sql::concat(stmt, where), prepStatement, rec, whereValues); + return d->exec(SqlTm::concat(stmt, where), prepStatement, rec, whereValues); } @@ -695,7 +682,7 @@ bool QSqlTableModel::deleteRowFromTable(int row) return false; } - return d->exec(Sql::concat(stmt, where), prepStatement, QSqlRecord() /* no new values */, whereValues); + return d->exec(SqlTm::concat(stmt, where), prepStatement, QSqlRecord() /* no new values */, whereValues); } /*! @@ -967,8 +954,8 @@ QString QSqlTableModel::orderByClause() const QString field = d->db.driver()->escapeIdentifier(d->tableName, QSqlDriver::TableName) + u'.' + d->db.driver()->escapeIdentifier(f.name(), QSqlDriver::FieldName); - field = d->sortOrder == Qt::AscendingOrder ? Sql::asc(field) : Sql::desc(field); - return Sql::orderBy(field); + field = d->sortOrder == Qt::AscendingOrder ? SqlTm::asc(field) : SqlTm::desc(field); + return SqlTm::orderBy(field); } /*! @@ -1010,7 +997,7 @@ QString QSqlTableModel::selectStatement() const QString(), QSqlError::StatementError); return stmt; } - return Sql::concat(Sql::concat(stmt, Sql::where(d->filter)), orderByClause()); + return SqlTm::concat(SqlTm::concat(stmt, SqlTm::where(d->filter)), orderByClause()); } /*! diff --git a/src/sql/models/qsqltablemodel.h b/src/sql/models/qsqltablemodel.h index fc04d72a0d..8af3f84c59 100644 --- a/src/sql/models/qsqltablemodel.h +++ b/src/sql/models/qsqltablemodel.h @@ -99,7 +99,9 @@ protected: virtual QString selectStatement() const; void setPrimaryKey(const QSqlIndex &key); +#if QT_SQL_REMOVED_SINCE(6, 5) void setQuery(const QSqlQuery &query); +#endif QModelIndex indexInQuery(const QModelIndex &item) const override; QSqlRecord primaryValues(int row) const; }; |