diff options
author | Matt Broadstone <mbroadstone@devonit.com> | 2014-09-16 10:03:14 -0400 |
---|---|---|
committer | Mark Brand <mabrand@mabrand.nl> | 2014-09-24 14:44:49 +0200 |
commit | f84b00c6d26eb7a3a6802210d2a8b12ddbf815aa (patch) | |
tree | d21bb67ce89e136da1ae6be66a7d005f84c0cd93 /tests/auto/sql/kernel/qsqldatabase/tst_databases.h | |
parent | eef1e51f97a652907bda29357c20388ab36f26ec (diff) |
Expose QSqlDriverPrivate dbmsType in public QSqlDriver api
dbmsType was previously kept as a private variable in QSqlDriverPrivate,
however it's particularly useful for QODBC users.
[ChangeLog][QtSql][QSqlDriver] Add support for determining DBMS type from SQL driver.
Change-Id: If1c221520da9ac4ccef85a02db078679d76eac92
Reviewed-by: Mark Brand <mabrand@mabrand.nl>
Diffstat (limited to 'tests/auto/sql/kernel/qsqldatabase/tst_databases.h')
-rw-r--r-- | tests/auto/sql/kernel/qsqldatabase/tst_databases.h | 42 |
1 files changed, 21 insertions, 21 deletions
diff --git a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h index 23596eae02..d5ccc194bb 100644 --- a/tests/auto/sql/kernel/qsqldatabase/tst_databases.h +++ b/tests/auto/sql/kernel/qsqldatabase/tst_databases.h @@ -99,7 +99,7 @@ inline QString fixupTableName(const QString &tableName, QSqlDatabase db) QString tbName = tableName; // On Oracle we are limited to 30 character tablenames QSqlDriverPrivate *d = static_cast<QSqlDriverPrivate *>(QObjectPrivate::get(db.driver())); - if (d && d->dbmsType == QSqlDriverPrivate::Oracle) + if (d && d->dbmsType == QSqlDriver::Oracle) tbName.truncate(30); return tbName; } @@ -385,7 +385,7 @@ public: bool wasDropped; QSqlQuery q( db ); QStringList dbtables=db.tables(); - QSqlDriverPrivate::DBMSType dbType = getDatabaseType(db); + QSqlDriver::DBMSType dbType = getDatabaseType(db); foreach(const QString &tableName, tableNames) { wasDropped = true; @@ -397,7 +397,7 @@ public: foreach(const QString &table2, dbtables.filter(table, Qt::CaseInsensitive)) { if(table2.compare(table.section('.', -1, -1), Qt::CaseInsensitive) == 0) { table=db.driver()->escapeIdentifier(table2, QSqlDriver::TableName); - if (dbType == QSqlDriverPrivate::PostgreSQL) + if (dbType == QSqlDriver::PostgreSQL) wasDropped = q.exec( "drop table " + table + " cascade"); else wasDropped = q.exec( "drop table " + table); @@ -462,26 +462,26 @@ public: // blobSize is only used if the db doesn't have a generic blob type static QString blobTypeName( QSqlDatabase db, int blobSize = 10000 ) { - const QSqlDriverPrivate::DBMSType dbType = getDatabaseType(db); - if (dbType == QSqlDriverPrivate::MySqlServer) + const QSqlDriver::DBMSType dbType = getDatabaseType(db); + if (dbType == QSqlDriver::MySqlServer) return "longblob"; - if (dbType == QSqlDriverPrivate::PostgreSQL) + if (dbType == QSqlDriver::PostgreSQL) return "bytea"; - if (dbType == QSqlDriverPrivate::Sybase - || dbType == QSqlDriverPrivate::MSSqlServer + if (dbType == QSqlDriver::Sybase + || dbType == QSqlDriver::MSSqlServer || isMSAccess( db ) ) return "image"; - if (dbType == QSqlDriverPrivate::DB2) + if (dbType == QSqlDriver::DB2) return QString( "blob(%1)" ).arg( blobSize ); - if (dbType == QSqlDriverPrivate::Interbase) + if (dbType == QSqlDriver::Interbase) return QString( "blob sub_type 0 segment size 4096" ); - if (dbType == QSqlDriverPrivate::Oracle - || dbType == QSqlDriverPrivate::SQLite) + if (dbType == QSqlDriver::Oracle + || dbType == QSqlDriver::SQLite) return "blob"; qDebug() << "tst_Databases::blobTypeName: Don't know the blob type for" << dbToString( db ); @@ -491,24 +491,24 @@ public: static QString dateTimeTypeName(QSqlDatabase db) { - const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); - if (dbType == QSqlDriverPrivate::PostgreSQL) + const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db); + if (dbType == QSqlDriver::PostgreSQL) return QLatin1String("timestamp"); - if (dbType == QSqlDriverPrivate::Oracle && getOraVersion(db) >= 9) + if (dbType == QSqlDriver::Oracle && getOraVersion(db) >= 9) return QLatin1String("timestamp(0)"); return QLatin1String("datetime"); } static QString autoFieldName( QSqlDatabase db ) { - const QSqlDriverPrivate::DBMSType dbType = tst_Databases::getDatabaseType(db); - if (dbType == QSqlDriverPrivate::MySqlServer) + const QSqlDriver::DBMSType dbType = tst_Databases::getDatabaseType(db); + if (dbType == QSqlDriver::MySqlServer) return "AUTO_INCREMENT"; - if (dbType == QSqlDriverPrivate::Sybase || dbType == QSqlDriverPrivate::MSSqlServer) + if (dbType == QSqlDriver::Sybase || dbType == QSqlDriver::MSSqlServer) return "IDENTITY"; -/* if (dbType == QSqlDriverPrivate::PostgreSQL) +/* if (dbType == QSqlDriver::PostgreSQL) return "SERIAL";*/ -// if (dbType == QSqlDriverPrivate::DB2) +// if (dbType == QSqlDriver::DB2) // return "GENERATED BY DEFAULT AS IDENTITY"; return QString(); @@ -538,7 +538,7 @@ public: return result.toLocal8Bit(); } - static QSqlDriverPrivate::DBMSType getDatabaseType(QSqlDatabase db) + static QSqlDriver::DBMSType getDatabaseType(QSqlDatabase db) { QSqlDriverPrivate *d = static_cast<QSqlDriverPrivate *>(QObjectPrivate::get(db.driver())); return d->dbmsType; |