summaryrefslogtreecommitdiffstats
path: root/src/sql/drivers/psql/qsql_psql.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/sql/drivers/psql/qsql_psql.cpp')
-rw-r--r--src/sql/drivers/psql/qsql_psql.cpp23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/sql/drivers/psql/qsql_psql.cpp b/src/sql/drivers/psql/qsql_psql.cpp
index 7fe1a91..9d028c0 100644
--- a/src/sql/drivers/psql/qsql_psql.cpp
+++ b/src/sql/drivers/psql/qsql_psql.cpp
@@ -679,6 +679,29 @@ void QPSQLDriver::close()
}
}
+bool QPSQLDriver::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", QSqlError::Statement, d ) );
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
QSqlQuery QPSQLDriver::createQuery() const
{
return QSqlQuery( new QPSQLResult( this, d ) );