diff options
author | Mark Brand <mabrand@mabrand.nl> | 2012-09-17 15:49:31 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2012-09-24 21:27:51 +0200 |
commit | 7b95df2da0407eb20b514cc79570b1720d7a6251 (patch) | |
tree | 51f66f30bae8047bf9bb8e57f7e747686d29e2d0 /src/sql/models | |
parent | 3c2733e45f7ce0ce9a626d1347bb83ddc41013b2 (diff) |
QSqlTableMode::selectRow(): lack of WHERE clause is an error
Since we only want one row, never ever run a SELECT without a WHERE
clause.
Change-Id: I40a78935f5573111faa3922eae97e6d5961be5f2
Reviewed-by: Andy Shaw <andy.shaw@digia.com>
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Diffstat (limited to 'src/sql/models')
-rw-r--r-- | src/sql/models/qsqltablemodel.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp index f442039d08..c8f230ec6e 100644 --- a/src/sql/models/qsqltablemodel.cpp +++ b/src/sql/models/qsqltablemodel.cpp @@ -427,10 +427,18 @@ bool QSqlTableModel::selectRow(int row) static const QString wh = Sql::where() + Sql::sp(); if (d->filter.startsWith(wh, Qt::CaseInsensitive)) d->filter.remove(0, wh.length()); - const QString stmt = selectStatement(); + + QString stmt; + + if (!d->filter.isEmpty()) + stmt = selectStatement(); + d->sortColumn = table_sort_col; d->filter = table_filter; + if (stmt.isEmpty()) + return false; + { QSqlQuery q(d->db); q.setForwardOnly(true); |