diff options
author | Andy Shaw <[email protected]> | 2020-07-31 12:48:22 +0200 |
---|---|---|
committer | Andy Shaw <[email protected]> | 2020-08-11 22:13:13 +0200 |
commit | 295e98915d933970e56c65510b35f21e848f9af1 (patch) | |
tree | 3e7c61a90704d550c6d64cb780d357469d9e65ff /src/sql/models/qsqlrelationaltablemodel.cpp | |
parent | e790af0e0a030dea597bbc9489170b5ba1cf9e46 (diff) |
Introduce maximumIdentifierLength to return database limits for names
Since Interbase/Firebird has a limit for column and table names then
this function can be used by QSqlRelationalTableModel to make sure that
the aliases created are within that limit.
Change-Id: I0cb1c65b34befcb3690ccad3f081556dd2691344
Reviewed-by: Volker Hilsheimer <[email protected]>
Diffstat (limited to 'src/sql/models/qsqlrelationaltablemodel.cpp')
-rw-r--r-- | src/sql/models/qsqlrelationaltablemodel.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/sql/models/qsqlrelationaltablemodel.cpp b/src/sql/models/qsqlrelationaltablemodel.cpp index bdd82990d94..8c787eab0cb 100644 --- a/src/sql/models/qsqlrelationaltablemodel.cpp +++ b/src/sql/models/qsqlrelationaltablemodel.cpp @@ -590,8 +590,9 @@ QString QSqlRelationalTableModel::selectStatement() const QString displayColumn = relation.displayColumn(); if (d->db.driver()->isIdentifierEscaped(displayColumn, QSqlDriver::FieldName)) displayColumn = d->db.driver()->stripDelimiters(displayColumn, QSqlDriver::FieldName); - const QString alias = QString::fromLatin1("%1_%2_%3") + QString alias = QString::fromLatin1("%1_%2_%3") .arg(relTableName, displayColumn, QString::number(fieldNames.value(fieldList[i]))); + alias.truncate(d->db.driver()->maximumIdentifierLength(QSqlDriver::FieldName)); displayTableField = Sql::as(displayTableField, alias); --fieldNames[fieldList[i]]; } |