diff options
Diffstat (limited to 'src/sql/kernel')
-rw-r--r-- | src/sql/kernel/qsqldatabase.cpp | 10 | ||||
-rw-r--r-- | src/sql/kernel/qsqldriver.cpp | 16 |
2 files changed, 18 insertions, 8 deletions
diff --git a/src/sql/kernel/qsqldatabase.cpp b/src/sql/kernel/qsqldatabase.cpp index 12ab9671b5..d63a9e59a8 100644 --- a/src/sql/kernel/qsqldatabase.cpp +++ b/src/sql/kernel/qsqldatabase.cpp @@ -1088,6 +1088,11 @@ QStringList QSqlDatabase::tables(QSql::TableType type) const Returns the primary index for table \a tablename. If no primary index exists, an empty QSqlIndex is returned. + \note Some drivers, such as the \l {QPSQL Case Sensitivity}{QPSQL} + driver, may may require you to pass \a tablename in lower case if + the table was not quoted when created. See the + \l{sql-driver.html}{Qt SQL driver} documentation for more information. + \sa tables(), record() */ @@ -1102,6 +1107,11 @@ QSqlIndex QSqlDatabase::primaryIndex(const QString& tablename) const the table (or view) called \a tablename. The order in which the fields appear in the record is undefined. If no such table (or view) exists, an empty record is returned. + + \note Some drivers, such as the \l {QPSQL Case Sensitivity}{QPSQL} + driver, may may require you to pass \a tablename in lower case if + the table was not quoted when created. See the + \l{sql-driver.html}{Qt SQL driver} documentation for more information. */ QSqlRecord QSqlDatabase::record(const QString& tablename) const diff --git a/src/sql/kernel/qsqldriver.cpp b/src/sql/kernel/qsqldriver.cpp index 8c6ae382f6..7f7b81b05b 100644 --- a/src/sql/kernel/qsqldriver.cpp +++ b/src/sql/kernel/qsqldriver.cpp @@ -488,6 +488,8 @@ QString QSqlDriver::stripDelimiters(const QString &identifier, IdentifierType ty QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, const QSqlRecord &rec, bool preparedStatement) const { + const auto tableNameString = tableName.isEmpty() ? QString() + : prepareIdentifier(tableName, QSqlDriver::TableName, this); int i; QString s; s.reserve(128); @@ -500,13 +502,12 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, if (s.isEmpty()) return s; s.chop(2); - s.prepend(QLatin1String("SELECT ")).append(QLatin1String(" FROM ")).append(tableName); + s = QLatin1String("SELECT ") + s + QLatin1String(" FROM ") + tableNameString; break; case WhereStatement: { - const QString tableNamePrefix = tableName.isEmpty() - ? QString() - : prepareIdentifier(tableName, QSqlDriver::TableName, this) + QLatin1Char('.'); + const QString tableNamePrefix = tableNameString.isEmpty() + ? QString() : tableNameString + QLatin1Char('.'); for (int i = 0; i < rec.count(); ++i) { if (!rec.isGenerated(i)) continue; @@ -523,8 +524,7 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, break; } case UpdateStatement: - s.append(QLatin1String("UPDATE ")).append(tableName).append( - QLatin1String(" SET ")); + s = s + QLatin1String("UPDATE ") + tableNameString + QLatin1String(" SET "); for (i = 0; i < rec.count(); ++i) { if (!rec.isGenerated(i)) continue; @@ -541,10 +541,10 @@ QString QSqlDriver::sqlStatement(StatementType type, const QString &tableName, s.clear(); break; case DeleteStatement: - s.append(QLatin1String("DELETE FROM ")).append(tableName); + s = s + QLatin1String("DELETE FROM ") + tableNameString; break; case InsertStatement: { - s.append(QLatin1String("INSERT INTO ")).append(tableName).append(QLatin1String(" (")); + s = s + QLatin1String("INSERT INTO ") + tableNameString + QLatin1String(" ("); QString vals; for (i = 0; i < rec.count(); ++i) { if (!rec.isGenerated(i)) |