From 9a584ede2e44e9bb75bbb06504999bb8986ff471 Mon Sep 17 00:00:00 2001 From: jef Date: Thu, 27 Mar 2008 09:13:21 +0000 Subject: [PATCH] put out a warning message when no accessible postgis tables were found git-svn-id: http://svn.osgeo.org/qgis/trunk@8286 c8812cc2-4d05-0410-92ff-de0c093fc19c --- src/app/qgsdbsourceselect.cpp | 39 +++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 15 deletions(-) diff --git a/src/app/qgsdbsourceselect.cpp b/src/app/qgsdbsourceselect.cpp index 21b664733a2..e726adac161 100644 --- a/src/app/qgsdbsourceselect.cpp +++ b/src/app/qgsdbsourceselect.cpp @@ -536,30 +536,39 @@ bool QgsDbSourceSelect::getTableInfo(PGconn *pg, bool searchGeometryColumnsOnly, PGresult *result = PQexec(pg, sql.toUtf8()); if (result) { - for (int idx = 0; idx < PQntuples(result); idx++) + if( PQntuples(result)==0 ) { - QString tableName = QString::fromUtf8(PQgetvalue(result, idx, PQfnumber(result, QString("f_table_name").toUtf8()))); - QString schemaName = QString::fromUtf8(PQgetvalue(result, idx, PQfnumber(result, QString("f_table_schema").toUtf8()))); - - QString column = QString::fromUtf8(PQgetvalue(result, idx, PQfnumber(result, QString("f_geometry_column").toUtf8()))); - QString type = QString::fromUtf8(PQgetvalue(result, idx, PQfnumber(result, QString("type").toUtf8()))); - - QString as = ""; - if(type=="GEOMETRY" && !searchGeometryColumnsOnly) + QMessageBox::warning(this, tr("No accessible tables found"), + tr + ("Database connection was successful, but no accessible tables were found.\n\n" + "Please verify that you have SELECT privilege on a PostGIS' geometry_columns\n" + "table and at least one table carrying PostGIS geometry.")); + } + else + { + for (int idx = 0; idx < PQntuples(result); idx++) { - addSearchGeometryColumn(schemaName, tableName, column); - as=type="WAITING"; - } + QString tableName = QString::fromUtf8(PQgetvalue(result, idx, PQfnumber(result, QString("f_table_name").toUtf8()))); + QString schemaName = QString::fromUtf8(PQgetvalue(result, idx, PQfnumber(result, QString("f_table_schema").toUtf8()))); - mTableModel.addTableEntry(type, schemaName, tableName, column, ""); + QString column = QString::fromUtf8(PQgetvalue(result, idx, PQfnumber(result, QString("f_geometry_column").toUtf8()))); + QString type = QString::fromUtf8(PQgetvalue(result, idx, PQfnumber(result, QString("type").toUtf8()))); + + QString as = ""; + if(type=="GEOMETRY" && !searchGeometryColumnsOnly) + { + addSearchGeometryColumn(schemaName, tableName, column); + as=type="WAITING"; + } + + mTableModel.addTableEntry(type, schemaName, tableName, column, ""); + } } ok = true; } PQclear(result); //search for geometry columns in tables that are not in the geometry_columns metatable - - QApplication::restoreOverrideCursor(); if (searchGeometryColumnsOnly) {