d8352f9d | 2014-09-03 18:37:52 | Timothy Pearson |
Automated update from Qt3 |
||
M src/sql/drivers/ibase/qsql_ibase.cpp M src/sql/drivers/ibase/qsql_ibase.h M src/sql/drivers/mysql/qsql_mysql.cpp M src/sql/drivers/mysql/qsql_mysql.h M src/sql/drivers/odbc/qsql_odbc.cpp M src/sql/drivers/odbc/qsql_odbc.h M src/sql/drivers/psql/qsql_psql.cpp M src/sql/drivers/psql/qsql_psql.h M src/sql/drivers/sqlite/qsql_sqlite.cpp M src/sql/drivers/sqlite/qsql_sqlite.h M src/sql/drivers/sqlite3/qsql_sqlite3.cpp M src/sql/drivers/sqlite3/qsql_sqlite3.h M src/sql/ntqsqldatabase.h M src/sql/ntqsqldriver.h M src/sql/qsqldatabase.cpp |
||
diff --git a/src/sql/drivers/ibase/qsql_ibase.cpp b/src/sql/drivers/ibase/qsql_ibase.cpp index 6a1d0ab..ee2976d 100644 --- a/src/sql/drivers/ibase/qsql_ibase.cpp +++ b/src/sql/drivers/ibase/qsql_ibase.cpp @@ -848,6 +848,17 @@ } } +bool TQIBaseDriver::ping() +{ + if ( !isOpen() ) { + return FALSE; + } + + // FIXME + // Implement ping if available + return TRUE; +} + TQSqlQuery TQIBaseDriver::createQuery() const { return TQSqlQuery(new TQIBaseResult(this)); diff --git a/src/sql/drivers/ibase/qsql_ibase.h b/src/sql/drivers/ibase/qsql_ibase.h index 45cb4b8..023a6b0 100644 --- a/src/sql/drivers/ibase/qsql_ibase.h +++ b/src/sql/drivers/ibase/qsql_ibase.h @@ -94,6 +94,7 @@ const TQString & host, int port ) { return open (db, user, password, host, port, TQString()); } void close(); + bool ping(); TQSqlQuery createQuery() const; bool beginTransaction(); bool commitTransaction(); diff --git a/src/sql/drivers/mysql/qsql_mysql.cpp b/src/sql/drivers/mysql/qsql_mysql.cpp index aca8354..aad8462 100644 --- a/src/sql/drivers/mysql/qsql_mysql.cpp +++ b/src/sql/drivers/mysql/qsql_mysql.cpp @@ -504,6 +504,8 @@ optionFlags |= CLIENT_ODBC; else if ( opt == "CLIENT_SSL" ) optionFlags |= CLIENT_SSL; + else if ( opt == "MYSQL_OPT_RECONNECT" ) + optionFlags |= MYSQL_OPT_RECONNECT; else tqWarning( "TQMYSQLDriver::open: Unknown connect option '%s'", (*it).latin1() ); } @@ -544,6 +546,21 @@ } } +bool TQMYSQLDriver::ping() +{ + if ( !isOpen() ) { + return FALSE; + } + + if (mysql_ping( d->mysql )) { + return TRUE; + } + else { + setLastError( qMakeError("Unable to execute ping", TQSqlError::Statement, d ) ); + return FALSE; + } +} + TQSqlQuery TQMYSQLDriver::createQuery() const { return TQSqlQuery( new TQMYSQLResult( this ) ); diff --git a/src/sql/drivers/mysql/qsql_mysql.h b/src/sql/drivers/mysql/qsql_mysql.h index 6b1daef..e464625 100644 --- a/src/sql/drivers/mysql/qsql_mysql.h +++ b/src/sql/drivers/mysql/qsql_mysql.h @@ -100,6 +100,7 @@ const TQString & host = TQString::null, int port = -1 ); void close(); + bool ping(); TQSqlQuery createQuery() const; TQStringList tables( const TQString& user ) const; TQSqlIndex primaryIndex( const TQString& tablename ) const; diff --git a/src/sql/drivers/odbc/qsql_odbc.cpp b/src/sql/drivers/odbc/qsql_odbc.cpp index 40739b3..3bedbb8 100644 --- a/src/sql/drivers/odbc/qsql_odbc.cpp +++ b/src/sql/drivers/odbc/qsql_odbc.cpp @@ -1490,6 +1490,13 @@ setOpenError( FALSE ); } +bool TQODBCDriver::ping() +{ + // FIXME + // Implement ping if supported + return TRUE; +} + void TQODBCDriver::cleanup() { SQLRETURN r; diff --git a/src/sql/drivers/odbc/qsql_odbc.h b/src/sql/drivers/odbc/qsql_odbc.h index 0ce0170..619212d 100644 --- a/src/sql/drivers/odbc/qsql_odbc.h +++ b/src/sql/drivers/odbc/qsql_odbc.h @@ -128,6 +128,7 @@ const TQString & host = TQString::null, int port = -1 ); void close(); + bool ping(); TQSqlQuery createQuery() const; TQStringList tables( const TQString& user ) const; TQSqlRecord record( const TQString& tablename ) const; diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp index 033c69f..8e2c02a 100644 --- a/src/sql/drivers/psql/qsql_psql.cpp +++ b/src/sql/drivers/psql/qsql_psql.cpp @@ -679,6 +679,29 @@ } } +bool TQPSQLDriver::ping() +{ + if ( !isOpen() ) { + return FALSE; + } + + PGresult *res = NULL; + + // Send ping + res = PQexec( d->connection, "" ); + PQclear(res); + + // Check connection status + if ( PQstatus( d->connection ) != CONNECTION_OK ) { + PQreset( d->connection ); + if ( PQstatus( d->connection ) != CONNECTION_OK ) { + setLastError( qMakeError("Unable to execute ping", TQSqlError::Statement, d ) ); + return FALSE; + } + } + return TRUE; +} + TQSqlQuery TQPSQLDriver::createQuery() const { return TQSqlQuery( new TQPSQLResult( this, d ) ); diff --git a/src/sql/drivers/psql/qsql_psql.h b/src/sql/drivers/psql/qsql_psql.h index dd1ddc7..6f9c4f5 100644 --- a/src/sql/drivers/psql/qsql_psql.h +++ b/src/sql/drivers/psql/qsql_psql.h @@ -98,6 +98,7 @@ const TQString & host = TQString::null, int port = -1 ); void close(); + bool ping(); TQSqlQuery createQuery() const; TQStringList tables( const TQString& user ) const; TQSqlIndex primaryIndex( const TQString& tablename ) const; diff --git a/src/sql/drivers/sqlite/qsql_sqlite.cpp b/src/sql/drivers/sqlite/qsql_sqlite.cpp index ece3b9e..92a66c7 100644 --- a/src/sql/drivers/sqlite/qsql_sqlite.cpp +++ b/src/sql/drivers/sqlite/qsql_sqlite.cpp @@ -352,6 +352,17 @@ } } +bool TQSQLiteDriver::ping() +{ + if ( !isOpen() ) { + return FALSE; + } + + // FIXME + // Implement ping if available + return TRUE; +} + TQSqlQuery TQSQLiteDriver::createQuery() const { return TQSqlQuery(new TQSQLiteResult(this)); diff --git a/src/sql/drivers/sqlite/qsql_sqlite.h b/src/sql/drivers/sqlite/qsql_sqlite.h index ff05ede..b90662c 100644 --- a/src/sql/drivers/sqlite/qsql_sqlite.h +++ b/src/sql/drivers/sqlite/qsql_sqlite.h @@ -72,6 +72,7 @@ const TQString & host, int port ) { return open (db, user, password, host, port, TQString()); } void close(); + bool ping(); TQSqlQuery createQuery() const; bool beginTransaction(); bool commitTransaction(); diff --git a/src/sql/drivers/sqlite3/qsql_sqlite3.cpp b/src/sql/drivers/sqlite3/qsql_sqlite3.cpp index a756c7d..4d79cb4 100644 --- a/src/sql/drivers/sqlite3/qsql_sqlite3.cpp +++ b/src/sql/drivers/sqlite3/qsql_sqlite3.cpp @@ -336,6 +336,17 @@ } } +bool TQSQLite3Driver::ping() +{ + if ( !isOpen() ) { + return FALSE; + } + + // FIXME + // Implement ping if available + return TRUE; +} + TQSqlQuery TQSQLite3Driver::createQuery() const { return TQSqlQuery(new TQSQLite3Result(this)); diff --git a/src/sql/drivers/sqlite3/qsql_sqlite3.h b/src/sql/drivers/sqlite3/qsql_sqlite3.h index 4d79176..facd85a 100644 --- a/src/sql/drivers/sqlite3/qsql_sqlite3.h +++ b/src/sql/drivers/sqlite3/qsql_sqlite3.h @@ -72,6 +72,7 @@ const TQString & host, int port ) { return open (db, user, password, host, port, TQString()); } void close(); + bool ping(); TQSqlQuery createQuery() const; bool beginTransaction(); bool commitTransaction(); diff --git a/src/sql/ntqsqldatabase.h b/src/sql/ntqsqldatabase.h index 2423fd2..b44735e 100644 --- a/src/sql/ntqsqldatabase.h +++ b/src/sql/ntqsqldatabase.h @@ -95,6 +95,7 @@ bool open(); bool open( const TQString& user, const TQString& password ); void close(); + bool ping(); bool isOpen() const; bool isOpenError() const; TQStringList tables() const; diff --git a/src/sql/ntqsqldriver.h b/src/sql/ntqsqldriver.h index 5da9030..09c74b2 100644 --- a/src/sql/ntqsqldriver.h +++ b/src/sql/ntqsqldriver.h @@ -98,6 +98,7 @@ const TQString & host = TQString::null, int port = -1 ) = 0; virtual void close() = 0; + virtual bool ping() = 0; virtual TQSqlQuery createQuery() const = 0; // ### remove for 4.0 diff --git a/src/sql/qsqldatabase.cpp b/src/sql/qsqldatabase.cpp ** Diff limit reached (max: 250 lines) ** |