summaryrefslogtreecommitdiffstats
path: root/src/sql/drivers/mysql/qsql_mysql.cpp
diff options
context:
space:
mode:
authorRhys Weatherley <rhys.weatherley@nokia.com>2009-09-22 02:36:02 (GMT)
committerRhys Weatherley <rhys.weatherley@nokia.com>2009-09-22 02:36:02 (GMT)
commit07a7b69cd5662674ec6ac0c7ba0f874baf854b4c (patch)
treed6d100d6b6db37902b4b91c1d109211ae2ef8144 /src/sql/drivers/mysql/qsql_mysql.cpp
parent8416ae1af3f13ad865b25a87e3e94e298b3a0ca2 (diff)
parent21a71222c30214635cb369bedad43bc1e72f05be (diff)
downloadQt-07a7b69cd5662674ec6ac0c7ba0f874baf854b4c.zip
Qt-07a7b69cd5662674ec6ac0c7ba0f874baf854b4c.tar.gz
Qt-07a7b69cd5662674ec6ac0c7ba0f874baf854b4c.tar.bz2
Merge branch '4.6' of git@scm.dev.nokia.troll.no:qt/qt into 4.6
Diffstat (limited to 'src/sql/drivers/mysql/qsql_mysql.cpp')
-rw-r--r--src/sql/drivers/mysql/qsql_mysql.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/sql/drivers/mysql/qsql_mysql.cpp b/src/sql/drivers/mysql/qsql_mysql.cpp
index 10422ff..f368d1d 100644
--- a/src/sql/drivers/mysql/qsql_mysql.cpp
+++ b/src/sql/drivers/mysql/qsql_mysql.cpp
@@ -1213,6 +1213,9 @@ bool QMYSQLDriver::open(const QString& db,
unsigned int optionFlags = Q_CLIENT_MULTI_STATEMENTS;
const QStringList opts(connOpts.split(QLatin1Char(';'), QString::SkipEmptyParts));
QString unixSocket;
+#if MYSQL_VERSION_ID >= 50000
+ my_bool reconnect=false;
+#endif
// extract the real options from the string
for (int i = 0; i < opts.count(); ++i) {
@@ -1223,6 +1226,12 @@ bool QMYSQLDriver::open(const QString& db,
QString opt = tmp.left(idx).simplified();
if (opt == QLatin1String("UNIX_SOCKET"))
unixSocket = val;
+#if MYSQL_VERSION_ID >= 50000
+ else if (opt == QLatin1String("MYSQL_OPT_RECONNECT")) {
+ if (val == QLatin1String("TRUE") || val == QLatin1String("1") || val.isEmpty())
+ reconnect = true;
+ }
+#endif
else if (val == QLatin1String("TRUE") || val == QLatin1String("1"))
setOptionFlag(optionFlags, tmp.left(idx).simplified());
else
@@ -1255,6 +1264,10 @@ bool QMYSQLDriver::open(const QString& db,
setOpenError(true);
return false;
}
+#if MYSQL_VERSION_ID >= 50000
+ if(reconnect)
+ mysql_options(d->mysql, MYSQL_OPT_RECONNECT, &reconnect);
+#endif
} else {
setLastError(qMakeError(tr("Unable to connect"),
QSqlError::ConnectionError, d));