QGIS API Documentation  3.2.0-Bonn (bc43194)
qgssqliteutils.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgssqliteutils.h
3  -------------------
4  begin : Nov, 2017
5  copyright : (C) 2017 by Nyall Dawson
6  email : nyall dot dawson at gmail dot com
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef QGSSQLITEUTILS_H
19 #define QGSSQLITEUTILS_H
20 
21 #define SIP_NO_FILE
22 
23 #include "qgis_core.h"
24 #include <memory>
25 #include <QString>
26 
27 struct sqlite3;
28 struct sqlite3_stmt;
29 
37 struct CORE_EXPORT QgsSqlite3Closer
38 {
39 
43  void operator()( sqlite3 *database );
44 };
45 
49 struct CORE_EXPORT QgsSqlite3StatementFinalizer
50 {
51 
55  void operator()( sqlite3_stmt *statement );
56 };
57 
66 class CORE_EXPORT sqlite3_statement_unique_ptr : public std::unique_ptr< sqlite3_stmt, QgsSqlite3StatementFinalizer>
67 {
68  public:
69 
73  int step();
74 
78  QString columnName( int column ) const;
79 
83  QString columnAsText( int column ) const;
84 
88  qlonglong columnAsInt64( int column ) const;
89 
93  double columnAsDouble( int column ) const;
94 
98  int columnCount() const;
99 };
100 
101 
110 class CORE_EXPORT sqlite3_database_unique_ptr : public std::unique_ptr< sqlite3, QgsSqlite3Closer>
111 {
112  public:
113 
119  int open( const QString &path );
120 
126  int open_v2( const QString &path, int flags, const char *zVfs );
127 
131  QString errorMessage() const;
132 
137  sqlite3_statement_unique_ptr prepare( const QString &sql, int &resultCode ) const;
138 };
139 
140 
146 QString CORE_EXPORT QgsSqlite3Mprintf( const char *format, ... );
147 
148 
149 #endif // QGSSQLITEUTILS_H
Closes a sqlite3 database.
Unique pointer for sqlite3 prepared statements, which automatically finalizes the statement when the ...
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
Definition: qgsgeos.h:79
QString CORE_EXPORT QgsSqlite3Mprintf(const char *format,...)
Wraps sqlite3_mprintf() by automatically freeing the memory.
struct sqlite3 sqlite3
Finalizes an sqlite3 statement.
Unique pointer for sqlite3 databases, which automatically closes the database when the pointer goes o...