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 /src/sql/drivers/odbc | |
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 'src/sql/drivers/odbc')
-rw-r--r-- | src/sql/drivers/odbc/qsql_odbc.cpp | 30 |
1 files changed, 15 insertions, 15 deletions
diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp index 8e7f2f5025..f95fb8868e 100644 --- a/src/sql/drivers/odbc/qsql_odbc.cpp +++ b/src/sql/drivers/odbc/qsql_odbc.cpp @@ -1660,14 +1660,14 @@ QVariant QODBCResult::lastInsertId() const QString sql; switch (d->driverPrivate->dbmsType) { - case QODBCDriverPrivate::MSSqlServer: - case QODBCDriverPrivate::Sybase: + case QSqlDriver::MSSqlServer: + case QSqlDriver::Sybase: sql = QLatin1String("SELECT @@IDENTITY;"); break; - case QODBCDriverPrivate::MySqlServer: + case QSqlDriver::MySqlServer: sql = QLatin1String("SELECT LAST_INSERT_ID();"); break; - case QODBCDriverPrivate::PostgreSQL: + case QSqlDriver::PostgreSQL: sql = QLatin1String("SELECT lastval();"); break; default: @@ -1807,14 +1807,14 @@ bool QODBCDriver::hasFeature(DriverFeature f) const case CancelQuery: return false; case LastInsertId: - return (d->dbmsType == QODBCDriverPrivate::MSSqlServer) - || (d->dbmsType == QODBCDriverPrivate::Sybase) - || (d->dbmsType == QODBCDriverPrivate::MySqlServer) - || (d->dbmsType == QODBCDriverPrivate::PostgreSQL); + return (d->dbmsType == MSSqlServer) + || (d->dbmsType == Sybase) + || (d->dbmsType == MySqlServer) + || (d->dbmsType == PostgreSQL); case MultipleResultSets: return d->hasMultiResultSets; case BLOB: { - if (d->dbmsType == QODBCDriverPrivate::MySqlServer) + if (d->dbmsType == MySqlServer) return true; else return false; @@ -1911,7 +1911,7 @@ bool QODBCDriver::open(const QString & db, d->checkDateTimePrecision(); setOpen(true); setOpenError(false); - if (d->dbmsType == QODBCDriverPrivate::MSSqlServer) { + if (d->dbmsType == MSSqlServer) { QSqlQuery i(createResult()); i.exec(QLatin1String("SET QUOTED_IDENTIFIER ON")); } @@ -2097,15 +2097,15 @@ void QODBCDriverPrivate::checkDBMS() serverType = QString::fromUtf8((const char *)serverString.constData(), t); #endif if (serverType.contains(QLatin1String("PostgreSQL"), Qt::CaseInsensitive)) - dbmsType = PostgreSQL; + dbmsType = QSqlDriver::PostgreSQL; else if (serverType.contains(QLatin1String("Oracle"), Qt::CaseInsensitive)) - dbmsType = Oracle; + dbmsType = QSqlDriver::Oracle; else if (serverType.contains(QLatin1String("MySql"), Qt::CaseInsensitive)) - dbmsType = MySqlServer; + dbmsType = QSqlDriver::MySqlServer; else if (serverType.contains(QLatin1String("Microsoft SQL Server"), Qt::CaseInsensitive)) - dbmsType = MSSqlServer; + dbmsType = QSqlDriver::MSSqlServer; else if (serverType.contains(QLatin1String("Sybase"), Qt::CaseInsensitive)) - dbmsType = Sybase; + dbmsType = QSqlDriver::Sybase; } r = SQLGetInfo(hDbc, SQL_DRIVER_NAME, |