summaryrefslogtreecommitdiffstats
path: root/src/sql/models
diff options
context:
space:
mode:
authorMark Brand <mabrand@mabrand.nl>2012-09-17 15:49:31 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2012-09-24 21:27:51 +0200
commit7b95df2da0407eb20b514cc79570b1720d7a6251 (patch)
tree51f66f30bae8047bf9bb8e57f7e747686d29e2d0 /src/sql/models
parent3c2733e45f7ce0ce9a626d1347bb83ddc41013b2 (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.cpp10
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);