Skip to content
Permalink
Browse files

oracle provider: verify existence of layer style table before trying …

…to retrieve a style
  • Loading branch information
jef-n committed Jun 11, 2016
1 parent 1af74f7 commit 61eea8674aa2c09eb867f8218dca02cf83292099
Showing with 22 additions and 22 deletions.
  1. +3 −9 src/providers/oracle/ocispatial/qsql_ocispatial.cpp
  2. +19 −13 src/providers/oracle/qgsoracleprovider.cpp
@@ -3163,9 +3163,7 @@ bool QOCISpatialResult::exec()
qOraWarning( "Unable to get statement type:", d->err );
setLastError( qMakeError( QCoreApplication::translate( "QOCISpatialResult",
"Unable to get statement type" ), QSqlError::StatementError, d->err ) );
#ifdef QOCISPATIAL_DEBUG
qDebug() << "lastQuery()" << lastQuery();
#endif
qWarning( "type retrieval failed with statement:%s", lastQuery().toLocal8Bit().constData() );
return false;
}

@@ -3189,9 +3187,7 @@ bool QOCISpatialResult::exec()
qOraWarning( "unable to bind value: ", d->err );
setLastError( qMakeError( QCoreApplication::translate( "QOCISpatialResult", "Unable to bind value" ),
QSqlError::StatementError, d->err ) );
#ifdef QOCISPATIAL_DEBUG
qDebug() << "lastQuery()" << lastQuery();
#endif
qWarning( "bind failed with statement:%s", lastQuery().toLocal8Bit().constData() );
return false;
}

@@ -3202,9 +3198,7 @@ bool QOCISpatialResult::exec()
qOraWarning( "unable to execute statement:", d->err );
setLastError( qMakeError( QCoreApplication::translate( "QOCISpatialResult",
"Unable to execute statement" ), QSqlError::StatementError, d->err ) );
#ifdef QOCISPATIAL_DEBUG
qDebug() << "lastQuery()" << lastQuery();
#endif
qWarning( "execution failed with statement:%s", lastQuery().toLocal8Bit().constData() );
return false;
}

@@ -3402,19 +3402,25 @@ QGISEXTERN QString loadStyle( const QString &uri, QString &errCause )
QSqlQuery qry( *conn );

QString style;
if ( !qry.exec( QString( "SELECT styleQML FROM ("
"SELECT styleQML"
" FROM layer_styles"
" WHERE f_table_catalog=%1"
" AND f_table_schema=%2"
" AND f_table_name=%3"
" AND f_geometry_column=%4"
" ORDER BY useAsDefault DESC"
") WHERE rownum=1" )
.arg( QgsOracleConn::quotedValue( dsUri.database() ) )
.arg( QgsOracleConn::quotedValue( dsUri.schema() ) )
.arg( QgsOracleConn::quotedValue( dsUri.table() ) )
.arg( QgsOracleConn::quotedValue( dsUri.geometryColumn() ) ) ) )
if ( !qry.exec( "SELECT COUNT(*) FROM user_tables WHERE table_name='LAYER_STYLES'" ) || !qry.next() || qry.value( 0 ).toInt() == 0 )
{
errCause = QObject::tr( "Unable layer style table not found [%1]" ).arg( qry.lastError().text() );
conn->disconnect();
return QString::null;
}
else if ( !qry.exec( QString( "SELECT styleQML FROM ("
"SELECT styleQML"
" FROM layer_styles"
" WHERE f_table_catalog=%1"
" AND f_table_schema=%2"
" AND f_table_name=%3"
" AND f_geometry_column=%4"
" ORDER BY useAsDefault DESC"
") WHERE rownum=1" )
.arg( QgsOracleConn::quotedValue( dsUri.database() ) )
.arg( QgsOracleConn::quotedValue( dsUri.schema() ) )
.arg( QgsOracleConn::quotedValue( dsUri.table() ) )
.arg( QgsOracleConn::quotedValue( dsUri.geometryColumn() ) ) ) )
{
errCause = QObject::tr( "Could not retrieve style [%1]" ).arg( qry.lastError().text() );
}

0 comments on commit 61eea86

Please sign in to comment.
You can’t perform that action at this time.