added contains method to string field type [skip ci]
This commit is contained in:
parent
1b02d795a9
commit
0e61d62ab6
|
|
@ -828,52 +828,6 @@ QString SqlGeneratorBase::escapeValue(const QVariant &v) const
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
return "'" + serialized + "'";
|
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,
|
QVariant SqlGeneratorBase::unescapeValue(const QMetaType::Type &type,
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,10 @@ public:
|
||||||
return ConditionalPhrase(this, PhraseData::Like, term);
|
return ConditionalPhrase(this, PhraseData::Like, term);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ConditionalPhrase contains(const QString &term) {
|
||||||
|
return ConditionalPhrase(this, PhraseData::Like, "%" + term + "%");
|
||||||
|
}
|
||||||
|
|
||||||
AssignmentPhrase operator =(const QVariant &v) {
|
AssignmentPhrase operator =(const QVariant &v) {
|
||||||
return AssignmentPhrase(this, v);
|
return AssignmentPhrase(this, v);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ Q_OUTOFLINE_TEMPLATE QList<T *> Query<T>::toList(int count)
|
||||||
d->sql = d->database->sqlGenertor()->selectCommand(
|
d->sql = d->database->sqlGenertor()->selectCommand(
|
||||||
d->tableName, d->fieldPhrase, d->wherePhrase, d->orderPhrase,
|
d->tableName, d->fieldPhrase, d->wherePhrase, d->orderPhrase,
|
||||||
d->relations, d->skip, d->take);
|
d->relations, d->skip, d->take);
|
||||||
|
qDebug() << d->sql;
|
||||||
QSqlQuery q = d->database->exec(d->sql);
|
QSqlQuery q = d->database->exec(d->sql);
|
||||||
if (q.lastError().isValid()) {
|
if (q.lastError().isValid()) {
|
||||||
qDebug() << q.lastError().text();
|
qDebug() << q.lastError().text();
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue