diff options
author | Sona Kurazyan <sona.kurazyan@qt.io> | 2022-04-14 13:14:29 +0200 |
---|---|---|
committer | Sona Kurazyan <sona.kurazyan@qt.io> | 2022-04-19 19:40:04 +0200 |
commit | 917b4d3802f3c2102021610cbf977403a3d4c21a (patch) | |
tree | fa125f2a0456f1aba6774a904301dd399b318f22 /src | |
parent | 5ec4b0b8e8dc31de1b96b7bb55dc452460c1bd58 (diff) |
Sql: stop using QLatin1Char constructor for creating char literals
Required for porting away from QLatin1Char/QLatin1String in scope of
QTBUG-98434.
As a drive-by, fix qsizetype -> int narrowing conversion warnings for
the touched lines.
Change-Id: I03477e645a94948cac3e3e2abca52aa4e3e2efff
Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io>
Diffstat (limited to 'src')
-rw-r--r-- | src/plugins/sqldrivers/db2/qsql_db2.cpp | 46 | ||||
-rw-r--r-- | src/plugins/sqldrivers/ibase/qsql_ibase.cpp | 48 | ||||
-rw-r--r-- | src/plugins/sqldrivers/mysql/qsql_mysql.cpp | 27 | ||||
-rw-r--r-- | src/plugins/sqldrivers/oci/qsql_oci.cpp | 59 | ||||
-rw-r--r-- | src/plugins/sqldrivers/odbc/qsql_odbc.cpp | 32 | ||||
-rw-r--r-- | src/plugins/sqldrivers/psql/qsql_psql.cpp | 48 | ||||
-rw-r--r-- | src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp | 32 | ||||
-rw-r--r-- | src/sql/kernel/qsqldatabase.cpp | 2 | ||||
-rw-r--r-- | src/sql/kernel/qsqldriver.cpp | 31 | ||||
-rw-r--r-- | src/sql/kernel/qsqlerror.cpp | 2 | ||||
-rw-r--r-- | src/sql/kernel/qsqlindex.cpp | 5 | ||||
-rw-r--r-- | src/sql/kernel/qsqlrecord.cpp | 4 | ||||
-rw-r--r-- | src/sql/kernel/qsqlresult.cpp | 28 | ||||
-rw-r--r-- | src/sql/models/qsqlrelationaltablemodel.cpp | 2 | ||||
-rw-r--r-- | src/sql/models/qsqltablemodel.cpp | 2 |
15 files changed, 182 insertions, 186 deletions
diff --git a/src/plugins/sqldrivers/db2/qsql_db2.cpp b/src/plugins/sqldrivers/db2/qsql_db2.cpp index 00bcc1cc4a..d66c1eb676 100644 --- a/src/plugins/sqldrivers/db2/qsql_db2.cpp +++ b/src/plugins/sqldrivers/db2/qsql_db2.cpp @@ -188,7 +188,7 @@ static QString qDB2Warn(const QDB2DriverPrivate* d, QStringList *errorCodes = nu errorCode = 0; } if (!error.isEmpty()) - error += QLatin1Char(' '); + error += u' '; error += qWarnDB2Handle(SQL_HANDLE_DBC, d->hDbc, &errorCode); if (errorCodes && errorCode != 0) *errorCodes << QString::number(errorCode); @@ -204,14 +204,14 @@ static QString qDB2Warn(const QDB2ResultPrivate* d, QStringList *errorCodes = nu errorCode = 0; } if (!error.isEmpty()) - error += QLatin1Char(' '); + error += u' '; error += qWarnDB2Handle(SQL_HANDLE_DBC, d->drv_d_func()->hDbc, &errorCode); if (errorCodes && errorCode != 0) { *errorCodes << QString::number(errorCode); errorCode = 0; } if (!error.isEmpty()) - error += QLatin1Char(' '); + error += u' '; error += qWarnDB2Handle(SQL_HANDLE_STMT, d->hStmt, &errorCode); if (errorCodes && errorCode != 0) *errorCodes << QString::number(errorCode); @@ -236,7 +236,7 @@ static QSqlError qMakeError(const QString& err, QSqlError::ErrorType type, QStringList errorCodes; const QString error = qDB2Warn(p, &errorCodes); return QSqlError(QStringLiteral("QDB2: ") + err, error, type, - errorCodes.join(QLatin1Char(';'))); + errorCodes.join(u';')); } static QSqlError qMakeError(const QString& err, QSqlError::ErrorType type, @@ -245,7 +245,7 @@ static QSqlError qMakeError(const QString& err, QSqlError::ErrorType type, QStringList errorCodes; const QString error = qDB2Warn(p, &errorCodes); return QSqlError(QStringLiteral("QDB2: ") + err, error, type, - errorCodes.join(QLatin1Char(';'))); + errorCodes.join(u';')); } static QMetaType qDecodeDB2Type(SQLSMALLINT sqltype) @@ -500,7 +500,7 @@ static void qSplitTableQualifier(const QString & qualifier, QString * catalog, { if (!catalog || !schema || !table) return; - QStringList l = qualifier.split(QLatin1Char('.')); + QStringList l = qualifier.split(u'.'); if (l.count() > 3) return; // can't possibly be a valid table qualifier int i = 0, n = l.count(); @@ -1270,11 +1270,11 @@ bool QDB2Driver::open(const QString& db, const QString& user, const QString& pas QString protocol; // Set connection attributes - const QStringList opts(connOpts.split(QLatin1Char(';'), Qt::SkipEmptyParts)); + const QStringList opts(connOpts.split(u';', Qt::SkipEmptyParts)); for (int i = 0; i < opts.count(); ++i) { const QString tmp(opts.at(i)); int idx; - if ((idx = tmp.indexOf(QLatin1Char('='))) == -1) { + if ((idx = tmp.indexOf(u'=')) == -1) { qWarning("QDB2Driver::open: Illegal connect option value '%s'", tmp.toLocal8Bit().constData()); continue; @@ -1513,7 +1513,7 @@ QStringList QDB2Driver::tables(QSql::TableType type) const user = user.toUpper(); if (userVal != user) - fieldVal = userVal + QLatin1Char('.') + fieldVal; + fieldVal = userVal + u'.' + fieldVal; tl.append(fieldVal); r = SQLFetchScroll(hStmt, SQL_FETCH_NEXT, @@ -1694,16 +1694,16 @@ QString QDB2Driver::formatValue(const QSqlField &field, bool trimStrings) const QDate dt = field.value().toDateTime().date(); QTime tm = field.value().toDateTime().time(); // Dateformat has to be "yyyy-MM-dd hh:mm:ss", with leading zeroes if month or day < 10 - return QLatin1Char('\'') + QString::number(dt.year()) + QLatin1Char('-') - + QString::number(dt.month()) + QLatin1Char('-') - + QString::number(dt.day()) + QLatin1Char('-') - + QString::number(tm.hour()) + QLatin1Char('.') - + QString::number(tm.minute()).rightJustified(2, QLatin1Char('0'), true) - + QLatin1Char('.') - + QString::number(tm.second()).rightJustified(2, QLatin1Char('0'), true) - + QLatin1Char('.') - + QString::number(tm.msec() * 1000).rightJustified(6, QLatin1Char('0'), true) - + QLatin1Char('\''); + return u'\'' + QString::number(dt.year()) + u'-' + + QString::number(dt.month()) + u'-' + + QString::number(dt.day()) + u'-' + + QString::number(tm.hour()) + u'.' + + QString::number(tm.minute()).rightJustified(2, u'0', true) + + u'.' + + QString::number(tm.second()).rightJustified(2, u'0', true) + + u'.' + + QString::number(tm.msec() * 1000).rightJustified(6, u'0', true) + + u'\''; } else { return QLatin1String("NULL"); } @@ -1735,10 +1735,10 @@ QVariant QDB2Driver::handle() const QString QDB2Driver::escapeIdentifier(const QString &identifier, IdentifierType) const { QString res = identifier; - if (!identifier.isEmpty() && !identifier.startsWith(QLatin1Char('"')) && !identifier.endsWith(QLatin1Char('"')) ) { - res.replace(QLatin1Char('"'), QLatin1String("\"\"")); - res.prepend(QLatin1Char('"')).append(QLatin1Char('"')); - res.replace(QLatin1Char('.'), QLatin1String("\".\"")); + if (!identifier.isEmpty() && !identifier.startsWith(u'"') && !identifier.endsWith(u'"') ) { + res.replace(u'"', QLatin1String("\"\"")); + res.prepend(u'"').append(u'"'); + res.replace(u'.', QLatin1String("\".\"")); } return res; } diff --git a/src/plugins/sqldrivers/ibase/qsql_ibase.cpp b/src/plugins/sqldrivers/ibase/qsql_ibase.cpp index 9674d9e1d4..65ee4f7290 100644 --- a/src/plugins/sqldrivers/ibase/qsql_ibase.cpp +++ b/src/plugins/sqldrivers/ibase/qsql_ibase.cpp @@ -1453,13 +1453,13 @@ bool QIBaseDriver::open(const QString & db, if (isOpen()) close(); - const QStringList opts(connOpts.split(QLatin1Char(';'), Qt::SkipEmptyParts)); + const QStringList opts(connOpts.split(u';', Qt::SkipEmptyParts)); QByteArray role; for (int i = 0; i < opts.count(); ++i) { QString tmp(opts.at(i).simplified()); - int idx; - if ((idx = tmp.indexOf(QLatin1Char('='))) != -1) { + qsizetype idx; + if ((idx = tmp.indexOf(u'=')) != -1) { QString val = tmp.mid(idx + 1).simplified(); QString opt = tmp.left(idx).simplified(); if (opt.toUpper() == QLatin1String("ISC_DPB_SQL_ROLE_NAME")) { @@ -1500,7 +1500,7 @@ bool QIBaseDriver::open(const QString & db, QString ldb; if (!host.isEmpty()) - ldb += host + portString + QLatin1Char(':'); + ldb += host + portString + u':'; ldb += db; isc_attach_database(d->status, 0, const_cast<char *>(ldb.toLocal8Bit().constData()), &d->ibase, ba.size(), ba.data()); @@ -1707,34 +1707,34 @@ QString QIBaseDriver::formatValue(const QSqlField &field, bool trimStrings) cons case QMetaType::QDateTime: { QDateTime datetime = field.value().toDateTime(); if (datetime.isValid()) - return QLatin1Char('\'') + QString::number(datetime.date().year()) + QLatin1Char('-') + - QString::number(datetime.date().month()) + QLatin1Char('-') + - QString::number(datetime.date().day()) + QLatin1Char(' ') + - QString::number(datetime.time().hour()) + QLatin1Char(':') + - QString::number(datetime.time().minute()) + QLatin1Char(':') + - QString::number(datetime.time().second()) + QLatin1Char('.') + - QString::number(datetime.time().msec()).rightJustified(3, QLatin1Char('0'), true) + - QLatin1Char('\''); + return u'\'' + QString::number(datetime.date().year()) + u'-' + + QString::number(datetime.date().month()) + u'-' + + QString::number(datetime.date().day()) + u' ' + + QString::number(datetime.time().hour()) + u':' + + QString::number(datetime.time().minute()) + u':' + + QString::number(datetime.time().second()) + u'.' + + QString::number(datetime.time().msec()).rightJustified(3, u'0', true) + + u'\''; else return QLatin1String("NULL"); } case QMetaType::QTime: { QTime time = field.value().toTime(); if (time.isValid()) - return QLatin1Char('\'') + QString::number(time.hour()) + QLatin1Char(':') + - QString::number(time.minute()) + QLatin1Char(':') + - QString::number(time.second()) + QLatin1Char('.') + - QString::number(time.msec()).rightJustified(3, QLatin1Char('0'), true) + - QLatin1Char('\''); + return u'\'' + QString::number(time.hour()) + u':' + + QString::number(time.minute()) + u':' + + QString::number(time.second()) + u'.' + + QString::number(time.msec()).rightJustified(3, u'0', true) + + u'\''; else return QLatin1String("NULL"); } case QMetaType::QDate: { QDate date = field.value().toDate(); if (date.isValid()) - return QLatin1Char('\'') + QString::number(date.year()) + QLatin1Char('-') + - QString::number(date.month()) + QLatin1Char('-') + - QString::number(date.day()) + QLatin1Char('\''); + return u'\'' + QString::number(date.year()) + u'-' + + QString::number(date.month()) + u'-' + + QString::number(date.day()) + u'\''; else return QLatin1String("NULL"); } @@ -1892,10 +1892,10 @@ void QIBaseDriver::qHandleEventNotification(void *updatedResultBuffer) QString QIBaseDriver::escapeIdentifier(const QString &identifier, IdentifierType) const { QString res = identifier; - if (!identifier.isEmpty() && !identifier.startsWith(QLatin1Char('"')) && !identifier.endsWith(QLatin1Char('"')) ) { - res.replace(QLatin1Char('"'), QLatin1String("\"\"")); - res.prepend(QLatin1Char('"')).append(QLatin1Char('"')); - res.replace(QLatin1Char('.'), QLatin1String("\".\"")); + if (!identifier.isEmpty() && !identifier.startsWith(u'"') && !identifier.endsWith(u'"') ) { + res.replace(u'"', QLatin1String("\"\"")); + res.prepend(u'"').append(u'"'); + res.replace(u'.', QLatin1String("\".\"")); } return res; } diff --git a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp index 0e62bbf94d..5fd8356834 100644 --- a/src/plugins/sqldrivers/mysql/qsql_mysql.cpp +++ b/src/plugins/sqldrivers/mysql/qsql_mysql.cpp @@ -116,8 +116,7 @@ static inline QVariant qDateTimeFromString(QString &val) return QVariant(QDateTime()); if (val.length() == 14) // TIMESTAMPS have the format yyyyMMddhhmmss - val.insert(4, QLatin1Char('-')).insert(7, QLatin1Char('-')).insert(10, - QLatin1Char('T')).insert(13, QLatin1Char(':')).insert(16, QLatin1Char(':')); + val.insert(4, u'-').insert(7, u'-').insert(10, u'T').insert(13, u':').insert(16, u':'); return QVariant(QDateTime::fromString(val, Qt::ISODate)); #endif } @@ -1204,7 +1203,7 @@ bool QMYSQLDriver::open(const QString& db, stored procedure call will fail. */ unsigned int optionFlags = CLIENT_MULTI_STATEMENTS; - const QStringList opts(connOpts.split(QLatin1Char(';'), Qt::SkipEmptyParts)); + const QStringList opts(connOpts.split(u';', Qt::SkipEmptyParts)); QString unixSocket; QString sslCert; QString sslCA; @@ -1219,8 +1218,8 @@ bool QMYSQLDriver::open(const QString& db, // extract the real options from the string for (int i = 0; i < opts.count(); ++i) { QString tmp(opts.at(i).simplified()); - int idx; - if ((idx = tmp.indexOf(QLatin1Char('='))) != -1) { + qsizetype idx; + if ((idx = tmp.indexOf(u'=')) != -1) { QString val = tmp.mid(idx + 1).simplified(); QString opt = tmp.left(idx).simplified(); if (opt == QLatin1String("UNIX_SOCKET")) @@ -1508,7 +1507,7 @@ QString QMYSQLDriver::formatValue(const QSqlField &field, bool trimStrings) cons QVarLengthArray<char, 512> buffer(ba.size() * 2 + 1); auto escapedSize = mysql_real_escape_string(d->mysql, buffer.data(), ba.data(), ba.size()); r.reserve(escapedSize + 3); - r = QLatin1Char('\'') + QString::fromUtf8(buffer) + QLatin1Char('\''); + r = u'\'' + QString::fromUtf8(buffer) + u'\''; break; } else { qWarning("QMYSQLDriver::formatValue: Database not open"); @@ -1521,11 +1520,11 @@ QString QMYSQLDriver::formatValue(const QSqlField &field, bool trimStrings) cons // it's because the MySQL server is too old for prepared queries // in the first place, so it won't understand timezones either. // Besides, MYSQL_TIME does not support timezones, so match it. - r = QLatin1Char('\'') + + r = u'\'' + dt.date().toString(Qt::ISODate) + - QLatin1Char('T') + + u'T' + dt.time().toString(Qt::ISODate) + - QLatin1Char('\''); + u'\''; } break; default: @@ -1538,9 +1537,9 @@ QString QMYSQLDriver::formatValue(const QSqlField &field, bool trimStrings) cons QString QMYSQLDriver::escapeIdentifier(const QString &identifier, IdentifierType) const { QString res = identifier; - if (!identifier.isEmpty() && !identifier.startsWith(QLatin1Char('`')) && !identifier.endsWith(QLatin1Char('`')) ) { - res.prepend(QLatin1Char('`')).append(QLatin1Char('`')); - res.replace(QLatin1Char('.'), QLatin1String("`.`")); + if (!identifier.isEmpty() && !identifier.startsWith(u'`') && !identifier.endsWith(u'`') ) { + res.prepend(u'`').append(u'`'); + res.replace(u'.', QLatin1String("`.`")); } return res; } @@ -1549,8 +1548,8 @@ bool QMYSQLDriver::isIdentifierEscaped(const QString &identifier, IdentifierType { Q_UNUSED(type); return identifier.size() > 2 - && identifier.startsWith(QLatin1Char('`')) //left delimited - && identifier.endsWith(QLatin1Char('`')); //right delimited + && identifier.startsWith(u'`') //left delimited + && identifier.endsWith(u'`'); //right delimited } QT_END_NAMESPACE diff --git a/src/plugins/sqldrivers/oci/qsql_oci.cpp b/src/plugins/sqldrivers/oci/qsql_oci.cpp index 324e502f8c..01fdc4adc5 100644 --- a/src/plugins/sqldrivers/oci/qsql_oci.cpp +++ b/src/plugins/sqldrivers/oci/qsql_oci.cpp @@ -2225,11 +2225,11 @@ bool QOCIDriver::hasFeature(DriverFeature f) const static void qParseOpts(const QString &options, QOCIDriverPrivate *d) { - const QStringList opts(options.split(QLatin1Char(';'), Qt::SkipEmptyParts)); + const QStringList opts(options.split(u';', Qt::SkipEmptyParts)); for (int i = 0; i < opts.count(); ++i) { const QString tmp(opts.at(i)); - int idx; - if ((idx = tmp.indexOf(QLatin1Char('='))) == -1) { + qsizetype idx; + if ((idx = tmp.indexOf(u'=')) == -1) { qWarning("QOCIDriver::parseArgs: Invalid parameter: '%s'", tmp.toLocal8Bit().constData()); continue; @@ -2467,7 +2467,7 @@ static QString make_where_clause(const QString &user, Expression e) "WMSYS", }; static const char joinC[][4] = { "or" , "and" }; - static constexpr QLatin1Char bang[] = { QLatin1Char(' '), QLatin1Char('!') }; + static constexpr QLatin1Char bang[] = { u' ', u'!' }; const QLatin1String join(joinC[e]); @@ -2478,7 +2478,7 @@ static QString make_where_clause(const QString &user, Expression e) for (const auto &sysUser : sysUsers) { const QLatin1String l1(sysUser); if (l1 != user) - result += QLatin1String("owner ") + bang[e] + QLatin1String("= '") + l1 + QLatin1String("' ") + join + QLatin1Char(' '); + result += QLatin1String("owner ") + bang[e] + QLatin1String("= '") + l1 + QLatin1String("' ") + join + u' '; } result.chop(join.size() + 2); // remove final " <join> " @@ -2508,7 +2508,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const t.exec(tableQuery + where); while (t.next()) { if (t.value(0).toString().toUpper() != user.toUpper()) - tl.append(t.value(0).toString() + QLatin1Char('.') + t.value(1).toString()); + tl.append(t.value(0).toString() + u'.' + t.value(1).toString()); else tl.append(t.value(1).toString()); } @@ -2518,7 +2518,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const t.exec(synonymQuery + where); while (t.next()) { if (t.value(0).toString() != d->user) - tl.append(t.value(0).toString() + QLatin1Char('.') + t.value(1).toString()); + tl.append(t.value(0).toString() + u'.' + t.value(1).toString()); else tl.append(t.value(1).toString()); } @@ -2529,7 +2529,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const t.exec(query + where); while (t.next()) { if (t.value(0).toString().toUpper() != d->user.toUpper()) - tl.append(t.value(0).toString() + QLatin1Char('.') + t.value(1).toString()); + tl.append(t.value(0).toString() + u'.' + t.value(1).toString()); else tl.append(t.value(1).toString()); } @@ -2544,7 +2544,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const t.exec(tableQuery + where); while (t.next()) { if (t.value(0).toString().toUpper() != user.toUpper()) - tl.append(t.value(0).toString() + QLatin1Char('.') + t.value(1).toString()); + tl.append(t.value(0).toString() + u'.' + t.value(1).toString()); else tl.append(t.value(1).toString()); } @@ -2554,7 +2554,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const t.exec(synonymQuery + where); while (t.next()) { if (t.value(0).toString() != d->user) - tl.append(t.value(0).toString() + QLatin1Char('.') + t.value(1).toString()); + tl.append(t.value(0).toString() + u'.' + t.value(1).toString()); else tl.append(t.value(1).toString()); } @@ -2565,7 +2565,7 @@ QStringList QOCIDriver::tables(QSql::TableType type) const void qSplitTableAndOwner(const QString & tname, QString * tbl, QString * owner) { - int i = tname.indexOf(QLatin1Char('.')); // prefixed with owner? + qsizetype i = tname.indexOf(u'.'); // prefixed with owner? if (i != -1) { *tbl = tname.right(tname.length() - i - 1); *owner = tname.left(i); @@ -2601,7 +2601,7 @@ QSqlRecord QOCIDriver::record(const QString& tablename) const else table = table.toUpper(); - tmpStmt = stmt.arg(QLatin1Char('\'') + table + QLatin1Char('\'')); + tmpStmt = stmt.arg(u'\'' + table + u'\''); if (owner.isEmpty()) { owner = d->user; } @@ -2611,15 +2611,14 @@ QSqlRecord QOCIDriver::record(const QString& tablename) const else owner = owner.toUpper(); - tmpStmt += QLatin1String(" and a.owner='") + owner + QLatin1Char('\''); + tmpStmt += QLatin1String(" and a.owner='") + owner + u'\''; t.setForwardOnly(true); t.exec(tmpStmt); if (!t.next()) { // try and see if the tablename is a synonym stmt = stmt + QLatin1String(" join all_synonyms b " "on a.owner=b.table_owner and a.table_name=b.table_name " "where b.owner='") + owner + - QLatin1String("' and b.synonym_name='") + table + - QLatin1Char('\''); + QLatin1String("' and b.synonym_name='") + table + u'\''; t.setForwardOnly(true); t.exec(stmt); if (t.next()) @@ -2670,7 +2669,7 @@ QSqlIndex QOCIDriver::primaryIndex(const QString& tablename) const else table = table.toUpper(); - tmpStmt = stmt + QLatin1String(" and a.table_name='") + table + QLatin1Char('\''); + tmpStmt = stmt + QLatin1String(" and a.table_name='") + table + u'\''; if (owner.isEmpty()) { owner = d->user; } @@ -2680,7 +2679,7 @@ QSqlIndex QOCIDriver::primaryIndex(const QString& tablename) const else owner = owner.toUpper(); - tmpStmt += QLatin1String(" and a.owner='") + owner + QLatin1Char('\''); + tmpStmt += QLatin1String(" and a.owner='") + owner + u'\''; t.setForwardOnly(true); t.exec(tmpStmt); @@ -2704,7 +2703,7 @@ QSqlIndex QOCIDriver::primaryIndex(const QString& tablename) const tt.exec(QLatin1String("select data_type from all_tab_columns where table_name='") + t.value(2).toString() + QLatin1String("' and column_name='") + t.value(0).toString() + QLatin1String("' and owner='") + - owner + QLatin1Char('\'')); + owner + u'\''); if (!tt.next()) { return QSqlIndex(); } @@ -2724,11 +2723,11 @@ QString QOCIDriver::formatValue(const QSqlField &field, bool trimStrings) const QString datestring; if (datetime.isValid()) { datestring = QLatin1String("TO_DATE('") + QString::number(datetime.date().year()) - + QLatin1Char('-') - + QString::number(datetime.date().month()) + QLatin1Char('-') - + QString::number(datetime.date().day()) + QLatin1Char(' ') - + QString::number(datetime.time().hour()) + QLatin1Char(':') - + QString::number(datetime.time().minute()) + QLatin1Char(':') + + u'-' + + QString::number(datetime.date().month()) + u'-' + + QString::number(datetime.date().day()) + u' ' + + QString::number(datetime.time().hour()) + u':' + + QString::number(datetime.time().minute()) + u':' + QString::number(datetime.time().second()) + QLatin1String("','YYYY-MM-DD HH24:MI:SS')"); } else { @@ -2741,8 +2740,8 @@ QString QOCIDriver::formatValue(const QSqlField &field, bool trimStrings) const QString datestring; if (datetime.isValid()) { datestring = QLatin1String("TO_DATE('") - + QString::number(datetime.time().hour()) + QLatin1Char(':') - + QString::number(datetime.time().minute()) + QLatin1Char(':') + + QString::number(datetime.time().hour()) + u':' + + QString::number(datetime.time().minute()) + u':' + QString::number(datetime.time().second()) + QLatin1String("','HH24:MI:SS')"); } else { @@ -2755,8 +2754,8 @@ QString QOCIDriver::formatValue(const QSqlField &field, bool trimStrings) const QString datestring; if (date.isValid()) { datestring = QLatin1String("TO_DATE('") + QString::number(date.year()) + - QLatin1Char('-') + - QString::number(date.month()) + QLatin1Char('-') + + u'-' + + QString::number(date.month()) + u'-' + QString::number(date.day()) + QLatin1String("','YYYY-MM-DD')"); } else { datestring = QLatin1String("NULL"); @@ -2779,9 +2778,9 @@ QString QOCIDriver::escapeIdentifier(const QString &identifier, IdentifierType t { QString res = identifier; if (!identifier.isEmpty() && !isIdentifierEscaped(identifier, type)) { - res.replace(QLatin1Char('"'), QLatin1String("\"\"")); - res.prepend(QLatin1Char('"')).append(QLatin1Char('"')); - res.replace(QLatin1Char('.'), QLatin1String("\".\"")); + res.replace(u'"', QLatin1String("\"\"")); + res.prepend(u'"').append(u'"'); + res.replace(u'.', QLatin1String("\".\"")); } return res; } diff --git a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp index dbbf984fa9..c0349ba2c1 100644 --- a/src/plugins/sqldrivers/odbc/qsql_odbc.cpp +++ b/src/plugins/sqldrivers/odbc/qsql_odbc.cpp @@ -147,7 +147,7 @@ public: QChar quoteChar(); private: bool isQuoteInitialized = false; - QChar quote = QLatin1Char('"'); + QChar quote = u'"'; }; class QODBCResultPrivate; @@ -263,7 +263,7 @@ static QString qWarnODBCHandle(int handleType, SQLHANDLE handle, int *nativeCode const QString tmpstore = fromSQLTCHAR(description_, msgLen); if (result != tmpstore) { if (!result.isEmpty()) - result += QLatin1Char(' '); + result += u' '; result += tmpstore; } } else if (r == SQL_ERROR || r == SQL_INVALID_HANDLE) { @@ -284,7 +284,7 @@ static QString qODBCWarn(const SQLHANDLE hStmt, const SQLHANDLE envHandle = 0, const QString dMessage = qWarnODBCHandle(SQL_HANDLE_DBC, pDbC, nativeCode); if (!dMessage.isEmpty()) { if (!result.isEmpty()) - result += QLatin1Char(' '); + result += u' '; result += dMessage; } } @@ -292,7 +292,7 @@ static QString qODBCWarn(const SQLHANDLE hStmt, const SQLHANDLE envHandle = 0, const QString hMessage = qWarnODBCHandle(SQL_HANDLE_STMT, hStmt, nativeCode); if (!hMessage.isEmpty()) { if (!result.isEmpty()) - result += QLatin1Char(' '); + result += u' '; result += hMessage; } } @@ -761,7 +761,7 @@ QChar QODBCDriverPrivate::quoteChar() if (r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) quote = QChar(driverResponse[0]); else - quote = QLatin1Char('"'); + quote = u'"'; isQuoteInitialized = true; } return quote; @@ -771,12 +771,12 @@ QChar QODBCDriverPrivate::quoteChar() bool QODBCDriverPrivate::setConnectionOptions(const QString& connOpts) { // Set any connection attributes - const QStringList opts(connOpts.split(QLatin1Char(';'), Qt::SkipEmptyParts)); + const QStringList opts(connOpts.split(u';', Qt::SkipEmptyParts)); SQLRETURN r = SQL_SUCCESS; for (int i = 0; i < opts.count(); ++i) { const QString tmp(opts.at(i)); int idx; - if ((idx = tmp.indexOf(QLatin1Char('='))) == -1) { + if ((idx = tmp.indexOf(u'=')) == -1) { qWarning() << "QODBCDriver::open: Illegal connect option value '" << tmp << '\''; continue; } @@ -880,7 +880,7 @@ void QODBCDriverPrivate::splitTableQualifier(const QString & qualifier, QString table = qualifier; return; } - QStringList l = qualifier.split(QLatin1Char('.')); + QStringList l = qualifier.split(u'.'); if (l.count() > 3) return; // can't possibly be a valid table qualifier int i = 0, n = l.count(); @@ -2267,7 +2267,7 @@ void QODBCDriverPrivate::checkHasMultiResults() SQLSMALLINT(driverResponse.size() * sizeof(SQLTCHAR)), &length); if (r == SQL_SUCCESS || r == SQL_SUCCESS_WITH_INFO) - hasMultiResultSets = fromSQLTCHAR(driverResponse, length/sizeof(SQLTCHAR)).startsWith(QLatin1Char('Y')); + hasMultiResultSets = fromSQLTCHAR(driverResponse, length/sizeof(SQLTCHAR)).startsWith(u'Y'); } void QODBCDriverPrivate::checkDateTimePrecision() @@ -2398,7 +2398,7 @@ QStringList QODBCDriver::tables(QSql::TableType type) const if (tableType.isEmpty()) return tl; - QString joinedTableTypeString = tableType.join(QLatin1Char(',')); + QString joinedTableTypeString = tableType.join(u','); r = SQLTables(hStmt, NULL, @@ -2636,11 +2636,11 @@ QString QODBCDriver::formatValue(const QSqlField &field, QTime tm = field.value().toDateTime().time(); // Dateformat has to be "yyyy-MM-dd hh:mm:ss", with leading zeroes if month or day < 10 r = QLatin1String("{ ts '") + - QString::number(dt.year()) + QLatin1Char('-') + - QString::number(dt.month()).rightJustified(2, QLatin1Char('0'), true) + - QLatin1Char('-') + - QString::number(dt.day()).rightJustified(2, QLatin1Char('0'), true) + - QLatin1Char(' ') + + QString::number(dt.year()) + u'-' + + QString::number(dt.month()).rightJustified(2, u'0', true) + + u'-' + + QString::number(dt.day()).rightJustified(2, u'0', true) + + u' ' + tm.toString() + QLatin1String("' }"); } else @@ -2675,7 +2675,7 @@ QString QODBCDriver::escapeIdentifier(const QString &identifier, IdentifierType) if (!identifier.isEmpty() && !identifier.startsWith(quote) && !identifier.endsWith(quote) ) { res.replace(quote, QString(quote)+QString(quote)); res.prepend(quote).append(quote); - res.replace(QLatin1Char('.'), QString(quote)+QLatin1Char('.')+QString(quote)); + res.replace(u'.', QString(quote) + u'.' +QString(quote)); } return res; } diff --git a/src/plugins/sqldrivers/psql/qsql_psql.cpp b/src/plugins/sqldrivers/psql/qsql_psql.cpp index 07cc29d78c..ef4158c811 100644 --- a/src/plugins/sqldrivers/psql/qsql_psql.cpp +++ b/src/plugins/sqldrivers/psql/qsql_psql.cpp @@ -101,6 +101,8 @@ Q_DECLARE_METATYPE(PGresult*) QT_BEGIN_NAMESPACE +using namespace Qt::StringLiterals; + inline void qPQfreemem(void *buffer) { PQfreemem(buffer); @@ -194,7 +196,7 @@ void QPSQLDriverPrivate::appendTables(QStringList &tl, QSqlQuery &t, QChar type) if (schema.isEmpty() || schema == QLatin1String("public")) tl.append(t.value(0).toString()); else - tl.append(t.value(0).toString().prepend(QLatin1Char('.')).prepend(schema)); + tl.append(t.value(0).toString().prepend(u'.').prepend(schema)); } } @@ -290,7 +292,7 @@ public: Q_DECLARE_SQLDRIVER_PRIVATE(QPSQLDriver) using QSqlResultPrivate::QSqlResultPrivate; - QString fieldSerial(int i) const override { return QLatin1Char('$') + QString::number(i + 1); } + QString fieldSerial(int i) const override { return u'$' + QString::number(i + 1); } void deallocatePreparedStmt(); std::queue<PGresult*> nextResultSets; @@ -1183,9 +1185,9 @@ bool QPSQLDriver::hasFeature(DriverFeature f) const */ static QString qQuote(QString s) { - s.replace(QLatin1Char('\\'), QLatin1String("\\\\")); - s.replace(QLatin1Char('\''), QLatin1String("\\'")); - s.append(QLatin1Char('\'')).prepend(QLatin1Char('\'')); + s.replace(u'\\', QLatin1String("\\\\")); + s.replace(u'\'', QLatin1String("\\'")); + s.append(u'\'').prepend(u'\''); return s; } @@ -1213,8 +1215,8 @@ bool QPSQLDriver::open(const QString &db, // add any connect options - the server will handle error detection if (!connOpts.isEmpty()) { QString opt = connOpts; - opt.replace(QLatin1Char(';'), QLatin1Char(' '), Qt::CaseInsensitive); - connectString.append(QLatin1Char(' ')).append(opt); + opt.replace(';'_L1, ' '_L1, Qt::CaseInsensitive); + connectString.append(u' ').append(opt); } d->connection = PQconnectdb(std::move(connectString).toLocal8Bit().constData()); @@ -1335,9 +1337,9 @@ QStringList QPSQLDriver::tables(QSql::TableType type) const t.setForwardOnly(true); if (type & QSql::Tables) - const_cast<QPSQLDriverPrivate*>(d)->appendTables(tl, t, QLatin1Char('r')); + const_cast<QPSQLDriverPrivate*>(d)->appendTables(tl, t, u'r'); if (type & QSql::Views) - const_cast<QPSQLDriverPrivate*>(d)->appendTables(tl, t, QLatin1Char('v')); + const_cast<QPSQLDriverPrivate*>(d)->appendTables(tl, t, u'v'); if (type & QSql::SystemTables) { t.exec(QStringLiteral("SELECT relname FROM pg_class WHERE (relkind = 'r') " "AND (relname LIKE 'pg_%') ")); @@ -1350,7 +1352,7 @@ QStringList QPSQLDriver::tables(QSql::TableType type) const static void qSplitTableName(QString &tablename, QString &schema) { - int dot = tablename.indexOf(QLatin1Char('.')); + qsizetype dot = tablename.indexOf(u'.'); if (dot == -1) return; schema = tablename.left(dot); @@ -1438,8 +1440,8 @@ QSqlRecord QPSQLDriver::record(const QString &tablename) const precision = -1; } QString defVal = query.value(5).toString(); - if (!defVal.isEmpty() && defVal.at(0) == QLatin1Char('\'')) { - const int end = defVal.lastIndexOf(QLatin1Char('\'')); + if (!defVal.isEmpty() && defVal.at(0) == u'\'') { + const qsizetype end = defVal.lastIndexOf(u'\''); if (end > 0) defVal = defVal.mid(1, end - 1); } @@ -1479,9 +1481,9 @@ QString QPSQLDriver::formatValue(const QSqlField &field, bool trimStrings) const // we force the value to be considered with a timezone information, and we force it to be UTC // this is safe since postgresql stores only the UTC value and not the timezone offset (only used // while parsing), so we have correct behavior in both case of with timezone and without tz - r = QStringLiteral("TIMESTAMP WITH TIME ZONE ") + QLatin1Char('\'') + + r = QStringLiteral("TIMESTAMP WITH TIME ZONE ") + u'\'' + QLocale::c().toString(field.value().toDateTime().toUTC(), u"yyyy-MM-ddThh:mm:ss.zzz") + - QLatin1Char('Z') + QLatin1Char('\''); + u'Z' + u'\''; } else { r = nullStr(); } @@ -1492,7 +1494,7 @@ QString QPSQLDriver::formatValue(const QSqlField &field, bool trimStrings) const case QMetaType::QTime: #if QT_CONFIG(datestring) if (field.value().toTime().isValid()) { - r = QLatin1Char('\'') + field.value().toTime().toString(u"hh:mm:ss.zzz") + QLatin1Char('\''); + r = u'\'' + field.value().toTime().toString(u"hh:mm:ss.zzz") + u'\''; } else #endif { @@ -1502,7 +1504,7 @@ QString QPSQLDriver::formatValue(const QSqlField &field, bool trimStrings) const case QMetaType::QString: r = QSqlDriver::formatValue(field, trimStrings); if (d->hasBackslashEscape) - r.replace(QLatin1Char('\\'), QLatin1String("\\\\")); + r.replace(u'\\', QLatin1String("\\\\")); break; case QMetaType::Bool: if (field.value().toBool()) @@ -1518,9 +1520,9 @@ QString QPSQLDriver::formatValue(const QSqlField &field, bool trimStrings) const #else unsigned char *data = PQescapeBytea((const unsigned char*)ba.constData(), ba.size(), &len); #endif - r += QLatin1Char('\''); + r += u'\''; r += QLatin1String((const char*)data); - r += QLatin1Char('\''); + r += u'\''; qPQfreemem(data); break; } @@ -1535,7 +1537,7 @@ QString QPSQLDriver::formatValue(const QSqlField &field, bool trimStrings) const r = QSqlDriver::formatValue(field, trimStrings); break; case QMetaType::QUuid: - r = QLatin1Char('\'') + field.value().toString() + QLatin1Char('\''); + r = u'\'' + field.value().toString() + u'\''; break; default: r = QSqlDriver::formatValue(field, trimStrings); @@ -1548,10 +1550,10 @@ QString QPSQLDriver::formatValue(const QSqlField &field, bool trimStrings) const QString QPSQLDriver::escapeIdentifier(const QString &identifier, IdentifierType) const { QString res = identifier; - if (!identifier.isEmpty() && !identifier.startsWith(QLatin1Char('"')) && !identifier.endsWith(QLatin1Char('"')) ) { - res.replace(QLatin1Char('"'), QLatin1String("\"\"")); - res.prepend(QLatin1Char('"')).append(QLatin1Char('"')); - res.replace(QLatin1Char('.'), QLatin1String("\".\"")); + if (!identifier.isEmpty() && !identifier.startsWith(u'"') && !identifier.endsWith(u'"') ) { + res.replace(u'"', QLatin1String("\"\"")); + res.prepend(u'"').append(u'"'); + res.replace(u'.', QLatin1String("\".\"")); } return res; } diff --git a/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp b/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp index 54d734683b..122850bce0 100644 --- a/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp +++ b/src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp @@ -79,13 +79,13 @@ static QString _q_escapeIdentifier(const QString &identifier, QSqlDriver::Identi QString res = identifier; // If it contains [ and ] then we assume it to be escaped properly already as this indicates // the syntax is exactly how it should be - if (identifier.contains(QLatin1Char('[')) && identifier.contains(QLatin1Char(']'))) + if (identifier.contains(u'[') && identifier.contains(u']')) return res; - if (!identifier.isEmpty() && !identifier.startsWith(QLatin1Char('"')) && !identifier.endsWith(QLatin1Char('"'))) { - res.replace(QLatin1Char('"'), QLatin1String("\"\"")); - res.prepend(QLatin1Char('"')).append(QLatin1Char('"')); + if (!identifier.isEmpty() && !identifier.startsWith(u'"') && !identifier.endsWith(u'"')) { + res.replace(u'"', QLatin1String("\"\"")); + res.prepend(u'"').append(u'"'); if (type == QSqlDriver::TableName) - res.replace(QLatin1Char('.'), QLatin1String("\".\"")); + res.replace(u'.', QLatin1String("\".\"")); } return res; } @@ -209,10 +209,10 @@ void QSQLiteResultPrivate::initColumns(bool emptyResultset) for (int i = 0; i < nCols; ++i) { QString colName = QString(reinterpret_cast<const QChar *>( sqlite3_column_name16(stmt, i)) - ).remove(QLatin1Char('"')); + ).remove(u'"'); const QString tableName = QString(reinterpret_cast<const QChar *>( sqlite3_column_table_name16(stmt, i)) - ).remove(QLatin1Char('"')); + ).remove(u'"'); // must use typeName for resolving the type to match QSqliteDriver::record QString typeName = QString(reinterpret_cast<const QChar *>( sqlite3_column_decltype16(stmt, i))); @@ -733,12 +733,12 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c int regexpCacheSize = 25; #endif - const auto opts = QStringView{conOpts}.split(QLatin1Char(';')); + const auto opts = QStringView{conOpts}.split(u';'); for (auto option : opts) { option = option.trimmed(); if (option.startsWith(QLatin1String("QSQLITE_BUSY_TIMEOUT"))) { option = option.mid(20).trimmed(); - if (option.startsWith(QLatin1Char('='))) { + if (option.startsWith(u'=')) { bool ok; const int nt = option.mid(1).trimmed().toInt(&ok); if (ok) @@ -758,7 +758,7 @@ bool QSQLiteDriver::open(const QString & db, const QString &, const QString &, c option = option.mid(regexpConnectOption.size()).trimmed(); if (option.isEmpty()) { defineRegexp = true; - } else if (option.startsWith(QLatin1Char('='))) { + } else if (option.startsWith(u'=')) { bool ok = false; const int cacheSize = option.mid(1).trimmed().toInt(&ok); if (ok) { @@ -917,15 +917,15 @@ static QSqlIndex qGetTableInfo(QSqlQuery &q, const QString &tableName, bool only { QString schema; QString table(tableName); - const int indexOfSeparator = tableName.indexOf(QLatin1Char('.')); + const qsizetype indexOfSeparator = tableName.indexOf(u'.'); if (indexOfSeparator > -1) { - const int indexOfCloseBracket = tableName.indexOf(QLatin1Char(']')); + const qsizetype indexOfCloseBracket = tableName.indexOf(u']'); if (indexOfCloseBracket != tableName.size() - 1) { // Handles a case like databaseName.tableName schema = tableName.left(indexOfSeparator + 1); table = tableName.mid(indexOfSeparator + 1); } else { - const int indexOfOpenBracket = tableName.lastIndexOf(QLatin1Char('['), indexOfCloseBracket); + const qsizetype indexOfOpenBracket = tableName.lastIndexOf(u'[', indexOfCloseBracket); if (indexOfOpenBracket > 0) { // Handles a case like databaseName.[tableName] schema = tableName.left(indexOfOpenBracket); @@ -934,7 +934,7 @@ static QSqlIndex qGetTableInfo(QSqlQuery &q, const QString &tableName, bool only } } q.exec(QLatin1String("PRAGMA ") + schema + QLatin1String("table_info (") + - _q_escapeIdentifier(table, QSqlDriver::TableName) + QLatin1Char(')')); + _q_escapeIdentifier(table, QSqlDriver::TableName) + u')'); QSqlIndex ind; while (q.next()) { bool isPk = q.value(5).toInt(); @@ -942,8 +942,8 @@ static QSqlIndex qGetTableInfo(QSqlQuery &q, const QString &tableName, bool only continue; QString typeName = q.value(2).toString().toLower(); QString defVal = q.value(4).toString(); - if (!defVal.isEmpty() && defVal.at(0) == QLatin1Char('\'')) { - const int end = defVal.lastIndexOf(QLatin1Char('\'')); + if (!defVal.isEmpty() && defVal.at(0) == u'\'') { + const int end = defVal.lastIndexOf(u'\''); if (end > 0) defVal = defVal.mid(1, end - 1); } diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp index ee0254411c..1d69e8553f 100644 --- a/src/sql/kernel/qsqldatabase.cpp +++ b/src/sql/kernel/qsqldatabase.cpp @@ -699,7 +699,7 @@ void QSqlDatabasePrivate::init(const QString &type) if (!driver) { qWarning("QSqlDatabase: %s driver not loaded", type.toLatin1().data()); qWarning("QSqlDatabase: available drivers: %s", - QSqlDatabase::drivers().join(QLatin1Char(' ')).toLatin1().data()); + QSqlDatabase::drivers().join(u' ').toLatin1().data()); if (QCoreApplication::instance() == nullptr) qWarning("QSqlDatabase: an instance of QCoreApplication is required for loading driver plugins"); driver = shared_null()->driver; diff --git a/src/sql/kernel/qsqldriver.cpp b/src/sql/kernel/qsqldriver.cpp index 369330a951..1c9979623f 100644 --- a/src/sql/kernel/qsqldriver.cpp +++ b/src/sql/kernel/qsqldriver.cpp @@ -423,8 +423,8 @@ bool QSqlDriver::isIdentifierEscaped(const QString &identifier, IdentifierType t { Q_UNUSED(type); return identifier.size() > 2 - && identifier.startsWith(QLatin1Char('"')) //left delimited - && identifier.endsWith(QLatin1Char('"')); //right delimited + && identifier.startsWith(u'"') //left delimited + && identifier.endsWith(u'"'); //right delimited } /*! @@ -497,7 +497,7 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, case WhereStatement: { const QString tableNamePrefix = tableNameString.isEmpty() - ? QString() : tableNameString + QLatin1Char('.'); + ? QString() : tableNameString + u'.'; for (int i = 0; i < rec.count(); ++i) { if (!rec.isGenerated(i)) continue; @@ -518,9 +518,9 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, for (i = 0; i < rec.count(); ++i) { if (!rec.isGenerated(i)) continue; - s.append(prepareIdentifier(rec.fieldName(i), QSqlDriver::FieldName, this)).append(QLatin1Char('=')); + s.append(prepareIdentifier(rec.fieldName(i), QSqlDriver::FieldName, this)).append(u'='); if (preparedStatement) - s.append(QLatin1Char('?')); + s.append(u'?'); else s.append(formatValue(rec.field(i))); s.append(QLatin1String(", ")); @@ -541,7 +541,7 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, continue; s.append(prepareIdentifier(rec.fieldName(i), QSqlDriver::FieldName, this)).append(QLatin1String(", ")); if (preparedStatement) - vals.append(QLatin1Char('?')); + vals.append(u'?'); else vals.append(formatValue(rec.field(i))); vals.append(QLatin1String(", ")); @@ -550,8 +550,8 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, s.clear(); } else { vals.chop(2); // remove trailing comma - s[s.length() - 2] = QLatin1Char(')'); - s.append(QLatin1String("VALUES (")).append(vals).append(QLatin1Char(')')); + s[s.length() - 2] = u')'; + s.append(QLatin1String("VALUES (")).append(vals).append(u')'); } break; } } @@ -610,22 +610,19 @@ QString QSqlDriver::formatValue(const QSqlField &field, bool trimStrings) const #if QT_CONFIG(datestring) case QMetaType::QDate: if (field.value().toDate().isValid()) - r = QLatin1Char('\'') + field.value().toDate().toString(Qt::ISODate) - + QLatin1Char('\''); + r = u'\'' + field.value().toDate().toString(Qt::ISODate) + u'\''; else r = nullTxt; break; case QMetaType::QTime: if (field.value().toTime().isValid()) - r = QLatin1Char('\'') + field.value().toTime().toString(Qt::ISODate) - + QLatin1Char('\''); + r = u'\'' + field.value().toTime().toString(Qt::ISODate) + u'\''; else r = nullTxt; break; case QMetaType::QDateTime: if (field.value().toDateTime().isValid()) - r = QLatin1Char('\'') + - field.value().toDateTime().toString(Qt::ISODate) + QLatin1Char('\''); + r = u'\'' + field.value().toDateTime().toString(Qt::ISODate) + u'\''; else r = nullTxt; break; @@ -641,8 +638,8 @@ QString QSqlDriver::formatValue(const QSqlField &field, bool trimStrings) const result.truncate(end); } /* escape the "'" character */ - result.replace(QLatin1Char('\''), QLatin1String("''")); - r = QLatin1Char('\'') + result + QLatin1Char('\''); + result.replace(u'\'', QLatin1String("''")); + r = u'\'' + result + u'\''; break; } case QMetaType::Bool: @@ -658,7 +655,7 @@ QString QSqlDriver::formatValue(const QSqlField &field, bool trimStrings) const res += QLatin1Char(hexchars[s >> 4]); res += QLatin1Char(hexchars[s & 0x0f]); } - r = QLatin1Char('\'') + res + QLatin1Char('\''); + r = u'\'' + res + u'\''; break; } } diff --git a/src/sql/kernel/qsqlerror.cpp b/src/sql/kernel/qsqlerror.cpp index 5e69778a2a..2fb0599287 100644 --- a/src/sql/kernel/qsqlerror.cpp +++ b/src/sql/kernel/qsqlerror.cpp @@ -244,7 +244,7 @@ QString QSqlError::text() const { QString result = d->databaseError; if (!d->databaseError.isEmpty() && !d->driverError.isEmpty() && !d->databaseError.endsWith(QLatin1String("\n"))) - result += QLatin1Char(' '); + result += u' '; result += d->driverError; return result; } diff --git a/src/sql/kernel/qsqlindex.cpp b/src/sql/kernel/qsqlindex.cpp index 5781f24b5c..068a6892ac 100644 --- a/src/sql/kernel/qsqlindex.cpp +++ b/src/sql/kernel/qsqlindex.cpp @@ -173,11 +173,10 @@ QString QSqlIndex::createField(int i, const QString& prefix, bool verbose) const { QString f; if (!prefix.isEmpty()) - f += prefix + QLatin1Char('.'); + f += prefix + u'.'; f += field(i).name(); if (verbose) - f += QLatin1Char(' ') + QString((isDescending(i) - ? QLatin1String("DESC") : QLatin1String("ASC"))); + f += u' ' + QString((isDescending(i) ? QLatin1String("DESC") : QLatin1String("ASC"))); return f; } diff --git a/src/sql/kernel/qsqlrecord.cpp b/src/sql/kernel/qsqlrecord.cpp index 5f4a4a8ab1..4868e50ef9 100644 --- a/src/sql/kernel/qsqlrecord.cpp +++ b/src/sql/kernel/qsqlrecord.cpp @@ -76,7 +76,7 @@ QString QSqlRecordPrivate::createField(int index, const QString &prefix) const { QString f; if (!prefix.isEmpty()) - f = prefix + QLatin1Char('.'); + f = prefix + u'.'; f += fields.at(index).name(); return f; } @@ -234,7 +234,7 @@ int QSqlRecord::indexOf(const QString& name) const { QStringView tableName; QStringView fieldName(name); - const int idx = name.indexOf(QLatin1Char('.')); + const qsizetype idx = name.indexOf(u'.'); if (idx != -1) { tableName = fieldName.left(idx); fieldName = fieldName.mid(idx + 1); diff --git a/src/sql/kernel/qsqlresult.cpp b/src/sql/kernel/qsqlresult.cpp index cdf1479e64..860622fb24 100644 --- a/src/sql/kernel/qsqlresult.cpp +++ b/src/sql/kernel/qsqlresult.cpp @@ -86,7 +86,7 @@ QString QSqlResultPrivate::positionalToNamedBinding(const QString &query) const QChar ch = query.at(i); if (!closingQuote.isNull()) { if (ch == closingQuote) { - if (closingQuote == QLatin1Char(']') + if (closingQuote == u']' && i + 1 < n && query.at(i + 1) == closingQuote) { // consume the extra character. don't close. ++i; @@ -97,13 +97,13 @@ QString QSqlResultPrivate::positionalToNamedBinding(const QString &query) const } result += ch; } else { - if (ch == QLatin1Char('?')) { + if (ch == u'?') { result += fieldSerial(count++); } else { - if (ch == QLatin1Char('\'') || ch == QLatin1Char('"') || ch == QLatin1Char('`')) + if (ch == u'\'' || ch == u'"' || ch == u'`') closingQuote = ch; - else if (!ignoreBraces && ch == QLatin1Char('[')) - closingQuote = QLatin1Char(']'); + else if (!ignoreBraces && ch == u'[') + closingQuote = u']'; result += ch; } } @@ -134,7 +134,7 @@ QString QSqlResultPrivate::namedToPositionalBinding(const QString &query) QChar ch = query.at(i); if (!closingQuote.isNull()) { if (ch == closingQuote) { - if (closingQuote == QLatin1Char(']') + if (closingQuote == u']' && i + 1 < n && query.at(i + 1) == closingQuote) { // consume the extra character. don't close. ++i; @@ -146,8 +146,8 @@ QString QSqlResultPrivate::namedToPositionalBinding(const QString &query) result += ch; ++i; } else { - if (ch == QLatin1Char(':') - && (i == 0 || query.at(i - 1) != QLatin1Char(':')) + if (ch == u':' + && (i == 0 || query.at(i - 1) != u':') && (i + 1 < n && qIsAlnum(query.at(i + 1)))) { int pos = i + 2; while (pos < n && qIsAlnum(query.at(pos))) @@ -155,13 +155,13 @@ QString QSqlResultPrivate::namedToPositionalBinding(const QString &query) QString holder(query.mid(i, pos - i)); indexes[holder].append(count++); holders.append(QHolder(holder, i)); - result += QLatin1Char('?'); + result += u'?'; i = pos; } else { - if (ch == QLatin1Char('\'') || ch == QLatin1Char('"') || ch == QLatin1Char('`')) + if (ch == u'\'' || ch == u'"' || ch == u'`') closingQuote = ch; - else if (!ignoreBraces && ch == QLatin1Char('[')) - closingQuote = QLatin1Char(']'); + else if (!ignoreBraces && ch == u'[') + closingQuote = u']'; result += ch; ++i; } @@ -677,10 +677,10 @@ bool QSqlResult::exec() } } else { QString val; - int i = 0; + qsizetype i = 0; int idx = 0; for (idx = 0; idx < d->values.count(); ++idx) { - i = query.indexOf(QLatin1Char('?'), i); + i = query.indexOf(u'?', i); if (i == -1) continue; QVariant var = d->values.value(idx); diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp index 8c787eab0c..8ac5d67371 100644 --- a/src/sql/models/qsqlrelationaltablemodel.cpp +++ b/src/sql/models/qsqlrelationaltablemodel.cpp @@ -528,7 +528,7 @@ QString QSqlRelationalTableModelPrivate::fullyQualifiedFieldName(const QString & { QString ret; ret.reserve(tableName.size() + fieldName.size() + 1); - ret.append(tableName).append(QLatin1Char('.')).append(fieldName); + ret.append(tableName).append(u'.').append(fieldName); return ret; } diff --git a/src/sql/models/qsqltablemodel.cpp b/src/sql/models/qsqltablemodel.cpp index 32a5d135cb..c793b946dd 100644 --- a/src/sql/models/qsqltablemodel.cpp +++ b/src/sql/models/qsqltablemodel.cpp @@ -1002,7 +1002,7 @@ QString QSqlTableModel::orderByClause() const //we can safely escape the field because it would have been obtained from the database //and have the correct case QString field = d->db.driver()->escapeIdentifier(d->tableName, QSqlDriver::TableName) - + QLatin1Char('.') + + u'.' + d->db.driver()->escapeIdentifier(f.name(), QSqlDriver::FieldName); field = d->sortOrder == Qt::AscendingOrder ? Sql::asc(field) : Sql::desc(field); return Sql::orderBy(field); |