added contains method to string field type [skip ci]

This commit is contained in:
Hamed Masafi 2019-03-08 12:44:07 +03:30
parent 1b02d795a9
commit 0e61d62ab6
3 changed files with 5 additions and 47 deletions

View File

@ -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,

View File

@ -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);
}

View File

@ -137,7 +137,7 @@ Q_OUTOFLINE_TEMPLATE QList<T *> Query<T>::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();