From 0e61d62ab6ccb00ffb57ea4595332d5bb0903bee Mon Sep 17 00:00:00 2001 From: Hamed Masafi Date: Fri, 8 Mar 2019 12:44:07 +0330 Subject: [PATCH] added contains method to string field type [skip ci] --- src/generators/sqlgeneratorbase.cpp | 46 ----------------------------- src/phrases/fieldphrase.h | 4 +++ src/query.h | 2 +- 3 files changed, 5 insertions(+), 47 deletions(-) diff --git a/src/generators/sqlgeneratorbase.cpp b/src/generators/sqlgeneratorbase.cpp index 1c9cafe..4d9bfcd 100644 --- a/src/generators/sqlgeneratorbase.cpp +++ b/src/generators/sqlgeneratorbase.cpp @@ -828,52 +828,6 @@ QString SqlGeneratorBase::escapeValue(const QVariant &v) const return QString(); } return "'" + serialized + "'"; - - switch (v.type()) { - case QVariant::Bool: - return v.toBool() ? "1" : "0"; - - case QVariant::Int: - case QVariant::UInt: - case QVariant::ULongLong: - case QVariant::LongLong: - case QVariant::Double: - return v.toString(); - - case QVariant::Uuid: - return "'" + v.toUuid().toString() + "'"; - - case QVariant::Char: - case QVariant::String: - return "'" + v.toString().replace("'", "''") + "'"; - - case QVariant::DateTime: - return "'" + v.toDateTime().toString(Qt::ISODate) + "'"; - - case QVariant::Date: - return "'" + v.toDate().toString(Qt::ISODate) + "'"; - - case QVariant::Time: - return "'" + v.toTime().toString(Qt::ISODate) + "'"; - - case QVariant::StringList: - case QVariant::List: - return "('" + v.toStringList().join("', '") + "')"; - - case QVariant::Point: - case QVariant::PointF: - case QVariant::Polygon: - case QVariant::PolygonF: - return "'" + _serializer->serialize(v) + "'"; - - case QVariant::Invalid: - qFatal("Invalud field value"); - - default: - qWarning("No field escape rule for: %s", v.typeName()); - Q_UNREACHABLE(); - return QString(); - } } QVariant SqlGeneratorBase::unescapeValue(const QMetaType::Type &type, diff --git a/src/phrases/fieldphrase.h b/src/phrases/fieldphrase.h index ced5a97..6ec3bf4 100644 --- a/src/phrases/fieldphrase.h +++ b/src/phrases/fieldphrase.h @@ -58,6 +58,10 @@ public: return ConditionalPhrase(this, PhraseData::Like, term); } + ConditionalPhrase contains(const QString &term) { + return ConditionalPhrase(this, PhraseData::Like, "%" + term + "%"); + } + AssignmentPhrase operator =(const QVariant &v) { return AssignmentPhrase(this, v); } diff --git a/src/query.h b/src/query.h index d5b2d75..d5cc823 100644 --- a/src/query.h +++ b/src/query.h @@ -137,7 +137,7 @@ Q_OUTOFLINE_TEMPLATE QList Query::toList(int count) d->sql = d->database->sqlGenertor()->selectCommand( d->tableName, d->fieldPhrase, d->wherePhrase, d->orderPhrase, d->relations, d->skip, d->take); - +qDebug() << d->sql; QSqlQuery q = d->database->exec(d->sql); if (q.lastError().isValid()) { qDebug() << q.lastError().text();