From 7b43eed24a592feae9b6ba8fa338fb9737bf089f Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Wed, 3 Sep 2014 18:37:06 -0500 Subject: Add ability to set reconnect flag on MySQL connections Add database server ping method to SQL classes --- src/sql/drivers/mysql/qsql_mysql.cpp | 17 +++++++++++++++++ src/sql/drivers/mysql/qsql_mysql.h | 1 + 2 files changed, 18 insertions(+) (limited to 'src/sql/drivers/mysql') diff --git a/src/sql/drivers/mysql/qsql_mysql.cpp b/src/sql/drivers/mysql/qsql_mysql.cpp index 7cfe0a7..f1d48d4 100644 --- a/src/sql/drivers/mysql/qsql_mysql.cpp +++ b/src/sql/drivers/mysql/qsql_mysql.cpp @@ -504,6 +504,8 @@ bool QMYSQLDriver::open( const QString& db, optionFlags |= CLIENT_ODBC; else if ( opt == "CLIENT_SSL" ) optionFlags |= CLIENT_SSL; + else if ( opt == "MYSQL_OPT_RECONNECT" ) + optionFlags |= MYSQL_OPT_RECONNECT; else qWarning( "QMYSQLDriver::open: Unknown connect option '%s'", (*it).latin1() ); } @@ -544,6 +546,21 @@ void QMYSQLDriver::close() } } +bool QMYSQLDriver::ping() +{ + if ( !isOpen() ) { + return FALSE; + } + + if (mysql_ping( d->mysql )) { + return TRUE; + } + else { + setLastError( qMakeError("Unable to execute ping", QSqlError::Statement, d ) ); + return FALSE; + } +} + QSqlQuery QMYSQLDriver::createQuery() const { return QSqlQuery( new QMYSQLResult( this ) ); diff --git a/src/sql/drivers/mysql/qsql_mysql.h b/src/sql/drivers/mysql/qsql_mysql.h index ff8ace6..e5633dc 100644 --- a/src/sql/drivers/mysql/qsql_mysql.h +++ b/src/sql/drivers/mysql/qsql_mysql.h @@ -100,6 +100,7 @@ public: const QString & host = QString::null, int port = -1 ); void close(); + bool ping(); QSqlQuery createQuery() const; QStringList tables( const QString& user ) const; QSqlIndex primaryIndex( const QString& tablename ) const; -- cgit v1.2.3