diff options
author | Mark Brand <mabrand@mabrand.nl> | 2012-06-05 13:50:03 +0200 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2012-06-06 13:23:51 +0200 |
commit | fc15a1d5e2cb064df7b6e7b9e821e9db20a91b85 (patch) | |
tree | 45355e4d5426f63c158353b0dea18457c76dbf6c /src/sql/kernel/qsqlresult.cpp | |
parent | 637ecd571f10bbab36b3321edb0479d79a542ddb (diff) |
QSqlResult: replace virtual hooks with virtual functions
Instead of virtual functions which would have broken binary
compatibility, virtual_hook() was used to implement the virtual
functionality. Now, since the step to Qt 5.0 allows breaking
binary compatibility, we take the opporunity to simplify the code
using real virtual functions.
SetNumericalPrecision --> setNumericalPrecisionPolicy()
NextResult --> nextResult()
DetachFromResultSet --> detachFromResultSet()
BatchOperation --> execBatch()
Task-number: QTBUG-25252
Change-Id: Idd3a870f876d8b8a7457559d5f31ec2073786a75
Reviewed-by: Bill King <bill.king@nokia.com>
Reviewed-by: Harald Fernengel <harald.fernengel@nokia.com>
Diffstat (limited to 'src/sql/kernel/qsqlresult.cpp')
-rw-r--r-- | src/sql/kernel/qsqlresult.cpp | 34 |
1 files changed, 10 insertions, 24 deletions
diff --git a/src/sql/kernel/qsqlresult.cpp b/src/sql/kernel/qsqlresult.cpp index 03e227bffc..2abcf85786 100644 --- a/src/sql/kernel/qsqlresult.cpp +++ b/src/sql/kernel/qsqlresult.cpp @@ -961,32 +961,24 @@ void QSqlResult::virtual_hook(int, void *) */ bool QSqlResult::execBatch(bool arrayBind) { - if (driver()->hasFeature(QSqlDriver::BatchOperations)) { - virtual_hook(BatchOperation, &arrayBind); - d->resetBindCount(); - return d->error.type() == QSqlError::NoError; - } else { - QVector<QVariant> values = d->values; - if (values.count() == 0) + Q_UNUSED(arrayBind); + + QVector<QVariant> values = d->values; + if (values.count() == 0) + return false; + for (int i = 0; i < values.at(0).toList().count(); ++i) { + for (int j = 0; j < values.count(); ++j) + bindValue(j, values.at(j).toList().at(i), QSql::In); + if (!exec()) return false; - for (int i = 0; i < values.at(0).toList().count(); ++i) { - for (int j = 0; j < values.count(); ++j) - bindValue(j, values.at(j).toList().at(i), QSql::In); - if (!exec()) - return false; - } - return true; } - return false; + return true; } /*! \internal */ void QSqlResult::detachFromResultSet() { - if (driver()->hasFeature(QSqlDriver::FinishQuery) - || driver()->hasFeature(QSqlDriver::SimpleLocking)) - virtual_hook(DetachFromResultSet, 0); } /*! \internal @@ -994,7 +986,6 @@ void QSqlResult::detachFromResultSet() void QSqlResult::setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy policy) { d->precisionPolicy = policy; - virtual_hook(SetNumericalPrecision, &policy); } /*! \internal @@ -1008,11 +999,6 @@ QSql::NumericalPrecisionPolicy QSqlResult::numericalPrecisionPolicy() const */ bool QSqlResult::nextResult() { - if (driver()->hasFeature(QSqlDriver::MultipleResultSets)) { - bool result = false; - virtual_hook(NextResult, &result); - return result; - } return false; } |