wip: remove ascii cast warnings
This commit is contained in:
parent
a6c6c9b4d6
commit
6e186e0365
|
|
@ -219,7 +219,7 @@ bool DatabasePrivate::getCurrectSchema()
|
||||||
if (!nutClassInfoString(q->metaObject()->classInfo(i),
|
if (!nutClassInfoString(q->metaObject()->classInfo(i),
|
||||||
type, name, value)) {
|
type, name, value)) {
|
||||||
|
|
||||||
errorMessage = QString::fromUtf8("No valid table in %1")
|
errorMessage = QStringLiteral("No valid table in %1")
|
||||||
.arg(q->metaObject()->classInfo(i).value());
|
.arg(q->metaObject()->classInfo(i).value());
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -78,7 +78,7 @@ QString MySqlGenerator::fieldType(FieldModel *field)
|
||||||
|
|
||||||
case QMetaType::QString:
|
case QMetaType::QString:
|
||||||
if(field->length)
|
if(field->length)
|
||||||
dbType = QString::fromUtf8("VARCHAR(%1)").arg(field->length);
|
dbType = QStringLiteral("VARCHAR(%1)").arg(field->length);
|
||||||
else
|
else
|
||||||
dbType = QStringLiteral("TEXT");
|
dbType = QStringLiteral("TEXT");
|
||||||
break;
|
break;
|
||||||
|
|
@ -316,7 +316,7 @@ QString MySqlGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
case PhraseData::AddMinutesDateTime:
|
case PhraseData::AddMinutesDateTime:
|
||||||
case PhraseData::AddSeconds:
|
case PhraseData::AddSeconds:
|
||||||
case PhraseData::AddSecondsDateTime:
|
case PhraseData::AddSecondsDateTime:
|
||||||
return QString::fromUtf8("DATE_ADD(%1, INTERVAL %2 %3)")
|
return QStringLiteral("DATE_ADD(%1, INTERVAL %2 %3)")
|
||||||
.arg(createConditionalPhrase(d->left),
|
.arg(createConditionalPhrase(d->left),
|
||||||
d->operand.toString(),
|
d->operand.toString(),
|
||||||
SqlGeneratorBase::dateTimePartName(op));
|
SqlGeneratorBase::dateTimePartName(op));
|
||||||
|
|
@ -333,7 +333,7 @@ QString MySqlGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
case PhraseData::DatePartHour:
|
case PhraseData::DatePartHour:
|
||||||
case PhraseData::DatePartMinute:
|
case PhraseData::DatePartMinute:
|
||||||
case PhraseData::DatePartSecond:
|
case PhraseData::DatePartSecond:
|
||||||
return QString::fromUtf8("%2(%1)")
|
return QStringLiteral("%2(%1)")
|
||||||
.arg(createConditionalPhrase(d->left),
|
.arg(createConditionalPhrase(d->left),
|
||||||
SqlGeneratorBase::dateTimePartName(op));
|
SqlGeneratorBase::dateTimePartName(op));
|
||||||
|
|
||||||
|
|
@ -348,11 +348,11 @@ QString MySqlGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
void MySqlGenerator::appendSkipTake(QString &sql, int skip, int take)
|
void MySqlGenerator::appendSkipTake(QString &sql, int skip, int take)
|
||||||
{
|
{
|
||||||
if (take > 0 && skip > 0) {
|
if (take > 0 && skip > 0) {
|
||||||
sql.append(QString::fromUtf8(" LIMIT %1 OFFSET %2")
|
sql.append(QStringLiteral(" LIMIT %1 OFFSET %2")
|
||||||
.arg(take)
|
.arg(take)
|
||||||
.arg(skip));
|
.arg(skip));
|
||||||
} else if (take > 0) {
|
} else if (take > 0) {
|
||||||
sql.append(QString::fromUtf8(" LIMIT %1").arg(take));
|
sql.append(QStringLiteral(" LIMIT %1").arg(take));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -140,7 +140,7 @@ QString PostgreSqlGenerator::fieldType(FieldModel *field)
|
||||||
|
|
||||||
case QMetaType::QString:
|
case QMetaType::QString:
|
||||||
if(field->length)
|
if(field->length)
|
||||||
dbType = QString("VARCHAR(%1)").arg(field->length);
|
dbType = QStringLiteral("VARCHAR(%1)").arg(field->length);
|
||||||
else
|
else
|
||||||
dbType = QStringLiteral("TEXT");
|
dbType = QStringLiteral("TEXT");
|
||||||
break;
|
break;
|
||||||
|
|
@ -228,11 +228,11 @@ QString PostgreSqlGenerator::escapeValue(const QVariant &v) const
|
||||||
|
|
||||||
if (v.type() == QVariant::Point) {
|
if (v.type() == QVariant::Point) {
|
||||||
QPoint pt = v.toPoint();
|
QPoint pt = v.toPoint();
|
||||||
return QString::fromUtf8("point(%1, %2)").arg(pt.x()).arg(pt.y());
|
return QStringLiteral("point(%1, %2)").arg(pt.x()).arg(pt.y());
|
||||||
}
|
}
|
||||||
if (v.type() == QVariant::PointF) {
|
if (v.type() == QVariant::PointF) {
|
||||||
QPointF pt = v.toPointF();
|
QPointF pt = v.toPointF();
|
||||||
return QString::fromUtf8("point(%1, %2)").arg(pt.x()).arg(pt.y());
|
return QStringLiteral("point(%1, %2)").arg(pt.x()).arg(pt.y());
|
||||||
}
|
}
|
||||||
if (v.userType() == QMetaType::QJsonDocument) {
|
if (v.userType() == QMetaType::QJsonDocument) {
|
||||||
return QStringLiteral("'")
|
return QStringLiteral("'")
|
||||||
|
|
@ -249,9 +249,10 @@ QString PostgreSqlGenerator::escapeValue(const QVariant &v) const
|
||||||
pt = pol.at(i);
|
pt = pol.at(i);
|
||||||
if (!ret.isEmpty())
|
if (!ret.isEmpty())
|
||||||
ret.append(QStringLiteral("),("));
|
ret.append(QStringLiteral("),("));
|
||||||
ret.append(QString::number(pt.x()) + ", " + QString::number(pt.y()));
|
ret.append(QString::number(pt.x())
|
||||||
|
+ QStringLiteral(", ") + QString::number(pt.y()));
|
||||||
}
|
}
|
||||||
return "'((" + ret + "))'";
|
return QStringLiteral("'((") + ret + QStringLiteral("))'");
|
||||||
}
|
}
|
||||||
if (v.type() == QVariant::PolygonF) {
|
if (v.type() == QVariant::PolygonF) {
|
||||||
QString ret;
|
QString ret;
|
||||||
|
|
@ -263,7 +264,7 @@ QString PostgreSqlGenerator::escapeValue(const QVariant &v) const
|
||||||
ret.append(QStringLiteral("),("));
|
ret.append(QStringLiteral("),("));
|
||||||
ret.append(QString::number(pt.x()) + ", " + QString::number(pt.y()));
|
ret.append(QString::number(pt.x()) + ", " + QString::number(pt.y()));
|
||||||
}
|
}
|
||||||
return "'((" + ret + "))'";
|
return QStringLiteral("'((") + ret + QStringLiteral("))'");
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -352,7 +353,7 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
|
|
||||||
if (d->type == PhraseData::WithVariant) {
|
if (d->type == PhraseData::WithVariant) {
|
||||||
if (isPostGisType(d->operand.type()) && d->operatorCond == PhraseData::Equal) {
|
if (isPostGisType(d->operand.type()) && d->operatorCond == PhraseData::Equal) {
|
||||||
return QString::fromUtf8("%1 ~= %2")
|
return QStringLiteral("%1 ~= %2")
|
||||||
.arg(SqlGeneratorBase::createConditionalPhrase(d->left),
|
.arg(SqlGeneratorBase::createConditionalPhrase(d->left),
|
||||||
escapeValue(d->operand));
|
escapeValue(d->operand));
|
||||||
}
|
}
|
||||||
|
|
@ -369,7 +370,7 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
case PhraseData::AddMinutesDateTime:
|
case PhraseData::AddMinutesDateTime:
|
||||||
case PhraseData::AddSeconds:
|
case PhraseData::AddSeconds:
|
||||||
case PhraseData::AddSecondsDateTime:
|
case PhraseData::AddSecondsDateTime:
|
||||||
return QString::fromUtf8("%1 + interval '%2 %3'")
|
return QStringLiteral("%1 + interval '%2 %3'")
|
||||||
.arg(createConditionalPhrase(d->left),
|
.arg(createConditionalPhrase(d->left),
|
||||||
d->operand.toString(),
|
d->operand.toString(),
|
||||||
SqlGeneratorBase::dateTimePartName(op));
|
SqlGeneratorBase::dateTimePartName(op));
|
||||||
|
|
@ -387,7 +388,7 @@ QString PostgreSqlGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
case PhraseData::DatePartHour:
|
case PhraseData::DatePartHour:
|
||||||
case PhraseData::DatePartMinute:
|
case PhraseData::DatePartMinute:
|
||||||
case PhraseData::DatePartSecond:
|
case PhraseData::DatePartSecond:
|
||||||
return QString::fromUtf8("date_part('%2', %1)")
|
return QStringLiteral("date_part('%2', %1)")
|
||||||
.arg(createConditionalPhrase(d->left),
|
.arg(createConditionalPhrase(d->left),
|
||||||
SqlGeneratorBase::dateTimePartName(op));
|
SqlGeneratorBase::dateTimePartName(op));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -117,7 +117,7 @@ QString SqlGeneratorBase::recordsPhrase(TableModel *table)
|
||||||
foreach (FieldModel *f, table->fields()) {
|
foreach (FieldModel *f, table->fields()) {
|
||||||
if (!ret.isEmpty())
|
if (!ret.isEmpty())
|
||||||
ret.append(QLatin1String(", "));
|
ret.append(QLatin1String(", "));
|
||||||
ret.append(QString::fromUtf8("%1.%2 AS \"%1.%2\"").arg(table->name(), f->name));
|
ret.append(QStringLiteral("%1.%2 AS \"%1.%2\"").arg(table->name(), f->name));
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
@ -134,7 +134,7 @@ QString SqlGeneratorBase::insertBulk(const QString &tableName, const PhraseList
|
||||||
sql.append(QLatin1String(", "));
|
sql.append(QLatin1String(", "));
|
||||||
sql.append(QLatin1String("(") + values.join(QLatin1String(", ")) + QLatin1String(")"));
|
sql.append(QLatin1String("(") + values.join(QLatin1String(", ")) + QLatin1String(")"));
|
||||||
}
|
}
|
||||||
sql = QString::fromUtf8("INSERT INTO %1 (%2) VALUES %3")
|
sql = QStringLiteral("INSERT INTO %1 (%2) VALUES %3")
|
||||||
.arg(tableName, createFieldPhrase(ph), sql);
|
.arg(tableName, createFieldPhrase(ph), sql);
|
||||||
|
|
||||||
removeTableNames(sql);
|
removeTableNames(sql);
|
||||||
|
|
@ -165,7 +165,7 @@ QStringList SqlGeneratorBase::constraints(TableModel *table)
|
||||||
|
|
||||||
QString SqlGeneratorBase::relationDeclare(const RelationModel *relation)
|
QString SqlGeneratorBase::relationDeclare(const RelationModel *relation)
|
||||||
{
|
{
|
||||||
return QString::fromUtf8("FOREIGN KEY (FK_%1) REFERENCES %2(%1)")
|
return QStringLiteral("FOREIGN KEY (FK_%1) REFERENCES %2(%1)")
|
||||||
.arg(relation->localColumn, relation->slaveTable->name());
|
.arg(relation->localColumn, relation->slaveTable->name());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -221,7 +221,7 @@ QStringList SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable)
|
||||||
return QStringList();
|
return QStringList();
|
||||||
|
|
||||||
if (!newTable)
|
if (!newTable)
|
||||||
return QStringList() << ("DROP TABLE " + oldTable->name());
|
return QStringList() << (QStringLiteral("DROP TABLE ") + oldTable->name());
|
||||||
|
|
||||||
QList<QString> fieldNames;
|
QList<QString> fieldNames;
|
||||||
QList<QString> relations;
|
QList<QString> relations;
|
||||||
|
|
@ -272,7 +272,7 @@ QStringList SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable)
|
||||||
// }
|
// }
|
||||||
QString sql;
|
QString sql;
|
||||||
if (oldTable) {
|
if (oldTable) {
|
||||||
sql = QString::fromUtf8("ALTER TABLE %1 \n%2")
|
sql = QStringLiteral("ALTER TABLE %1 \n%2")
|
||||||
.arg(newTable->name(), columnSql.join(QStringLiteral(",\n")));
|
.arg(newTable->name(), columnSql.join(QStringLiteral(",\n")));
|
||||||
} else {
|
} else {
|
||||||
if (!newTable->primaryKey().isNull()) {
|
if (!newTable->primaryKey().isNull()) {
|
||||||
|
|
@ -282,7 +282,7 @@ QStringList SqlGeneratorBase::diff(TableModel *oldTable, TableModel *newTable)
|
||||||
columnSql << constraints(newTable);
|
columnSql << constraints(newTable);
|
||||||
}
|
}
|
||||||
|
|
||||||
sql = QString::fromUtf8("CREATE TABLE %1 \n(%2)")
|
sql = QStringLiteral("CREATE TABLE %1 \n(%2)")
|
||||||
.arg(newTable->name(), columnSql.join(QStringLiteral(",\n")));
|
.arg(newTable->name(), columnSql.join(QStringLiteral(",\n")));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -343,13 +343,13 @@ QStringList SqlGeneratorBase::diff(RelationModel *oldRel, RelationModel *newRel)
|
||||||
.arg(newRelation->foreignColumn);
|
.arg(newRelation->foreignColumn);
|
||||||
*/
|
*/
|
||||||
if (!oldRel)
|
if (!oldRel)
|
||||||
ret.append(QString::fromUtf8("ADD CONSTRAINT FK_%1 FOREIGN KEY (%1) "
|
ret.append(QStringLiteral("ADD CONSTRAINT FK_%1 FOREIGN KEY (%1) "
|
||||||
"REFERENCES %2(%3)")
|
"REFERENCES %2(%3)")
|
||||||
.arg(newRel->localColumn, newRel->masterTable->name(),
|
.arg(newRel->localColumn, newRel->masterTable->name(),
|
||||||
newRel->foreignColumn));
|
newRel->foreignColumn));
|
||||||
|
|
||||||
if (!newRel)
|
if (!newRel)
|
||||||
ret.append(QString::fromUtf8("ADD CONSTRAINT FK_%1 FOREIGN KEY (%1) "
|
ret.append(QStringLiteral("ADD CONSTRAINT FK_%1 FOREIGN KEY (%1) "
|
||||||
"REFERENCES %2(%3)")
|
"REFERENCES %2(%3)")
|
||||||
.arg(oldRel->localColumn, oldRel->masterTable->name(),
|
.arg(oldRel->localColumn, oldRel->masterTable->name(),
|
||||||
oldRel->foreignColumn));
|
oldRel->foreignColumn));
|
||||||
|
|
@ -366,16 +366,17 @@ QString SqlGeneratorBase::join(const QString &mainTable,
|
||||||
QList<RelationModel*>::const_iterator i;
|
QList<RelationModel*>::const_iterator i;
|
||||||
for (i = list.begin(); i != list.end(); ++i) {
|
for (i = list.begin(); i != list.end(); ++i) {
|
||||||
if ((*i)->masterTable->name() == mainTable) {
|
if ((*i)->masterTable->name() == mainTable) {
|
||||||
ret.append(QString(" INNER JOIN %3 ON %1.%2 = %3.%4")
|
ret.append(QStringLiteral(" INNER JOIN %3 ON %1.%2 = %3.%4")
|
||||||
.arg((*i)->masterTable->name(),
|
.arg((*i)->masterTable->name(),
|
||||||
(*i)->masterTable->primaryKey(),
|
(*i)->masterTable->primaryKey(),
|
||||||
(*i)->slaveTable->name(),
|
(*i)->slaveTable->name(),
|
||||||
(*i)->localColumn));
|
(*i)->localColumn));
|
||||||
|
|
||||||
if (order != Q_NULLPTR)
|
if (order != Q_NULLPTR)
|
||||||
order->append((*i)->slaveTable->name() + "." + (*i)->slaveTable->primaryKey());
|
order->append((*i)->slaveTable->name() + QStringLiteral(".")
|
||||||
|
+ (*i)->slaveTable->primaryKey());
|
||||||
} else {
|
} else {
|
||||||
ret.append(QString(" INNER JOIN %3 ON %1.%2 = %3.%4")
|
ret.append(QStringLiteral(" INNER JOIN %3 ON %1.%2 = %3.%4")
|
||||||
.arg(mainTable,
|
.arg(mainTable,
|
||||||
(*i)->localColumn,
|
(*i)->localColumn,
|
||||||
(*i)->masterTable->name(),
|
(*i)->masterTable->name(),
|
||||||
|
|
@ -401,12 +402,16 @@ QString SqlGeneratorBase::join(const QStringList &list, QStringList *order)
|
||||||
return QString();
|
return QString();
|
||||||
|
|
||||||
if (list.count() == 1)
|
if (list.count() == 1)
|
||||||
return "[" + list.first() + "]";
|
return QStringLiteral("[")
|
||||||
|
+ list.first()
|
||||||
|
+ QStringLiteral("]");
|
||||||
|
|
||||||
DatabaseModel model = _database->model();
|
DatabaseModel model = _database->model();
|
||||||
QStringList clone = list;
|
QStringList clone = list;
|
||||||
QString mainTable = clone.takeFirst();
|
QString mainTable = clone.takeFirst();
|
||||||
QString ret = "[" + mainTable + "]";
|
QString ret = QStringLiteral("[")
|
||||||
|
+ mainTable
|
||||||
|
+ QStringLiteral("]");
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (!clone.count())
|
if (!clone.count())
|
||||||
|
|
@ -416,7 +421,7 @@ QString SqlGeneratorBase::join(const QStringList &list, QStringList *order)
|
||||||
RelationModel *rel = model.relationByClassNames(mainTable, clone.first());
|
RelationModel *rel = model.relationByClassNames(mainTable, clone.first());
|
||||||
if (rel) {
|
if (rel) {
|
||||||
//mainTable is master of table
|
//mainTable is master of table
|
||||||
ret.append(QString(" INNER JOIN [%1] ON %4.%2 = %1.%3")
|
ret.append(QStringLiteral(" INNER JOIN [%1] ON %4.%2 = %1.%3")
|
||||||
.arg(table, rel->masterTable->primaryKey(),
|
.arg(table, rel->masterTable->primaryKey(),
|
||||||
rel->localColumn, mainTable));
|
rel->localColumn, mainTable));
|
||||||
|
|
||||||
|
|
@ -427,7 +432,7 @@ QString SqlGeneratorBase::join(const QStringList &list, QStringList *order)
|
||||||
rel = model.relationByClassNames(clone.first(), mainTable);
|
rel = model.relationByClassNames(clone.first(), mainTable);
|
||||||
if (rel) {
|
if (rel) {
|
||||||
// table is master of mainTable
|
// table is master of mainTable
|
||||||
ret.append(QString(" INNER JOIN [%1] ON %4.%2 = %1.%3")
|
ret.append(QStringLiteral(" INNER JOIN [%1] ON %4.%2 = %1.%3")
|
||||||
.arg(table, rel->localColumn,
|
.arg(table, rel->localColumn,
|
||||||
rel->masterTable->primaryKey(), mainTable));
|
rel->masterTable->primaryKey(), mainTable));
|
||||||
|
|
||||||
|
|
@ -463,12 +468,12 @@ QString SqlGeneratorBase::insertRecord(Table *t, QString tableName)
|
||||||
|
|
||||||
values.append(escapeValue(t->property(f.toLatin1().data())));
|
values.append(escapeValue(t->property(f.toLatin1().data())));
|
||||||
|
|
||||||
if (changedPropertiesText != "")
|
if (changedPropertiesText != QStringLiteral(""))
|
||||||
changedPropertiesText.append(", ");
|
changedPropertiesText.append(QStringLiteral(", "));
|
||||||
changedPropertiesText.append(f);
|
changedPropertiesText.append(f);
|
||||||
}
|
}
|
||||||
sql = QString("INSERT INTO %1 (%2) VALUES (%3)")
|
sql = QStringLiteral("INSERT INTO %1 (%2) VALUES (%3)")
|
||||||
.arg(tableName, changedPropertiesText, values.join(", "));
|
.arg(tableName, changedPropertiesText, values.join(QStringLiteral(", ")));
|
||||||
|
|
||||||
removeTableNames(sql);
|
removeTableNames(sql);
|
||||||
|
|
||||||
|
|
@ -484,11 +489,14 @@ QString SqlGeneratorBase::updateRecord(Table *t, QString tableName)
|
||||||
|
|
||||||
foreach (QString f, t->changedProperties())
|
foreach (QString f, t->changedProperties())
|
||||||
if (f != key)
|
if (f != key)
|
||||||
values.append(f + "='" + t->property(f.toLatin1().data()).toString()
|
values.append(f + QStringLiteral("='")
|
||||||
+ "'");
|
+ t->property(f.toLatin1().data()).toString()
|
||||||
sql = QString("UPDATE %1 SET %2 WHERE %3=%4")
|
+ QStringLiteral("'"));
|
||||||
.arg(tableName, values.join(", "),
|
sql = QStringLiteral("UPDATE %1 SET %2 WHERE %3=%4")
|
||||||
key, t->property(key.toUtf8().data()).toString());
|
.arg(tableName,
|
||||||
|
values.join(QStringLiteral(", ")),
|
||||||
|
key,
|
||||||
|
t->property(key.toUtf8().data()).toString());
|
||||||
|
|
||||||
removeTableNames(sql);
|
removeTableNames(sql);
|
||||||
|
|
||||||
|
|
@ -499,7 +507,7 @@ QString SqlGeneratorBase::deleteRecord(Table *t, QString tableName)
|
||||||
{
|
{
|
||||||
auto model = _database->model().tableByName(tableName);
|
auto model = _database->model().tableByName(tableName);
|
||||||
QString key = model->primaryKey();
|
QString key = model->primaryKey();
|
||||||
QString sql = QString("DELETE FROM %1 WHERE %2='%3'")
|
QString sql = QStringLiteral("DELETE FROM %1 WHERE %2='%3'")
|
||||||
.arg(tableName, key, t->property(key.toUtf8().data()).toString());
|
.arg(tableName, key, t->property(key.toUtf8().data()).toString());
|
||||||
replaceTableNames(sql);
|
replaceTableNames(sql);
|
||||||
return sql;
|
return sql;
|
||||||
|
|
@ -510,19 +518,19 @@ QString SqlGeneratorBase::agregateText(const AgregateType &t,
|
||||||
{
|
{
|
||||||
switch (t) {
|
switch (t) {
|
||||||
case Min:
|
case Min:
|
||||||
return "MIN(" + arg + ")";
|
return QStringLiteral("MIN(") + arg + QStringLiteral(")");
|
||||||
|
|
||||||
case Max:
|
case Max:
|
||||||
return "MAX(" + arg + ")";
|
return QStringLiteral("MAX(") + arg + QStringLiteral(")");
|
||||||
|
|
||||||
case Average:
|
case Average:
|
||||||
return "AVG(" + arg + ")";
|
return QStringLiteral("AVG(") + arg + QStringLiteral(")");
|
||||||
|
|
||||||
case Count:
|
case Count:
|
||||||
return "COUNT(" + arg + ")";
|
return QStringLiteral("COUNT(") + arg + QStringLiteral(")");
|
||||||
|
|
||||||
case Sum:
|
case Sum:
|
||||||
return "SUM(" + arg + ")";
|
return QStringLiteral("SUM(") + arg + QStringLiteral(")");
|
||||||
|
|
||||||
case SingleField:
|
case SingleField:
|
||||||
return arg;
|
return arg;
|
||||||
|
|
@ -541,7 +549,7 @@ QString SqlGeneratorBase::fromTableText(const QString &tableName,
|
||||||
= _database->model().relationByTableNames(tableName, joinTableName);
|
= _database->model().relationByTableNames(tableName, joinTableName);
|
||||||
if (rel) {
|
if (rel) {
|
||||||
QString pk = _database->model().tableByName(tableName)->primaryKey();
|
QString pk = _database->model().tableByName(tableName)->primaryKey();
|
||||||
tableNameText = QString("%1 INNER JOIN %2 ON (%1.%3 = %2.%4)")
|
tableNameText = QStringLiteral("%1 INNER JOIN %2 ON (%1.%3 = %2.%4)")
|
||||||
.arg(tableName, joinTableName,
|
.arg(tableName, joinTableName,
|
||||||
pk, rel->localColumn);
|
pk, rel->localColumn);
|
||||||
orderBy = tableName + "." + pk;
|
orderBy = tableName + "." + pk;
|
||||||
|
|
@ -549,7 +557,7 @@ QString SqlGeneratorBase::fromTableText(const QString &tableName,
|
||||||
qWarning("Relation between table %s and class %s (%s) not exists!",
|
qWarning("Relation between table %s and class %s (%s) not exists!",
|
||||||
qPrintable(tableName),
|
qPrintable(tableName),
|
||||||
qPrintable(joinClassName),
|
qPrintable(joinClassName),
|
||||||
qPrintable(joinTableName.isNull() ? "NULL" : joinTableName));
|
qPrintable(joinTableName.isNull() ? QStringLiteral("NULL") : joinTableName));
|
||||||
joinClassName = QString();
|
joinClassName = QString();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -559,11 +567,10 @@ QString SqlGeneratorBase::fromTableText(const QString &tableName,
|
||||||
|
|
||||||
QString SqlGeneratorBase::deleteRecords(const QString &tableName, const QString &where)
|
QString SqlGeneratorBase::deleteRecords(const QString &tableName, const QString &where)
|
||||||
{
|
{
|
||||||
QString sql = QString();
|
QString sql = QStringLiteral("DELETE FROM ") + tableName;
|
||||||
if (where.isEmpty() || where.isNull())
|
|
||||||
sql = "DELETE FROM " + tableName;
|
if (!where.isEmpty())
|
||||||
else
|
sql.append(QStringLiteral(" WHERE ") + where);
|
||||||
sql = "DELETE FROM " + tableName + " WHERE " + where;
|
|
||||||
|
|
||||||
replaceTableNames(sql);
|
replaceTableNames(sql);
|
||||||
|
|
||||||
|
|
@ -591,7 +598,7 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName,
|
||||||
selectText = QString();
|
selectText = QString();
|
||||||
foreach (TableModel *t, tables) {
|
foreach (TableModel *t, tables) {
|
||||||
if (!selectText.isEmpty())
|
if (!selectText.isEmpty())
|
||||||
selectText.append(", ");
|
selectText.append(QStringLiteral(", "));
|
||||||
selectText.append(recordsPhrase(t));
|
selectText.append(recordsPhrase(t));
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|
@ -603,13 +610,14 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName,
|
||||||
QString whereText = createConditionalPhrase(where.data);
|
QString whereText = createConditionalPhrase(where.data);
|
||||||
QString fromText = join(tableName, joins, &joinedOrders);
|
QString fromText = join(tableName, joins, &joinedOrders);
|
||||||
|
|
||||||
QString sql = "SELECT " + selectText + " FROM " + fromText;
|
QString sql = QStringLiteral("SELECT ") + selectText
|
||||||
|
+ QStringLiteral(" FROM ") + fromText;
|
||||||
|
|
||||||
if (whereText != "")
|
if (whereText != QStringLiteral(""))
|
||||||
sql.append(" WHERE " + whereText);
|
sql.append(QStringLiteral(" WHERE ") + whereText);
|
||||||
|
|
||||||
if (orderText != "")
|
if (orderText != QStringLiteral(""))
|
||||||
sql.append(" ORDER BY " + orderText);
|
sql.append(QStringLiteral(" ORDER BY ") + orderText);
|
||||||
|
|
||||||
// for (int i = 0; i < _database->model().count(); i++)
|
// for (int i = 0; i < _database->model().count(); i++)
|
||||||
// sql = sql.replace(_database->model().at(i)->className() + ".",
|
// sql = sql.replace(_database->model().at(i)->className() + ".",
|
||||||
|
|
@ -618,7 +626,7 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName,
|
||||||
appendSkipTake(sql, skip, take);
|
appendSkipTake(sql, skip, take);
|
||||||
replaceTableNames(sql);
|
replaceTableNames(sql);
|
||||||
|
|
||||||
return sql + " ";
|
return sql + QStringLiteral(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SqlGeneratorBase::selectCommand(const QString &tableName,
|
QString SqlGeneratorBase::selectCommand(const QString &tableName,
|
||||||
|
|
@ -634,33 +642,34 @@ QString SqlGeneratorBase::selectCommand(const QString &tableName,
|
||||||
QString whereText = createConditionalPhrase(where.data);
|
QString whereText = createConditionalPhrase(where.data);
|
||||||
QString fromText = join(tableName, joins, &joinedOrders);
|
QString fromText = join(tableName, joins, &joinedOrders);
|
||||||
|
|
||||||
QString sql = "SELECT " + selectText + " FROM " + fromText;
|
QString sql = QStringLiteral("SELECT ") + selectText
|
||||||
|
+ QStringLiteral(" FROM ") + fromText;
|
||||||
|
|
||||||
if (whereText != "")
|
if (whereText != QStringLiteral(""))
|
||||||
sql.append(" WHERE " + whereText);
|
sql.append(QStringLiteral(" WHERE ") + whereText);
|
||||||
|
|
||||||
for (int i = 0; i < _database->model().count(); i++)
|
for (int i = 0; i < _database->model().count(); i++)
|
||||||
sql = sql.replace(_database->model().at(i)->className() + ".",
|
sql = sql.replace(_database->model().at(i)->className() + QStringLiteral("."),
|
||||||
_database->model().at(i)->name() + ".");
|
_database->model().at(i)->name() + QStringLiteral("."));
|
||||||
|
|
||||||
appendSkipTake(sql, skip, take);
|
appendSkipTake(sql, skip, take);
|
||||||
replaceTableNames(sql);
|
replaceTableNames(sql);
|
||||||
|
|
||||||
return sql + " ";
|
return sql + QStringLiteral(" ");
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SqlGeneratorBase::deleteCommand(const QString &tableName,
|
QString SqlGeneratorBase::deleteCommand(const QString &tableName,
|
||||||
const ConditionalPhrase &where)
|
const ConditionalPhrase &where)
|
||||||
{
|
{
|
||||||
QString command = "DELETE FROM " + tableName;
|
QString command = QStringLiteral("DELETE FROM ") + tableName;
|
||||||
QString whereText = createConditionalPhrase(where.data);
|
QString whereText = createConditionalPhrase(where.data);
|
||||||
|
|
||||||
if (whereText != "")
|
if (!whereText.isEmpty())
|
||||||
command.append(" WHERE " + whereText);
|
command.append(QStringLiteral(" WHERE ") + whereText);
|
||||||
|
|
||||||
for (int i = 0; i < _database->model().count(); i++)
|
for (int i = 0; i < _database->model().count(); i++)
|
||||||
command = command.replace(_database->model().at(i)->className() + ".",
|
command = command.replace(_database->model().at(i)->className() + QStringLiteral("."),
|
||||||
_database->model().at(i)->name() + ".");
|
_database->model().at(i)->name() + QStringLiteral("."));
|
||||||
|
|
||||||
replaceTableNames(command);
|
replaceTableNames(command);
|
||||||
|
|
||||||
|
|
@ -673,21 +682,22 @@ QString SqlGeneratorBase::updateCommand(const QString &tableName,
|
||||||
{
|
{
|
||||||
QString assigmentTexts = QString();
|
QString assigmentTexts = QString();
|
||||||
foreach (PhraseData *d, assigments.data) {
|
foreach (PhraseData *d, assigments.data) {
|
||||||
if (assigmentTexts != "")
|
if (assigmentTexts != QStringLiteral(""))
|
||||||
assigmentTexts.append(", ");
|
assigmentTexts.append(QStringLiteral(", "));
|
||||||
|
|
||||||
assigmentTexts.append(createConditionalPhrase(d));
|
assigmentTexts.append(createConditionalPhrase(d));
|
||||||
}
|
}
|
||||||
QString whereText = createConditionalPhrase(where.data);
|
QString whereText = createConditionalPhrase(where.data);
|
||||||
|
|
||||||
QString sql = "UPDATE " + tableName + " SET " + assigmentTexts;
|
QString sql = QStringLiteral("UPDATE ") + tableName
|
||||||
|
+ QStringLiteral(" SET ") + assigmentTexts;
|
||||||
|
|
||||||
if (whereText != "")
|
if (!whereText.isEmpty())
|
||||||
sql.append(" WHERE " + whereText);
|
sql.append(QStringLiteral(" WHERE ") + whereText);
|
||||||
|
|
||||||
for (int i = 0; i < _database->model().count(); i++)
|
for (int i = 0; i < _database->model().count(); i++)
|
||||||
sql = sql.replace(_database->model().at(i)->className() + ".",
|
sql = sql.replace(_database->model().at(i)->className() + QStringLiteral("."),
|
||||||
_database->model().at(i)->name() + ".");
|
_database->model().at(i)->name() + QStringLiteral("."));
|
||||||
|
|
||||||
removeTableNames(sql);
|
removeTableNames(sql);
|
||||||
|
|
||||||
|
|
@ -700,16 +710,16 @@ QString SqlGeneratorBase::insertCommand(const QString &tableName, const Assignme
|
||||||
QString fieldNames;
|
QString fieldNames;
|
||||||
QString values;
|
QString values;
|
||||||
foreach (PhraseData *d, assigments.data) {
|
foreach (PhraseData *d, assigments.data) {
|
||||||
if (fieldNames != "")
|
if (!fieldNames.isEmpty())
|
||||||
fieldNames.append(", ");
|
fieldNames.append(QStringLiteral(", "));
|
||||||
|
|
||||||
if (values != "")
|
if (!values.isEmpty())
|
||||||
values.append(", ");
|
values.append(QStringLiteral(", "));
|
||||||
|
|
||||||
fieldNames.append(d->left->fieldName);
|
fieldNames.append(QString::fromUtf8(d->left->fieldName));
|
||||||
values.append(escapeValue(d->operand));
|
values.append(escapeValue(d->operand));
|
||||||
}
|
}
|
||||||
return QString("INSERT INTO %1 (%2) VALUES (%3);")
|
return QStringLiteral("INSERT INTO %1 (%2) VALUES (%3);")
|
||||||
.arg(tableName, fieldNames, values);
|
.arg(tableName, fieldNames, values);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -786,13 +796,16 @@ void SqlGeneratorBase::replaceTableNames(QString &command)
|
||||||
{
|
{
|
||||||
foreach (TableModel *m, _database->model())
|
foreach (TableModel *m, _database->model())
|
||||||
command = command
|
command = command
|
||||||
.replace("[" + m->className() + "]", m->name());
|
.replace(QStringLiteral("[") + m->className()
|
||||||
|
+ QStringLiteral("]"), m->name());
|
||||||
}
|
}
|
||||||
|
|
||||||
void SqlGeneratorBase::removeTableNames(QString &command)
|
void SqlGeneratorBase::removeTableNames(QString &command)
|
||||||
{
|
{
|
||||||
foreach (TableModel *m, _database->model())
|
foreach (TableModel *m, _database->model())
|
||||||
command = command.replace("[" + m->className() + "].", "");
|
command = command.replace(QStringLiteral("[")
|
||||||
|
+ m->className()
|
||||||
|
+ QStringLiteral("]."), QStringLiteral(""));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) const
|
QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) const
|
||||||
|
|
@ -801,27 +814,27 @@ QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) cons
|
||||||
case PhraseData::DatePartYear:
|
case PhraseData::DatePartYear:
|
||||||
case PhraseData::AddYears:
|
case PhraseData::AddYears:
|
||||||
case PhraseData::AddYearsDateTime:
|
case PhraseData::AddYearsDateTime:
|
||||||
return "YEAR";
|
return QStringLiteral("YEAR");
|
||||||
case PhraseData::DatePartMonth:
|
case PhraseData::DatePartMonth:
|
||||||
case PhraseData::AddMonths:
|
case PhraseData::AddMonths:
|
||||||
case PhraseData::AddMonthsDateTime:
|
case PhraseData::AddMonthsDateTime:
|
||||||
return "MONTH";
|
return QStringLiteral("MONTH");
|
||||||
case PhraseData::DatePartDay:
|
case PhraseData::DatePartDay:
|
||||||
case PhraseData::AddDays:
|
case PhraseData::AddDays:
|
||||||
case PhraseData::AddDaysDateTime:
|
case PhraseData::AddDaysDateTime:
|
||||||
return "DAY";
|
return QStringLiteral("DAY");
|
||||||
case PhraseData::DatePartHour:
|
case PhraseData::DatePartHour:
|
||||||
case PhraseData::AddHours:
|
case PhraseData::AddHours:
|
||||||
case PhraseData::AddHoursDateTime:
|
case PhraseData::AddHoursDateTime:
|
||||||
return "HOUR";
|
return QStringLiteral("HOUR");
|
||||||
case PhraseData::DatePartMinute:
|
case PhraseData::DatePartMinute:
|
||||||
case PhraseData::AddMinutes:
|
case PhraseData::AddMinutes:
|
||||||
case PhraseData::AddMinutesDateTime:
|
case PhraseData::AddMinutesDateTime:
|
||||||
return "MINUTE";
|
return QStringLiteral("MINUTE");
|
||||||
case PhraseData::DatePartSecond:
|
case PhraseData::DatePartSecond:
|
||||||
case PhraseData::AddSeconds:
|
case PhraseData::AddSeconds:
|
||||||
case PhraseData::AddSecondsDateTime:
|
case PhraseData::AddSecondsDateTime:
|
||||||
return "SECOND";
|
return QStringLiteral("SECOND");
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
|
|
@ -871,7 +884,7 @@ QString SqlGeneratorBase::dateTimePartName(const PhraseData::Condition &op) cons
|
||||||
QString SqlGeneratorBase::escapeValue(const QVariant &v) const
|
QString SqlGeneratorBase::escapeValue(const QVariant &v) const
|
||||||
{
|
{
|
||||||
if (v.type() == QVariant::String && v.toString().isEmpty())
|
if (v.type() == QVariant::String && v.toString().isEmpty())
|
||||||
return "''";
|
return QStringLiteral("''");
|
||||||
|
|
||||||
QString serialized = _serializer->serialize(v);
|
QString serialized = _serializer->serialize(v);
|
||||||
if (serialized.isEmpty()) {
|
if (serialized.isEmpty()) {
|
||||||
|
|
@ -882,7 +895,7 @@ QString SqlGeneratorBase::escapeValue(const QVariant &v) const
|
||||||
if (v.type() == QVariant::List)
|
if (v.type() == QVariant::List)
|
||||||
return serialized;
|
return serialized;
|
||||||
|
|
||||||
return "'" + serialized + "'";
|
return QStringLiteral("'") + serialized + QStringLiteral("'");
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant SqlGeneratorBase::unescapeValue(const QMetaType::Type &type,
|
QVariant SqlGeneratorBase::unescapeValue(const QMetaType::Type &type,
|
||||||
|
|
@ -909,7 +922,7 @@ QString SqlGeneratorBase::phrase(const PhraseData *d) const
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PhraseData::WithOther:
|
case PhraseData::WithOther:
|
||||||
ret = phrase(d->left) + " " + operatorString(d->operatorCond) + " "
|
ret = phrase(d->left) + QStringLiteral(" ") + operatorString(d->operatorCond) + QStringLiteral(" ")
|
||||||
+ phrase(d->right);
|
+ phrase(d->right);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
@ -919,7 +932,7 @@ QString SqlGeneratorBase::phrase(const PhraseData *d) const
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d->operatorCond == PhraseData::And || d->operatorCond == PhraseData::Or)
|
if (d->operatorCond == PhraseData::And || d->operatorCond == PhraseData::Or)
|
||||||
ret = "(" + ret + ")";
|
ret = QStringLiteral("(") + ret + QStringLiteral(")");
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
@ -929,63 +942,63 @@ SqlGeneratorBase::operatorString(const PhraseData::Condition &cond) const
|
||||||
{
|
{
|
||||||
switch (cond) {
|
switch (cond) {
|
||||||
case PhraseData::Equal:
|
case PhraseData::Equal:
|
||||||
return "=";
|
return QStringLiteral("=");
|
||||||
case PhraseData::NotEqual:
|
case PhraseData::NotEqual:
|
||||||
return "<>";
|
return QStringLiteral("<>");
|
||||||
case PhraseData::Less:
|
case PhraseData::Less:
|
||||||
return "<";
|
return QStringLiteral("<");
|
||||||
case PhraseData::Greater:
|
case PhraseData::Greater:
|
||||||
return ">";
|
return QStringLiteral(">");
|
||||||
case PhraseData::LessEqual:
|
case PhraseData::LessEqual:
|
||||||
return "<=";
|
return QStringLiteral("<=");
|
||||||
case PhraseData::GreaterEqual:
|
case PhraseData::GreaterEqual:
|
||||||
return ">=";
|
return QStringLiteral(">=");
|
||||||
case PhraseData::Null:
|
case PhraseData::Null:
|
||||||
return "IS NULL";
|
return QStringLiteral("IS NULL");
|
||||||
|
|
||||||
case PhraseData::NotNull:
|
case PhraseData::NotNull:
|
||||||
return "IS NOT NULL";
|
return QStringLiteral("IS NOT NULL");
|
||||||
|
|
||||||
case PhraseData::In:
|
case PhraseData::In:
|
||||||
return "IN";
|
return QStringLiteral("IN");
|
||||||
|
|
||||||
case PhraseData::NotIn:
|
case PhraseData::NotIn:
|
||||||
return "NOT IN";
|
return QStringLiteral("NOT IN");
|
||||||
|
|
||||||
case PhraseData::And:
|
case PhraseData::And:
|
||||||
return "AND";
|
return QStringLiteral("AND");
|
||||||
case PhraseData::Or:
|
case PhraseData::Or:
|
||||||
return "OR";
|
return QStringLiteral("OR");
|
||||||
|
|
||||||
case PhraseData::Like:
|
case PhraseData::Like:
|
||||||
return "LIKE";
|
return QStringLiteral("LIKE");
|
||||||
case PhraseData::NotLike:
|
case PhraseData::NotLike:
|
||||||
return "NOT LIKE";
|
return QStringLiteral("NOT LIKE");
|
||||||
|
|
||||||
case PhraseData::Add:
|
case PhraseData::Add:
|
||||||
return "+";
|
return QStringLiteral("+");
|
||||||
case PhraseData::Minus:
|
case PhraseData::Minus:
|
||||||
return "-";
|
return QStringLiteral("-");
|
||||||
case PhraseData::Multiple:
|
case PhraseData::Multiple:
|
||||||
return "*";
|
return QStringLiteral("*");
|
||||||
case PhraseData::Divide:
|
case PhraseData::Divide:
|
||||||
return "/";
|
return QStringLiteral("/");
|
||||||
|
|
||||||
// case PhraseData::Set:
|
// case PhraseData::Set:
|
||||||
// return "=";
|
// return QStringLiteral("=");
|
||||||
|
|
||||||
// case PhraseData::Append:
|
// case PhraseData::Append:
|
||||||
// return ",";
|
// return QStringLiteral(",");
|
||||||
|
|
||||||
case PhraseData::Between:
|
case PhraseData::Between:
|
||||||
return "BETWEEN";
|
return QStringLiteral("BETWEEN");
|
||||||
|
|
||||||
case PhraseData::Mod:
|
case PhraseData::Mod:
|
||||||
return "MOD";
|
return QStringLiteral("MOD");
|
||||||
|
|
||||||
default:
|
default:
|
||||||
qDebug() << "Unsupported" << cond;
|
qDebug() << "Unsupported" << cond;
|
||||||
return QString("<FAIL cond> %1").arg(cond);
|
return QStringLiteral("<FAIL cond> %1").arg(cond);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -998,7 +1011,7 @@ void SqlGeneratorBase::appendSkipTake(QString &sql, int skip, int take)
|
||||||
|
|
||||||
QString SqlGeneratorBase::primaryKeyConstraint(const TableModel *table) const
|
QString SqlGeneratorBase::primaryKeyConstraint(const TableModel *table) const
|
||||||
{
|
{
|
||||||
return QString("CONSTRAINT pk_%1 PRIMARY KEY (%2)")
|
return QStringLiteral("CONSTRAINT pk_%1 PRIMARY KEY (%2)")
|
||||||
.arg(table->name(), table->primaryKey());
|
.arg(table->name(), table->primaryKey());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1041,44 +1054,47 @@ QString SqlGeneratorBase::createConditionalPhrase(const PhraseData *d) const
|
||||||
.arg(d->operand.toString(), createConditionalPhrase(d->left));
|
.arg(d->operand.toString(), createConditionalPhrase(d->left));
|
||||||
else */if (op == PhraseData::Between) {
|
else */if (op == PhraseData::Between) {
|
||||||
QVariantList list = d->operand.toList();
|
QVariantList list = d->operand.toList();
|
||||||
ret = QString("%1 BETWEEN %2 AND %3")
|
ret = QStringLiteral("%1 BETWEEN %2 AND %3")
|
||||||
.arg(createConditionalPhrase(d->left), escapeValue(list.at(0)), escapeValue(list.at(1)));
|
.arg(createConditionalPhrase(d->left), escapeValue(list.at(0)), escapeValue(list.at(1)));
|
||||||
|
|
||||||
} else if (op == PhraseData::DatePartYear)
|
} else if (op == PhraseData::DatePartYear)
|
||||||
ret = QString("DATEPART(year, %1)")
|
ret = QStringLiteral("DATEPART(year, %1)")
|
||||||
.arg(d->operand.toString());
|
.arg(d->operand.toString());
|
||||||
else if (op == PhraseData::DatePartMonth)
|
else if (op == PhraseData::DatePartMonth)
|
||||||
ret = QString("DATEPART(month, %1)")
|
ret = QStringLiteral("DATEPART(month, %1)")
|
||||||
.arg(d->operand.toString());
|
.arg(d->operand.toString());
|
||||||
else if (op == PhraseData::DatePartDay)
|
else if (op == PhraseData::DatePartDay)
|
||||||
ret = QString("DATEPART(day, %1)")
|
ret = QStringLiteral("DATEPART(day, %1)")
|
||||||
.arg(d->operand.toString());
|
.arg(d->operand.toString());
|
||||||
else if (op == PhraseData::DatePartHour)
|
else if (op == PhraseData::DatePartHour)
|
||||||
ret = QString("DATEPART(hour, %1)")
|
ret = QStringLiteral("DATEPART(hour, %1)")
|
||||||
.arg(d->operand.toString());
|
.arg(d->operand.toString());
|
||||||
else if (op == PhraseData::DatePartMinute)
|
else if (op == PhraseData::DatePartMinute)
|
||||||
ret = QString("DATEPART(minute, %1)")
|
ret = QStringLiteral("DATEPART(minute, %1)")
|
||||||
.arg(d->operand.toString());
|
.arg(d->operand.toString());
|
||||||
else if (op == PhraseData::DatePartMilisecond)
|
else if (op == PhraseData::DatePartMilisecond)
|
||||||
ret = QString("DATEPART(milisecond, %1)")
|
ret = QStringLiteral("DATEPART(milisecond, %1)")
|
||||||
.arg(d->operand.toString());
|
.arg(d->operand.toString());
|
||||||
else
|
else
|
||||||
ret = createConditionalPhrase(d->left) + " " + operatorString(op) + " "
|
ret = createConditionalPhrase(d->left) + QStringLiteral(" ")
|
||||||
+ escapeValue(d->operand);
|
+ operatorString(op) + QStringLiteral(" ")
|
||||||
|
+ escapeValue(d->operand);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PhraseData::WithOther:
|
case PhraseData::WithOther:
|
||||||
ret = createConditionalPhrase(d->left) + " " + operatorString(op) + " "
|
ret = createConditionalPhrase(d->left) + QStringLiteral(" ")
|
||||||
|
+ operatorString(op) + QStringLiteral(" ")
|
||||||
+ createConditionalPhrase(d->right);
|
+ createConditionalPhrase(d->right);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PhraseData::WithoutOperand:
|
case PhraseData::WithoutOperand:
|
||||||
ret = createConditionalPhrase(d->left) + " " + operatorString(op);
|
ret = createConditionalPhrase(d->left) + QStringLiteral(" ")
|
||||||
|
+ operatorString(op);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (d->operatorCond == PhraseData::And || d->operatorCond == PhraseData::Or)
|
if (d->operatorCond == PhraseData::And || d->operatorCond == PhraseData::Or)
|
||||||
ret = "(" + ret + ")";
|
ret = QStringLiteral("(") + ret + QStringLiteral(")");
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
@ -1087,11 +1103,11 @@ QString SqlGeneratorBase::createOrderPhrase(const PhraseList &ph)
|
||||||
{
|
{
|
||||||
QString ret = QString();
|
QString ret = QString();
|
||||||
foreach (const PhraseData *d, ph.data) {
|
foreach (const PhraseData *d, ph.data) {
|
||||||
if (ret != "")
|
if (!ret.isEmpty())
|
||||||
ret.append(", ");
|
ret.append(QStringLiteral(", "));
|
||||||
ret.append(d->toString());
|
ret.append(d->toString());
|
||||||
if (d->isNot)
|
if (d->isNot)
|
||||||
ret.append(" DESC");
|
ret.append(QStringLiteral(" DESC"));
|
||||||
}
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
|
|
@ -1101,8 +1117,8 @@ QString SqlGeneratorBase::createFieldPhrase(const PhraseList &ph)
|
||||||
{
|
{
|
||||||
QString ret = QString();
|
QString ret = QString();
|
||||||
foreach (const PhraseData *d, ph.data) {
|
foreach (const PhraseData *d, ph.data) {
|
||||||
if (ret != "")
|
if (!ret.isEmpty())
|
||||||
ret.append(", ");
|
ret.append(QStringLiteral(", "));
|
||||||
ret.append(d->toString());
|
ret.append(d->toString());
|
||||||
if (d->isNot)
|
if (d->isNot)
|
||||||
qDebug() << "Operator ! is ignored in fields phrase";
|
qDebug() << "Operator ! is ignored in fields phrase";
|
||||||
|
|
@ -1113,11 +1129,11 @@ QString SqlGeneratorBase::createFieldPhrase(const PhraseList &ph)
|
||||||
void SqlGeneratorBase::createInsertPhrase(const AssignmentPhraseList &ph, QString &fields, QString &values)
|
void SqlGeneratorBase::createInsertPhrase(const AssignmentPhraseList &ph, QString &fields, QString &values)
|
||||||
{
|
{
|
||||||
foreach (PhraseData *d, ph.data) {
|
foreach (PhraseData *d, ph.data) {
|
||||||
if (fields != "")
|
if (!fields.isEmpty())
|
||||||
fields.append(", ");
|
fields.append(QStringLiteral(", "));
|
||||||
|
|
||||||
if (values != "")
|
if (!values.isEmpty())
|
||||||
values.append(", ");
|
values.append(QStringLiteral(", "));
|
||||||
|
|
||||||
switch (d->type) {
|
switch (d->type) {
|
||||||
case PhraseData::WithVariant:
|
case PhraseData::WithVariant:
|
||||||
|
|
|
||||||
|
|
@ -79,7 +79,7 @@ QString SqliteGenerator::fieldType(FieldModel *field)
|
||||||
|
|
||||||
case QMetaType::QString:
|
case QMetaType::QString:
|
||||||
if(field->length)
|
if(field->length)
|
||||||
return QString::fromUtf8("VARCHAR(%1)").arg(field->length);
|
return QStringLiteral("VARCHAR(%1)").arg(field->length);
|
||||||
else
|
else
|
||||||
return QStringLiteral("TEXT");
|
return QStringLiteral("TEXT");
|
||||||
default:
|
default:
|
||||||
|
|
@ -183,7 +183,7 @@ QStringList SqliteGenerator::diff(TableModel *oldTable, TableModel *newTable)
|
||||||
|
|
||||||
ret.append(QStringLiteral("ALTER TABLE ") + newTable->name() + QStringLiteral(" RENAME TO sqlitestudio_temp_table;"));
|
ret.append(QStringLiteral("ALTER TABLE ") + newTable->name() + QStringLiteral(" RENAME TO sqlitestudio_temp_table;"));
|
||||||
ret.append(newTableSql);
|
ret.append(newTableSql);
|
||||||
ret.append(QString::fromUtf8("INSERT INTO %1 ( %2 ) SELECT %2 FROM sqlitestudio_temp_table;")
|
ret.append(QStringLiteral("INSERT INTO %1 ( %2 ) SELECT %2 FROM sqlitestudio_temp_table;")
|
||||||
.arg(newTable->name(), columns));
|
.arg(newTable->name(), columns));
|
||||||
ret.append(QStringLiteral("DROP TABLE sqlitestudio_temp_table;"));
|
ret.append(QStringLiteral("DROP TABLE sqlitestudio_temp_table;"));
|
||||||
return ret;
|
return ret;
|
||||||
|
|
@ -191,11 +191,11 @@ QStringList SqliteGenerator::diff(TableModel *oldTable, TableModel *newTable)
|
||||||
void SqliteGenerator::appendSkipTake(QString &sql, int skip, int take)
|
void SqliteGenerator::appendSkipTake(QString &sql, int skip, int take)
|
||||||
{
|
{
|
||||||
if (take > 0 && skip > 0) {
|
if (take > 0 && skip > 0) {
|
||||||
sql.append(QString::fromUtf8(" LIMIT %1 OFFSET %2")
|
sql.append(QStringLiteral(" LIMIT %1 OFFSET %2")
|
||||||
.arg(take)
|
.arg(take)
|
||||||
.arg(skip));
|
.arg(skip));
|
||||||
} else if (take > 0) {
|
} else if (take > 0) {
|
||||||
sql.append(QString::fromUtf8(" LIMIT %1").arg(take));
|
sql.append(QStringLiteral(" LIMIT %1").arg(take));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -229,7 +229,7 @@ QString SqliteGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
case PhraseData::AddMonths:
|
case PhraseData::AddMonths:
|
||||||
case PhraseData::AddDays: {
|
case PhraseData::AddDays: {
|
||||||
int i = d->operand.toInt();
|
int i = d->operand.toInt();
|
||||||
return QString::fromUtf8("DATE(%1,'%2 %3')")
|
return QStringLiteral("DATE(%1,'%2 %3')")
|
||||||
.arg(createConditionalPhrase(d->left),
|
.arg(createConditionalPhrase(d->left),
|
||||||
(i < 0 ? QStringLiteral("") : QStringLiteral("+")) + QString::number(i),
|
(i < 0 ? QStringLiteral("") : QStringLiteral("+")) + QString::number(i),
|
||||||
dateTimePartName(op));
|
dateTimePartName(op));
|
||||||
|
|
@ -239,7 +239,7 @@ QString SqliteGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
case PhraseData::AddMinutes:
|
case PhraseData::AddMinutes:
|
||||||
case PhraseData::AddSeconds: {
|
case PhraseData::AddSeconds: {
|
||||||
int i = d->operand.toInt();
|
int i = d->operand.toInt();
|
||||||
return QString::fromUtf8("TIME(%1,'%2 %3')")
|
return QStringLiteral("TIME(%1,'%2 %3')")
|
||||||
.arg(createConditionalPhrase(d->left),
|
.arg(createConditionalPhrase(d->left),
|
||||||
(i < 0 ? QStringLiteral("") : QStringLiteral("+")) + QString::number(i),
|
(i < 0 ? QStringLiteral("") : QStringLiteral("+")) + QString::number(i),
|
||||||
dateTimePartName(op));
|
dateTimePartName(op));
|
||||||
|
|
@ -252,7 +252,7 @@ QString SqliteGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
case PhraseData::AddMinutesDateTime:
|
case PhraseData::AddMinutesDateTime:
|
||||||
case PhraseData::AddSecondsDateTime: {
|
case PhraseData::AddSecondsDateTime: {
|
||||||
int i = d->operand.toInt();
|
int i = d->operand.toInt();
|
||||||
return QString::fromUtf8("DATETIME(%1,'%2 %3')")
|
return QStringLiteral("DATETIME(%1,'%2 %3')")
|
||||||
.arg(createConditionalPhrase(d->left),
|
.arg(createConditionalPhrase(d->left),
|
||||||
(i < 0 ? QStringLiteral("") : QStringLiteral("+")) + QString::number(i),
|
(i < 0 ? QStringLiteral("") : QStringLiteral("+")) + QString::number(i),
|
||||||
dateTimePartName(op));
|
dateTimePartName(op));
|
||||||
|
|
@ -265,27 +265,27 @@ QString SqliteGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
if (d->type == PhraseData::WithoutOperand) {
|
if (d->type == PhraseData::WithoutOperand) {
|
||||||
switch (op) {
|
switch (op) {
|
||||||
case PhraseData::DatePartYear:
|
case PhraseData::DatePartYear:
|
||||||
return QString::fromUtf8("CAST(strftime('%Y', %1) AS INT)")
|
return QStringLiteral("CAST(strftime('%Y', %1) AS INT)")
|
||||||
.arg(createConditionalPhrase(d->left));
|
.arg(createConditionalPhrase(d->left));
|
||||||
|
|
||||||
case PhraseData::DatePartMonth:
|
case PhraseData::DatePartMonth:
|
||||||
return QString::fromUtf8("CAST(strftime('%m', %1) AS INT)")
|
return QStringLiteral("CAST(strftime('%m', %1) AS INT)")
|
||||||
.arg(createConditionalPhrase(d->left));
|
.arg(createConditionalPhrase(d->left));
|
||||||
|
|
||||||
case PhraseData::DatePartDay:
|
case PhraseData::DatePartDay:
|
||||||
return QString::fromUtf8("CAST(strftime('%d', %1) AS INT)")
|
return QStringLiteral("CAST(strftime('%d', %1) AS INT)")
|
||||||
.arg(createConditionalPhrase(d->left));
|
.arg(createConditionalPhrase(d->left));
|
||||||
|
|
||||||
case PhraseData::DatePartHour:
|
case PhraseData::DatePartHour:
|
||||||
return QString::fromUtf8("CAST(strftime('%H', %1) AS INT)")
|
return QStringLiteral("CAST(strftime('%H', %1) AS INT)")
|
||||||
.arg(createConditionalPhrase(d->left));
|
.arg(createConditionalPhrase(d->left));
|
||||||
|
|
||||||
case PhraseData::DatePartMinute:
|
case PhraseData::DatePartMinute:
|
||||||
return QString::fromUtf8("CAST(strftime('%M', %1) AS INT)")
|
return QStringLiteral("CAST(strftime('%M', %1) AS INT)")
|
||||||
.arg(createConditionalPhrase(d->left));
|
.arg(createConditionalPhrase(d->left));
|
||||||
|
|
||||||
case PhraseData::DatePartSecond:
|
case PhraseData::DatePartSecond:
|
||||||
return QString::fromUtf8("CAST(strftime('%S', %1) AS INT)")
|
return QStringLiteral("CAST(strftime('%S', %1) AS INT)")
|
||||||
.arg(createConditionalPhrase(d->left));
|
.arg(createConditionalPhrase(d->left));
|
||||||
|
|
||||||
// case PhraseData::DatePartMilisecond:
|
// case PhraseData::DatePartMilisecond:
|
||||||
|
|
|
||||||
|
|
@ -35,86 +35,77 @@ SqlServerGenerator::SqlServerGenerator(Database *parent)
|
||||||
QString SqlServerGenerator::masterDatabaseName(QString databaseName)
|
QString SqlServerGenerator::masterDatabaseName(QString databaseName)
|
||||||
{
|
{
|
||||||
return databaseName.replace(
|
return databaseName.replace(
|
||||||
QRegularExpression("DATABASE\\=(\\w+)",
|
QRegularExpression(QStringLiteral("DATABASE\\=(\\w+)"),
|
||||||
QRegularExpression::CaseInsensitiveOption),
|
QRegularExpression::CaseInsensitiveOption),
|
||||||
"DATABASE=");
|
QStringLiteral("DATABASE="));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SqlServerGenerator::fieldType(FieldModel *field)
|
QString SqlServerGenerator::fieldType(FieldModel *field)
|
||||||
{
|
{
|
||||||
QString dbType;
|
|
||||||
|
|
||||||
switch (field->type) {
|
switch (field->type) {
|
||||||
case QMetaType::Bool:
|
case QMetaType::Bool:
|
||||||
dbType = "BIT";
|
return QStringLiteral("BIT");
|
||||||
break;
|
|
||||||
|
|
||||||
case QMetaType::Char:
|
case QMetaType::Char:
|
||||||
case QMetaType::QChar:
|
case QMetaType::QChar:
|
||||||
dbType = "CHAR(1)";
|
return QStringLiteral("CHAR(1)");
|
||||||
break;
|
|
||||||
|
|
||||||
case QMetaType::SChar:
|
case QMetaType::SChar:
|
||||||
case QMetaType::UChar:
|
case QMetaType::UChar:
|
||||||
return "tinyint";
|
return QStringLiteral("tinyint");
|
||||||
|
|
||||||
case QMetaType::Short:
|
case QMetaType::Short:
|
||||||
case QMetaType::UShort:
|
case QMetaType::UShort:
|
||||||
return "smallint";
|
return QStringLiteral("smallint");
|
||||||
|
|
||||||
case QMetaType::UInt:
|
case QMetaType::UInt:
|
||||||
case QMetaType::Int:
|
case QMetaType::Int:
|
||||||
dbType = "INT";
|
|
||||||
if (field->isAutoIncrement)
|
if (field->isAutoIncrement)
|
||||||
dbType += " IDENTITY(1,1)";
|
return QStringLiteral("INT IDENTITY(1,1)");
|
||||||
break;
|
else
|
||||||
|
return QStringLiteral("INT");
|
||||||
|
|
||||||
case QMetaType::Long:
|
case QMetaType::Long:
|
||||||
case QMetaType::ULong:
|
case QMetaType::ULong:
|
||||||
case QMetaType::LongLong:
|
case QMetaType::LongLong:
|
||||||
case QMetaType::ULongLong:
|
case QMetaType::ULongLong:
|
||||||
return "bigint";
|
return QStringLiteral("bigint");
|
||||||
|
|
||||||
case QMetaType::Float:
|
case QMetaType::Float:
|
||||||
return "FLOAT(24)";
|
return QStringLiteral("FLOAT(24)");
|
||||||
|
|
||||||
case QMetaType::Double:
|
case QMetaType::Double:
|
||||||
return "REAL";
|
return QStringLiteral("REAL");
|
||||||
|
|
||||||
case QMetaType::QBitArray:
|
case QMetaType::QBitArray:
|
||||||
case QMetaType::QByteArray:
|
case QMetaType::QByteArray:
|
||||||
dbType = "VARBINARY";
|
|
||||||
|
|
||||||
if (field->length)
|
if (field->length)
|
||||||
dbType.append(" (" + QString::number(field->length) + ")");
|
return QStringLiteral("VARBINARY (") + QString::number(field->length) + QStringLiteral(")");
|
||||||
else
|
else
|
||||||
dbType.append(" (MAX)");
|
return QStringLiteral("VARBINARY (MAX)");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case QMetaType::QDate:
|
case QMetaType::QDate:
|
||||||
dbType = "DATE";
|
return QStringLiteral("DATE");
|
||||||
break;
|
|
||||||
case QMetaType::QDateTime:
|
case QMetaType::QDateTime:
|
||||||
dbType = "DATETIME";
|
return QStringLiteral("DATETIME");
|
||||||
break;
|
|
||||||
case QMetaType::QTime:
|
case QMetaType::QTime:
|
||||||
dbType = "TIME";
|
return QStringLiteral("TIME");
|
||||||
break;
|
|
||||||
|
|
||||||
case QMetaType::QPoint:
|
case QMetaType::QPoint:
|
||||||
case QMetaType::QPointF:
|
case QMetaType::QPointF:
|
||||||
dbType = "TEXT";
|
return QStringLiteral("TEXT");
|
||||||
break;
|
|
||||||
|
|
||||||
case QMetaType::QString:
|
case QMetaType::QString:
|
||||||
if (field->length)
|
if (field->length)
|
||||||
dbType = QString("NVARCHAR(%1)").arg(field->length);
|
return QStringLiteral("NVARCHAR(%1)").arg(field->length);
|
||||||
else
|
else
|
||||||
dbType = "NVARCHAR(MAX)";
|
return QStringLiteral("NVARCHAR(MAX)");
|
||||||
break;
|
|
||||||
|
|
||||||
case QMetaType::QUuid:
|
case QMetaType::QUuid:
|
||||||
dbType = "UNIQUEIDENTIFIER";
|
return QStringLiteral("UNIQUEIDENTIFIER");
|
||||||
break;
|
|
||||||
|
|
||||||
case QMetaType::QPolygon:
|
case QMetaType::QPolygon:
|
||||||
case QMetaType::QPolygonF:
|
case QMetaType::QPolygonF:
|
||||||
|
|
@ -131,14 +122,12 @@ QString SqlServerGenerator::fieldType(FieldModel *field)
|
||||||
case QMetaType::QJsonObject:
|
case QMetaType::QJsonObject:
|
||||||
case QMetaType::QJsonDocument:
|
case QMetaType::QJsonDocument:
|
||||||
case QMetaType::QUrl:
|
case QMetaType::QUrl:
|
||||||
return "TEXT";
|
return QStringLiteral("TEXT");
|
||||||
|
|
||||||
default:
|
default:
|
||||||
// Q_UNREACHABLE();
|
// Q_UNREACHABLE();
|
||||||
dbType = QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
return dbType;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SqlServerGenerator::diff(FieldModel *oldField, FieldModel *newField)
|
QString SqlServerGenerator::diff(FieldModel *oldField, FieldModel *newField)
|
||||||
|
|
@ -149,12 +138,12 @@ QString SqlServerGenerator::diff(FieldModel *oldField, FieldModel *newField)
|
||||||
return sql;
|
return sql;
|
||||||
|
|
||||||
if (!newField) {
|
if (!newField) {
|
||||||
sql = "DROP COLUMN " + oldField->name;
|
sql = QStringLiteral("DROP COLUMN ") + oldField->name;
|
||||||
} else {
|
} else {
|
||||||
if (oldField)
|
if (oldField)
|
||||||
sql = "MODIFY COLUMN ";
|
sql = QStringLiteral("MODIFY COLUMN ");
|
||||||
else
|
else
|
||||||
sql = "ADD ";
|
sql = QStringLiteral("ADD ");
|
||||||
|
|
||||||
sql.append(fieldDeclare(newField));
|
sql.append(fieldDeclare(newField));
|
||||||
}
|
}
|
||||||
|
|
@ -181,7 +170,7 @@ QString SqlServerGenerator::escapeValue(const QVariant &v) const
|
||||||
// case QVariant::JsonObject:
|
// case QVariant::JsonObject:
|
||||||
// case QVariant::JsonDocument:
|
// case QVariant::JsonDocument:
|
||||||
case QVariant::Url:
|
case QVariant::Url:
|
||||||
return "N" + SqlGeneratorBase::escapeValue(v);
|
return QStringLiteral("N") + SqlGeneratorBase::escapeValue(v);
|
||||||
|
|
||||||
// case QVariant::Point: {
|
// case QVariant::Point: {
|
||||||
// QPoint pt = v.toPoint();
|
// QPoint pt = v.toPoint();
|
||||||
|
|
@ -195,18 +184,17 @@ QString SqlServerGenerator::escapeValue(const QVariant &v) const
|
||||||
// }
|
// }
|
||||||
|
|
||||||
case QVariant::Time:
|
case QVariant::Time:
|
||||||
return "'" + v.toTime().toString("HH:mm:ss") + "'";
|
return v.toTime().toString(QStringLiteral("'HH:mm:ss'"));
|
||||||
|
|
||||||
case QVariant::Date:
|
case QVariant::Date:
|
||||||
return "'" + v.toDate().toString("yyyy-MM-dd") + "'";
|
return v.toDate().toString(QStringLiteral("'yyyy-MM-dd'"));
|
||||||
|
|
||||||
case QVariant::DateTime:
|
case QVariant::DateTime:
|
||||||
return "'" + v.toDateTime().toString("yyyy-MM-dd HH:mm:ss") + "'";
|
return v.toDateTime().toString(QStringLiteral("'yyyy-MM-dd HH:mm:ss'"));
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
return SqlGeneratorBase::escapeValue(v);
|
||||||
}
|
}
|
||||||
return SqlGeneratorBase::escapeValue(v);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QVariant SqlServerGenerator::unescapeValue(const QMetaType::Type &type, const QVariant &dbValue)
|
QVariant SqlServerGenerator::unescapeValue(const QMetaType::Type &type, const QVariant &dbValue)
|
||||||
|
|
@ -226,12 +214,12 @@ QVariant SqlServerGenerator::unescapeValue(const QMetaType::Type &type, const QV
|
||||||
void SqlServerGenerator::appendSkipTake(QString &sql, int skip, int take)
|
void SqlServerGenerator::appendSkipTake(QString &sql, int skip, int take)
|
||||||
{
|
{
|
||||||
if (skip != -1)
|
if (skip != -1)
|
||||||
sql.append(QString(" OFFSET %1 ROWS")
|
sql.append(QStringLiteral(" OFFSET %1 ROWS")
|
||||||
.arg(skip));
|
.arg(skip));
|
||||||
if (take > 0)
|
if (take > 0)
|
||||||
sql.append(QString(" FETCH %2 %1 ROWS ONLY")
|
sql.append(QStringLiteral(" FETCH %2 %1 ROWS ONLY")
|
||||||
.arg(take)
|
.arg(take)
|
||||||
.arg(skip > 1 ? "NEXT" : "FIRST"));
|
.arg(skip > 1 ? QStringLiteral("NEXT") : QStringLiteral("FIRST")));
|
||||||
}
|
}
|
||||||
|
|
||||||
QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const
|
QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
|
|
@ -260,7 +248,7 @@ QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
case PhraseData::AddMinutesDateTime:
|
case PhraseData::AddMinutesDateTime:
|
||||||
case PhraseData::AddSeconds:
|
case PhraseData::AddSeconds:
|
||||||
case PhraseData::AddSecondsDateTime:
|
case PhraseData::AddSecondsDateTime:
|
||||||
return QString("DATEADD(%3, %2, %1)")
|
return QStringLiteral("DATEADD(%3, %2, %1)")
|
||||||
.arg(createConditionalPhrase(d->left),
|
.arg(createConditionalPhrase(d->left),
|
||||||
d->operand.toString(),
|
d->operand.toString(),
|
||||||
SqlGeneratorBase::dateTimePartName(op));
|
SqlGeneratorBase::dateTimePartName(op));
|
||||||
|
|
@ -278,7 +266,7 @@ QString SqlServerGenerator::createConditionalPhrase(const PhraseData *d) const
|
||||||
case PhraseData::DatePartHour:
|
case PhraseData::DatePartHour:
|
||||||
case PhraseData::DatePartMinute:
|
case PhraseData::DatePartMinute:
|
||||||
case PhraseData::DatePartSecond:
|
case PhraseData::DatePartSecond:
|
||||||
return QString("DATEPART(%2, %1)")
|
return QStringLiteral("DATEPART(%2, %1)")
|
||||||
.arg(createConditionalPhrase(d->left),
|
.arg(createConditionalPhrase(d->left),
|
||||||
SqlGeneratorBase::dateTimePartName(op));
|
SqlGeneratorBase::dateTimePartName(op));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -73,7 +73,7 @@ PhraseData &PhraseData::operator =(PhraseData &other)
|
||||||
|
|
||||||
QString PhraseData::toString() const
|
QString PhraseData::toString() const
|
||||||
{
|
{
|
||||||
return QString("[%1].%2").arg(className, fieldName);
|
return QString(QStringLiteral("[%1].%2")).arg(className, fieldName);
|
||||||
}
|
}
|
||||||
|
|
||||||
void PhraseData::cleanUp()
|
void PhraseData::cleanUp()
|
||||||
|
|
|
||||||
|
|
@ -335,10 +335,10 @@ QString TableModel::toString() const
|
||||||
{
|
{
|
||||||
QStringList sl;
|
QStringList sl;
|
||||||
foreach (FieldModel *f, _fields)
|
foreach (FieldModel *f, _fields)
|
||||||
sl.append(f->name + " " + QVariant::typeToName(f->type));
|
sl.append(f->name + QStringLiteral(" ") + QVariant::typeToName(f->type));
|
||||||
|
|
||||||
QString ret = QString("%1 (%2)")
|
QString ret = QStringLiteral("%1 (%2)")
|
||||||
.arg(_name, sl.join(", "));
|
.arg(_name, sl.join(QStringLiteral(", ")));
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -75,7 +75,7 @@ void DbGeography::setLatitude(qreal latitude)
|
||||||
}
|
}
|
||||||
DbGeography::operator QVariant()
|
DbGeography::operator QVariant()
|
||||||
{
|
{
|
||||||
return QVariant::fromValue(QString("%1,%2").arg(longitude()).arg(latitude()));
|
return QVariant::fromValue(QStringLiteral("%1,%2").arg(longitude()).arg(latitude()));
|
||||||
}
|
}
|
||||||
|
|
||||||
NUT_END_NAMESPACE
|
NUT_END_NAMESPACE
|
||||||
|
|
|
||||||
|
|
@ -8,7 +8,7 @@
|
||||||
#define PRINT(x)
|
#define PRINT(x)
|
||||||
//qDebug() << (#x "=") << (x);
|
//qDebug() << (#x "=") << (x);
|
||||||
#define TIC() QElapsedTimer timer; timer.start()
|
#define TIC() QElapsedTimer timer; timer.start()
|
||||||
#define TOC() qDebug() << QString("Elapsed time: %1ms for %2") \
|
#define TOC() qDebug() << QStringLiteral("Elapsed time: %1ms for %2") \
|
||||||
.arg(timer.elapsed() / 1000.) \
|
.arg(timer.elapsed() / 1000.) \
|
||||||
.arg(__func__)
|
.arg(__func__)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -135,7 +135,7 @@ void GeneratorsTest::cleanupTestCase()
|
||||||
QString p = "\n| Type | Sqlite | MySql | Postgresql| Ms Sql server |"
|
QString p = "\n| Type | Sqlite | MySql | Postgresql| Ms Sql server |"
|
||||||
"\n|--------|--------|--------|--------|--------|";
|
"\n|--------|--------|--------|--------|--------|";
|
||||||
for (i = table.constBegin(); i != table.constEnd(); ++i) {
|
for (i = table.constBegin(); i != table.constEnd(); ++i) {
|
||||||
p.append(QString("\n|%1|%2|%3|%4|%5|")
|
p.append(QStringLiteral("\n|%1|%2|%3|%4|%5|")
|
||||||
.arg(i.key(), i.value().sqlite, i.value().mysql,
|
.arg(i.key(), i.value().sqlite, i.value().mysql,
|
||||||
i.value().psql, i.value().mssql));
|
i.value().psql, i.value().mssql));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue