1313 * *
1414 ***************************************************************************/
1515
16- #include " sqlite3.h"
16+ #include < sqlite3.h>
1717
18+ #include " qgssqliteutils.h"
1819#include " qgsgeopackagedataitems.h"
1920#include " qgsogrdbconnection.h"
2021#include " qgslogger.h"
@@ -358,11 +359,11 @@ bool QgsGeoPackageCollectionItem::deleteGeoPackageRasterLayer( const QString &ur
358359 {
359360 QString baseUri = pieces.at ( 1 );
360361 QString layerName = pieces.at ( 2 );
361- sqlite3 *handle = nullptr ;
362- int status = sqlite3_open_v2 ( baseUri. toUtf8 (). constData (), &handle , SQLITE_OPEN_READWRITE, nullptr );
362+ sqlite3_database_unique_ptr database ;
363+ int status = database. open_v2 ( baseUri , SQLITE_OPEN_READWRITE, nullptr );
363364 if ( status != SQLITE_OK )
364365 {
365- errCause = sqlite3_errmsg ( handle );
366+ errCause = sqlite3_errmsg ( database. get () );
366367 }
367368 else
368369 {
@@ -378,7 +379,7 @@ bool QgsGeoPackageCollectionItem::deleteGeoPackageRasterLayer( const QString &ur
378379 layerName.toUtf8 ().constData (),
379380 layerName.toUtf8 ().constData () );
380381 status = sqlite3_exec (
381- handle , /* An open database */
382+ database. get () , /* An open database */
382383 sql, /* SQL to be evaluated */
383384 nullptr , /* Callback function */
384385 nullptr , /* 1st argument to callback */
@@ -395,7 +396,7 @@ bool QgsGeoPackageCollectionItem::deleteGeoPackageRasterLayer( const QString &ur
395396 tableName.toUtf8 ().constData (),
396397 layerName.toUtf8 ().constData () );
397398 ( void )sqlite3_exec (
398- handle , /* An open database */
399+ database. get () , /* An open database */
399400 sql, /* SQL to be evaluated */
400401 nullptr , /* Callback function */
401402 nullptr , /* 1st argument to callback */
@@ -408,7 +409,7 @@ bool QgsGeoPackageCollectionItem::deleteGeoPackageRasterLayer( const QString &ur
408409 char *sql = sqlite3_mprintf ( " DELETE FROM gpkg_2d_gridded_coverage_ancillary WHERE tile_matrix_set_name = '%q'" ,
409410 layerName.toUtf8 ().constData () );
410411 ( void )sqlite3_exec (
411- handle , /* An open database */
412+ database. get () , /* An open database */
412413 sql, /* SQL to be evaluated */
413414 nullptr , /* Callback function */
414415 nullptr , /* 1st argument to callback */
@@ -420,7 +421,7 @@ bool QgsGeoPackageCollectionItem::deleteGeoPackageRasterLayer( const QString &ur
420421 char *sql = sqlite3_mprintf ( " DELETE FROM gpkg_2d_gridded_tile_ancillary WHERE tpudt_name = '%q'" ,
421422 layerName.toUtf8 ().constData () );
422423 ( void )sqlite3_exec (
423- handle , /* An open database */
424+ database. get () , /* An open database */
424425 sql, /* SQL to be evaluated */
425426 nullptr , /* Callback function */
426427 nullptr , /* 1st argument to callback */
@@ -431,7 +432,7 @@ bool QgsGeoPackageCollectionItem::deleteGeoPackageRasterLayer( const QString &ur
431432 // Vacuum
432433 {
433434 ( void )sqlite3_exec (
434- handle , /* An open database */
435+ database. get () , /* An open database */
435436 " VACUUM" , /* SQL to be evaluated */
436437 nullptr , /* Callback function */
437438 nullptr , /* 1st argument to callback */
@@ -449,7 +450,6 @@ bool QgsGeoPackageCollectionItem::deleteGeoPackageRasterLayer( const QString &ur
449450 }
450451 sqlite3_free ( errmsg );
451452 }
452- sqlite3_close ( handle );
453453 }
454454 }
455455 else
0 commit comments