diff options
-rw-r--r-- | src/sql/drivers/mysql/qsql_mysql.cpp | 34 |
1 files changed, 22 insertions, 12 deletions
diff --git a/src/sql/drivers/mysql/qsql_mysql.cpp b/src/sql/drivers/mysql/qsql_mysql.cpp index 5296f71..2d84b65 100644 --- a/src/sql/drivers/mysql/qsql_mysql.cpp +++ b/src/sql/drivers/mysql/qsql_mysql.cpp @@ -350,30 +350,40 @@ int QMYSQLResult::numRowsAffected() static void qServerEnd() { #ifndef Q_NO_MYSQL_EMBEDDED -# if MYSQL_VERSION_ID >= 40000 +#if !defined(MARIADB_BASE_VERSION) && !defined(MARIADB_VERSION_ID) +# if MYSQL_VERSION_ID > 40000 +# if (MYSQL_VERSION_ID >= 40110 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50003 + mysql_library_end(); +# else mysql_server_end(); -# endif // MYSQL_VERSION_ID -#endif // Q_NO_MYSQL_EMBEDDED +# endif +# endif +#endif +#endif } static void qServerInit() { #ifndef Q_NO_MYSQL_EMBEDDED # if MYSQL_VERSION_ID >= 40000 - if ( qMySqlInitHandledByUser || qMySqlConnectionCount > 1 ) + if (qMySqlInitHandledByUser || qMySqlConnectionCount > 1) return; - // this should only be called once - // has no effect on client/server library - // but is vital for the embedded lib - if ( mysql_server_init( 0, 0, 0 ) ) { -# ifdef QT_CHECK_RANGE - qWarning( "QMYSQLDriver::qServerInit: unable to start server." ); -# endif + if ( +# if (MYSQL_VERSION_ID >= 40110 && MYSQL_VERSION_ID < 50000) || MYSQL_VERSION_ID >= 50003 + mysql_library_init(0, 0, 0) +# else + mysql_server_init(0, 0, 0) +# endif + ) { + qWarning("QMYSQLDriver::qServerInit: unable to start server."); } - # endif // MYSQL_VERSION_ID #endif // Q_NO_MYSQL_EMBEDDED + +#if defined(MARIADB_BASE_VERSION) || defined(MARIADB_VERSION_ID) + qAddPostRoutine(mysql_server_end); +#endif } QMYSQLDriver::QMYSQLDriver( QObject * parent, const char * name ) |