Skip to content

Commit dfc08de

Browse files
Maksim Rylovmrylov
authored andcommittedDec 7, 2020
Throw QgsHanaException in QgsHanaConnection::getCrs
1 parent 452844b commit dfc08de

File tree

1 file changed

+26
-19
lines changed

1 file changed

+26
-19
lines changed
 

‎src/providers/hana/qgshanaconnection.cpp

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -258,36 +258,43 @@ const QString &QgsHanaConnection::getUserName()
258258
QgsCoordinateReferenceSystem QgsHanaConnection::getCrs( int srid )
259259
{
260260
QgsCoordinateReferenceSystem crs;
261-
262261
const char *sql = "SELECT ORGANIZATION, ORGANIZATION_COORDSYS_ID, DEFINITION, TRANSFORM_DEFINITION FROM SYS.ST_SPATIAL_REFERENCE_SYSTEMS WHERE SRS_ID = ?";
263-
PreparedStatementRef stmt = mConnection->prepareStatement( sql );
264-
stmt->setInt( 1, Int( srid ) );
265-
ResultSetRef rsSrs = stmt->executeQuery();
266262

267-
if ( rsSrs->next() )
263+
try
268264
{
269-
auto organization = rsSrs->getNString( 1 );
270-
if ( !organization.isNull() )
271-
{
272-
QString srid = QStringLiteral( "%1:%2" ).arg( QgsHanaUtils::toQString( organization ).toLower(), QString::number( *rsSrs->getInt( 2 ) ) );
273-
crs.createFromString( srid );
274-
}
265+
PreparedStatementRef stmt = mConnection->prepareStatement( sql );
266+
stmt->setInt( 1, Int( srid ) );
267+
ResultSetRef rsSrs = stmt->executeQuery();
275268

276-
if ( !crs.isValid() )
269+
if ( rsSrs->next() )
277270
{
278-
auto wkt = rsSrs->getNString( 3 );
279-
if ( !wkt.isNull() )
280-
crs = QgsCoordinateReferenceSystem::fromWkt( QgsHanaUtils::toQString( wkt ) );
271+
auto organization = rsSrs->getNString( 1 );
272+
if ( !organization.isNull() )
273+
{
274+
QString srid = QStringLiteral( "%1:%2" ).arg( QgsHanaUtils::toQString( organization ).toLower(), QString::number( *rsSrs->getInt( 2 ) ) );
275+
crs.createFromString( srid );
276+
}
281277

282278
if ( !crs.isValid() )
283279
{
284-
auto proj = rsSrs->getNString( 4 );
285-
if ( !proj.isNull() )
286-
crs = QgsCoordinateReferenceSystem::fromProj( QgsHanaUtils::toQString( proj ) );
280+
auto wkt = rsSrs->getNString( 3 );
281+
if ( !wkt.isNull() )
282+
crs = QgsCoordinateReferenceSystem::fromWkt( QgsHanaUtils::toQString( wkt ) );
283+
284+
if ( !crs.isValid() )
285+
{
286+
auto proj = rsSrs->getNString( 4 );
287+
if ( !proj.isNull() )
288+
crs = QgsCoordinateReferenceSystem::fromProj( QgsHanaUtils::toQString( proj ) );
289+
}
287290
}
288291
}
292+
rsSrs->close();
293+
}
294+
catch ( const Exception &ex )
295+
{
296+
throw QgsHanaException( ex.what() );
289297
}
290-
rsSrs->close();
291298

292299
return crs;
293300
}

0 commit comments

Comments
 (0)
Please sign in to comment.