summaryrefslogtreecommitdiffstats
path: root/src/sql/kernel
diff options
context:
space:
mode:
Diffstat (limited to 'src/sql/kernel')
-rw-r--r--src/sql/kernel/qsqldriver.cpp26
-rw-r--r--src/sql/kernel/qsqldriver.h14
-rw-r--r--src/sql/kernel/qsqldriver_p.h6
-rw-r--r--src/sql/kernel/qsqlresult.cpp4
4 files changed, 44 insertions, 6 deletions
diff --git a/src/sql/kernel/qsqldriver.cpp b/src/sql/kernel/qsqldriver.cpp
index fdeb10e915..736fe310e3 100644
--- a/src/sql/kernel/qsqldriver.cpp
+++ b/src/sql/kernel/qsqldriver.cpp
@@ -237,6 +237,22 @@ bool QSqlDriver::isOpenError() const
*/
/*!
+ \enum QSqlDriver::DBMSType
+
+ This enum contains DBMS types.
+
+ \value UnknownDBMS
+ \value MSSqlServer
+ \value MySqlServer
+ \value PostgreSQL
+ \value Oracle
+ \value Sybase
+ \value SQLite
+ \value Interbase
+ \value DB2
+*/
+
+/*!
\fn bool QSqlDriver::hasFeature(DriverFeature feature) const
Returns \c true if the driver supports feature \a feature; otherwise
@@ -767,6 +783,16 @@ QSql::NumericalPrecisionPolicy QSqlDriver::numericalPrecisionPolicy() const
}
/*!
+ \since 5.4
+
+ Returns the current DBMS type for the database connection.
+*/
+QSqlDriver::DBMSType QSqlDriver::dbmsType() const
+{
+ return d_func()->dbmsType;
+}
+
+/*!
\since 5.0
\internal
diff --git a/src/sql/kernel/qsqldriver.h b/src/sql/kernel/qsqldriver.h
index 659279a3b3..767c1ac74d 100644
--- a/src/sql/kernel/qsqldriver.h
+++ b/src/sql/kernel/qsqldriver.h
@@ -71,6 +71,18 @@ public:
enum NotificationSource { UnknownSource, SelfSource, OtherSource };
+ enum DBMSType {
+ UnknownDBMS,
+ MSSqlServer,
+ MySqlServer,
+ PostgreSQL,
+ Oracle,
+ Sybase,
+ SQLite,
+ Interbase,
+ DB2
+ };
+
explicit QSqlDriver(QObject *parent=0);
~QSqlDriver();
virtual bool isOpen() const;
@@ -111,6 +123,8 @@ public:
void setNumericalPrecisionPolicy(QSql::NumericalPrecisionPolicy precisionPolicy);
QSql::NumericalPrecisionPolicy numericalPrecisionPolicy() const;
+ DBMSType dbmsType() const;
+
public Q_SLOTS:
virtual bool cancelQuery();
diff --git a/src/sql/kernel/qsqldriver_p.h b/src/sql/kernel/qsqldriver_p.h
index bb44a831a3..427e3984fa 100644
--- a/src/sql/kernel/qsqldriver_p.h
+++ b/src/sql/kernel/qsqldriver_p.h
@@ -56,21 +56,19 @@ class QSqlDriverPrivate : public QObjectPrivate
Q_DECLARE_PUBLIC(QSqlDriver)
public:
- enum DBMSType {UnknownDB, MSSqlServer, MySqlServer, PostgreSQL, Oracle, Sybase, SQLite, Interbase, DB2};
-
QSqlDriverPrivate()
: QObjectPrivate(),
isOpen(false),
isOpenError(false),
precisionPolicy(QSql::LowPrecisionDouble),
- dbmsType(UnknownDB)
+ dbmsType(QSqlDriver::UnknownDBMS)
{ }
uint isOpen;
uint isOpenError;
QSqlError error;
QSql::NumericalPrecisionPolicy precisionPolicy;
- DBMSType dbmsType;
+ QSqlDriver::DBMSType dbmsType;
};
QT_END_NAMESPACE
diff --git a/src/sql/kernel/qsqlresult.cpp b/src/sql/kernel/qsqlresult.cpp
index 074e630394..4cd4e6fec4 100644
--- a/src/sql/kernel/qsqlresult.cpp
+++ b/src/sql/kernel/qsqlresult.cpp
@@ -87,7 +87,7 @@ QString QSqlResultPrivate::positionalToNamedBinding(const QString &query) const
result.reserve(n * 5 / 4);
QChar closingQuote;
int count = 0;
- bool ignoreBraces = (sqldriver->d_func()->dbmsType == QSqlDriverPrivate::PostgreSQL);
+ bool ignoreBraces = (sqldriver->d_func()->dbmsType == QSqlDriver::PostgreSQL);
for (int i = 0; i < n; ++i) {
QChar ch = query.at(i);
@@ -128,7 +128,7 @@ QString QSqlResultPrivate::namedToPositionalBinding(const QString &query)
QChar closingQuote;
int count = 0;
int i = 0;
- bool ignoreBraces = (sqldriver->d_func()->dbmsType == QSqlDriverPrivate::PostgreSQL);
+ bool ignoreBraces = (sqldriver->d_func()->dbmsType == QSqlDriver::PostgreSQL);
while (i < n) {
QChar ch = query.at(i);