@@ -258,36 +258,43 @@ const QString &QgsHanaConnection::getUserName()
258
258
QgsCoordinateReferenceSystem QgsHanaConnection::getCrs ( int srid )
259
259
{
260
260
QgsCoordinateReferenceSystem crs;
261
-
262
261
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 ();
266
262
267
- if ( rsSrs-> next () )
263
+ try
268
264
{
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 ();
275
268
276
- if ( !crs. isValid () )
269
+ if ( rsSrs-> next () )
277
270
{
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
+ }
281
277
282
278
if ( !crs.isValid () )
283
279
{
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
+ }
287
290
}
288
291
}
292
+ rsSrs->close ();
293
+ }
294
+ catch ( const Exception &ex )
295
+ {
296
+ throw QgsHanaException ( ex.what () );
289
297
}
290
- rsSrs->close ();
291
298
292
299
return crs;
293
300
}
0 commit comments