From 7b95df2da0407eb20b514cc79570b1720d7a6251 Mon Sep 17 00:00:00 2001 From: Mark Brand Date: Mon, 17 Sep 2012 15:49:31 +0200 Subject: 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 Reviewed-by: Mark Brand --- src/sql/models/qsqltablemodel.cpp | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'src/sql') 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); -- cgit v1.2.3