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 | |
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')
-rw-r--r-- | src/sql/drivers/db2/qsql_db2.cpp | 2 | ||||
-rw-r--r-- | src/sql/drivers/ibase/qsql_ibase.cpp | 2 | ||||
-rw-r--r-- | src/sql/drivers/mysql/qsql_mysql.cpp | 2 | ||||
-rw-r--r-- | src/sql/drivers/oci/qsql_oci.cpp | 2 | ||||
-rw-r--r-- | src/sql/drivers/odbc/qsql_odbc.cpp | 30 | ||||
-rw-r--r-- | src/sql/drivers/psql/qsql_psql.cpp | 2 | ||||
-rw-r--r-- | src/sql/drivers/sqlite/qsql_sqlite.cpp | 2 | ||||
-rw-r--r-- | src/sql/drivers/sqlite2/qsql_sqlite2.cpp | 2 | ||||
-rw-r--r-- | src/sql/drivers/tds/qsql_tds.cpp | 2 |
9 files changed, 23 insertions, 23 deletions
diff --git a/src/sql/drivers/db2/qsql_db2.cpp b/src/sql/drivers/db2/qsql_db2.cpp index a7508963f9..09ac5bda46 100644 --- a/src/sql/drivers/db2/qsql_db2.cpp +++ b/src/sql/drivers/db2/qsql_db2.cpp @@ -66,7 +66,7 @@ static const SQLSMALLINT qParamType[4] = { SQL_PARAM_INPUT, SQL_PARAM_INPUT, SQL class QDB2DriverPrivate : public QSqlDriverPrivate { public: - QDB2DriverPrivate() : QSqlDriverPrivate(), hEnv(0), hDbc(0) { dbmsType = DB2; } + QDB2DriverPrivate() : QSqlDriverPrivate(), hEnv(0), hDbc(0) { dbmsType = QSqlDriver::DB2; } SQLHANDLE hEnv; SQLHANDLE hDbc; QString user; diff --git a/src/sql/drivers/ibase/qsql_ibase.cpp b/src/sql/drivers/ibase/qsql_ibase.cpp index 4ca1edbde0..bb3ffe619e 100644 --- a/src/sql/drivers/ibase/qsql_ibase.cpp +++ b/src/sql/drivers/ibase/qsql_ibase.cpp @@ -306,7 +306,7 @@ class QIBaseDriverPrivate : public QSqlDriverPrivate { Q_DECLARE_PUBLIC(QIBaseDriver) public: - QIBaseDriverPrivate() : QSqlDriverPrivate(), ibase(0), trans(0), tc(0) { dbmsType = Interbase; } + QIBaseDriverPrivate() : QSqlDriverPrivate(), ibase(0), trans(0), tc(0) { dbmsType = QSqlDriver::Interbase; } bool isError(const char *msg, QSqlError::ErrorType typ = QSqlError::UnknownError) { diff --git a/src/sql/drivers/mysql/qsql_mysql.cpp b/src/sql/drivers/mysql/qsql_mysql.cpp index b4dd6773e0..db54ce84da 100644 --- a/src/sql/drivers/mysql/qsql_mysql.cpp +++ b/src/sql/drivers/mysql/qsql_mysql.cpp @@ -78,7 +78,7 @@ public: #else tc(0), #endif - preparedQuerysEnabled(false) { dbmsType = MySqlServer; } + preparedQuerysEnabled(false) { dbmsType = QSqlDriver::MySqlServer; } MYSQL *mysql; QTextCodec *tc; diff --git a/src/sql/drivers/oci/qsql_oci.cpp b/src/sql/drivers/oci/qsql_oci.cpp index cf5ea7aa90..284fee8ccb 100644 --- a/src/sql/drivers/oci/qsql_oci.cpp +++ b/src/sql/drivers/oci/qsql_oci.cpp @@ -508,7 +508,7 @@ QOCIDriverPrivate::QOCIDriverPrivate() : QSqlDriverPrivate(), env(0), svc(0), srvhp(0), authp(0), err(0), transaction(false), serverVersion(-1), prefetchRows(-1), prefetchMem(QOCI_PREFETCH_MEM) { - dbmsType = Oracle; + dbmsType = QSqlDriver::Oracle; } void QOCIDriverPrivate::allocErrorHandle() 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, diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp index aa09191c71..e76dcc26a0 100644 --- a/src/sql/drivers/psql/qsql_psql.cpp +++ b/src/sql/drivers/psql/qsql_psql.cpp @@ -130,7 +130,7 @@ public: sn(0), pendingNotifyCheck(false), hasBackslashEscape(false) - { dbmsType = PostgreSQL; } + { dbmsType = QSqlDriver::PostgreSQL; } PGconn *connection; bool isUtf8; diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp index 33f504c49f..cbde2bfa9c 100644 --- a/src/sql/drivers/sqlite/qsql_sqlite.cpp +++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp @@ -131,7 +131,7 @@ private: class QSQLiteDriverPrivate : public QSqlDriverPrivate { public: - inline QSQLiteDriverPrivate() : QSqlDriverPrivate(), access(0) { dbmsType = SQLite; } + inline QSQLiteDriverPrivate() : QSqlDriverPrivate(), access(0) { dbmsType = QSqlDriver::SQLite; } sqlite3 *access; QList <QSQLiteResult *> results; }; diff --git a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp index 299810969a..760ece915f 100644 --- a/src/sql/drivers/sqlite2/qsql_sqlite2.cpp +++ b/src/sql/drivers/sqlite2/qsql_sqlite2.cpp @@ -86,7 +86,7 @@ public: QSQLite2DriverPrivate::QSQLite2DriverPrivate() : QSqlDriverPrivate(), access(0) { utf8 = (qstrcmp(sqlite_encoding, "UTF-8") == 0); - dbmsType = SQLite; + dbmsType = QSqlDriver::SQLite; } class QSQLite2ResultPrivate; diff --git a/src/sql/drivers/tds/qsql_tds.cpp b/src/sql/drivers/tds/qsql_tds.cpp index 933228f88e..5449930ae3 100644 --- a/src/sql/drivers/tds/qsql_tds.cpp +++ b/src/sql/drivers/tds/qsql_tds.cpp @@ -132,7 +132,7 @@ QSqlError qMakeError(const QString& err, QSqlError::ErrorType type, int errNo = class QTDSDriverPrivate : public QSqlDriverPrivate { public: - QTDSDriverPrivate() : QSqlDriverPrivate(), login(0), initialized(false) { dbmsType = Sybase; } + QTDSDriverPrivate() : QSqlDriverPrivate(), login(0), initialized(false) { dbmsType = QSqlDriver::Sybase; } LOGINREC* login; // login information QString hostName; QString db; |