summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/plugins/sqldrivers/db2/qsql_db2.cpp46
-rw-r--r--src/plugins/sqldrivers/ibase/qsql_ibase.cpp48
-rw-r--r--src/plugins/sqldrivers/mysql/qsql_mysql.cpp27
-rw-r--r--src/plugins/sqldrivers/oci/qsql_oci.cpp59
-rw-r--r--src/plugins/sqldrivers/odbc/qsql_odbc.cpp32
-rw-r--r--src/plugins/sqldrivers/psql/qsql_psql.cpp48
-rw-r--r--src/plugins/sqldrivers/sqlite/qsql_sqlite.cpp32
-rw-r--r--src/sql/kernel/qsqldatabase.cpp2
-rw-r--r--src/sql/kernel/qsqldriver.cpp31
-rw-r--r--src/sql/kernel/qsqlerror.cpp2
-rw-r--r--src/sql/kernel/qsqlindex.cpp5
-rw-r--r--src/sql/kernel/qsqlrecord.cpp4
-rw-r--r--src/sql/kernel/qsqlresult.cpp28
-rw-r--r--src/sql/models/qsqlrelationaltablemodel.cpp2
-rw-r--r--src/sql/models/qsqltablemodel.cpp2
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);