From 794af49a3a6654c88342b06b5310f607e9b746fc Mon Sep 17 00:00:00 2001 From: joshua Date: Sun, 11 Apr 2021 12:39:38 +0200 Subject: [PATCH] Element nomenclature SQL query : minor fix the filter "is not empty" in nomenclature don't work for every case. Replace SQL sentence "IS NULL" by "!= ''" because an empty string is not a NULL value string, but a NULL value string is like an empty string --- sources/dataBase/ui/elementquerywidget.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/sources/dataBase/ui/elementquerywidget.cpp b/sources/dataBase/ui/elementquerywidget.cpp index f78ed0e64..8e513cac4 100644 --- a/sources/dataBase/ui/elementquerywidget.cpp +++ b/sources/dataBase/ui/elementquerywidget.cpp @@ -210,7 +210,7 @@ void ElementQueryWidget::setQuery(const QString &query) beginning_rx.append(QString("^(").append(strl.join("|"))); beginning_rx.append(")"); - QRegularExpression rx_is_not_null(beginning_rx + " IS NOT NULL$"); + QRegularExpression rx_is_not_null(beginning_rx + " != ''$"); QRegularExpression rx_is_null (beginning_rx + " IS NULL$"); QRegularExpression rx_like (beginning_rx + QString(" LIKE'%(.+)%'$")); QRegularExpression rx_not_like (beginning_rx + QString(" NOT LIKE'%(.+)%'$")); @@ -310,22 +310,22 @@ QString ElementQueryWidget::queryStr() const case 0: //No filter break; case 1: //Not empty - filter_ += QString(" AND ") += key += " IS NOT NULL"; + filter_ += QStringLiteral(" AND ") += key += " != ''"; break; case 2: //empty - filter_ += QString(" AND ") += key += " IS NULL"; + filter_ += QStringLiteral(" AND ") += key += " IS NULL"; break; case 3: // contain - filter_ += QString(" AND ") += key += QString(" LIKE'%") += f.second += "%'"; + filter_ += QStringLiteral(" AND ") += key += QStringLiteral(" LIKE'%") += f.second += "%'"; break; case 4: // not contain - filter_ += QString(" AND ") += key += QString(" NOT LIKE'%") += f.second += "%'"; + filter_ += QStringLiteral(" AND ") += key += QStringLiteral(" NOT LIKE'%") += f.second += "%'"; break; case 5: // is equal - filter_ += QString(" AND ") += key += QString("='") += f.second += "'"; + filter_ += QStringLiteral(" AND ") += key += QStringLiteral("='") += f.second += "'"; break; case 6: // is not equal - filter_ += QString(" AND ") += key += QString("!='") += f.second += "'"; + filter_ += QStringLiteral(" AND ") += key += QStringLiteral("!='") += f.second += "'"; break; } }