QGIS API Documentation
3.26.3-Buenos Aires (65e4edfdad)
|
The QgsAbstractDatabaseProviderConnection class provides common functionality for DB based connections. More...
#include <qgsabstractdatabaseproviderconnection.h>
Classes | |
struct | QueryResult |
The QueryResult class represents the result of a query executed by execSql() More... | |
struct | SpatialIndexOptions |
The SpatialIndexOptions contains extra options relating to spatial index creation. More... | |
struct | SqlVectorLayerOptions |
The SqlVectorLayerOptions stores all information required to create a SQL (query) layer. More... | |
struct | TableProperty |
The TableProperty class represents a database table or view. More... | |
Public Types | |
enum | Capability { CreateVectorTable = 1 << 1, DropRasterTable = 1 << 2, DropVectorTable = 1 << 3, RenameVectorTable = 1 << 4, RenameRasterTable = 1 << 5, CreateSchema = 1 << 6, DropSchema = 1 << 7, RenameSchema = 1 << 8, ExecuteSql = 1 << 9, Vacuum = 1 << 10, Tables = 1 << 11, Schemas = 1 << 12, SqlLayers = 1 << 13, TableExists = 1 << 14, Spatial = 1 << 15, CreateSpatialIndex = 1 << 16, SpatialIndexExists = 1 << 17, DeleteSpatialIndex = 1 << 18, DeleteField = 1 << 19, DeleteFieldCascade = 1 << 20, AddField = 1 << 21, ListFieldDomains = 1 << 22, RetrieveFieldDomain = 1 << 23, SetFieldDomain = 1 << 24, AddFieldDomain = 1 << 25 } |
The Capability enum represents the operations supported by the connection. More... | |
enum | GeometryColumnCapability { Z = 1 << 1, M = 1 << 2, SinglePart = 1 << 3, Curves = 1 << 4 } |
The GeometryColumnCapability enum represents the geomery column features supported by the connection. More... | |
enum | TableFlag { Aspatial = 1 << 1, Vector = 1 << 2, Raster = 1 << 3, View = 1 << 4, MaterializedView = 1 << 5, Foreign = 1 << 6 } |
Flags for table properties. More... | |
Public Member Functions | |
QgsAbstractDatabaseProviderConnection (const QString &name) | |
Creates a new connection with name by reading its configuration from the settings. More... | |
QgsAbstractDatabaseProviderConnection (const QString &uri, const QVariantMap &configuration) | |
Creates a new connection from the given uri and configuration. More... | |
virtual void | addField (const QgsField &field, const QString &schema, const QString &tableName) const SIP_THROW(QgsProviderConnectionException) |
Adds a field. More... | |
virtual void | addFieldDomain (const QgsFieldDomain &domain, const QString &schema) const SIP_THROW(QgsProviderConnectionException) |
Adds a new field domain to the database. More... | |
Capabilities | capabilities () const |
Returns connection capabilities. More... | |
virtual void | createSchema (const QString &name) const SIP_THROW(QgsProviderConnectionException) |
Creates a new schema with the specified name. More... | |
virtual void | createSpatialIndex (const QString &schema, const QString &name, const QgsAbstractDatabaseProviderConnection::SpatialIndexOptions &options=QgsAbstractDatabaseProviderConnection::SpatialIndexOptions()) const SIP_THROW(QgsProviderConnectionException) |
Creates a spatial index for the database table with given schema and name (schema is ignored if not supported by the backend). More... | |
virtual QgsVectorLayer * | createSqlVectorLayer (const SqlVectorLayerOptions &options) const SIP_THROW(QgsProviderConnectionException) |
Creates and returns a (possibly invalid) vector layer based on the sql statement and optional options. More... | |
virtual void | createVectorTable (const QString &schema, const QString &name, const QgsFields &fields, QgsWkbTypes::Type wkbType, const QgsCoordinateReferenceSystem &srs, bool overwrite, const QMap< QString, QVariant > *options) const SIP_THROW(QgsProviderConnectionException) |
Creates an empty table with name in the given schema (schema is ignored if not supported by the backend). More... | |
virtual void | deleteField (const QString &fieldName, const QString &schema, const QString &tableName, bool force=false) const SIP_THROW(QgsProviderConnectionException) |
Deletes the field with the specified name. More... | |
virtual void | deleteSpatialIndex (const QString &schema, const QString &name, const QString &geometryColumn) const SIP_THROW(QgsProviderConnectionException) |
Deletes the existing spatial index for the database table with given schema, name and geometryColumn (schema and geometryColumn are ignored if not supported by the backend). More... | |
virtual void | dropRasterTable (const QString &schema, const QString &name) const SIP_THROW(QgsProviderConnectionException) |
Drops a raster table with given schema (schema is ignored if not supported by the backend) and name. More... | |
virtual void | dropSchema (const QString &name, bool force=false) const SIP_THROW(QgsProviderConnectionException) |
Drops an entire schema with the specified name. More... | |
virtual void | dropVectorTable (const QString &schema, const QString &name) const SIP_THROW(QgsProviderConnectionException) |
Drops a vector (or aspatial) table with given schema (schema is ignored if not supported by the backend) and name. More... | |
virtual QueryResult | execSql (const QString &sql, QgsFeedback *feedback=nullptr) const SIP_THROW(QgsProviderConnectionException) |
Executes raw sql and returns the (possibly empty) query results, optionally feedback can be provided. More... | |
virtual QList< QList< QVariant > > | executeSql (const QString &sql, QgsFeedback *feedback=nullptr) const SIP_THROW(QgsProviderConnectionException) |
Executes raw sql and returns the (possibly empty) list of results in a multi-dimensional array, optionally feedback can be provided. More... | |
virtual QgsFieldDomain * | fieldDomain (const QString &name) const SIP_THROW(QgsProviderConnectionException) |
Returns the field domain with the specified name from the provider. More... | |
virtual QStringList | fieldDomainNames () const SIP_THROW(QgsProviderConnectionException) |
Returns a list of field domain names present on the provider. More... | |
virtual QgsFields | fields (const QString &schema, const QString &table) const SIP_THROW(QgsProviderConnectionException) |
Returns the fields of a table and schema. More... | |
virtual GeometryColumnCapabilities | geometryColumnCapabilities () |
Returns connection geometry column capabilities (Z, M, SinglePart, Curves). More... | |
virtual QList< QgsVectorDataProvider::NativeType > | nativeTypes () const SIP_THROW(QgsProviderConnectionException)=0 |
Returns a list of native types supported by the connection. More... | |
QString | providerKey () const |
Returns the provider key. More... | |
virtual void | renameRasterTable (const QString &schema, const QString &name, const QString &newName) const SIP_THROW(QgsProviderConnectionException) |
Renames a raster table with given schema (schema is ignored if not supported by the backend) and name. More... | |
virtual void | renameSchema (const QString &name, const QString &newName) const SIP_THROW(QgsProviderConnectionException) |
Renames a schema with the specified name. More... | |
virtual void | renameVectorTable (const QString &schema, const QString &name, const QString &newName) const SIP_THROW(QgsProviderConnectionException) |
Renames a vector or aspatial table with given schema (schema is ignored if not supported by the backend) and name. More... | |
virtual QStringList | schemas () const SIP_THROW(QgsProviderConnectionException) |
Returns information about the existing schemas. More... | |
virtual void | setFieldDomainName (const QString &fieldName, const QString &schema, const QString &tableName, const QString &domainName) const SIP_THROW(QgsProviderConnectionException) |
Sets the field domain name for the existing field with the specified name. More... | |
virtual bool | spatialIndexExists (const QString &schema, const QString &name, const QString &geometryColumn) const SIP_THROW(QgsProviderConnectionException) |
Determines whether a spatial index exists for the database table with given schema, name and geometryColumn (schema and geometryColumn are ignored if not supported by the backend). More... | |
virtual QMultiMap< Qgis::SqlKeywordCategory, QStringList > | sqlDictionary () |
Returns a dictionary of SQL keywords supported by the provider. More... | |
virtual Qgis::SqlLayerDefinitionCapabilities | sqlLayerDefinitionCapabilities () |
Returns SQL layer definition capabilities (Filters, GeometryColumn, PrimaryKeys). More... | |
virtual SqlVectorLayerOptions | sqlOptions (const QString &layerSource) SIP_THROW(QgsProviderConnectionException) |
Returns the SQL layer options from a layerSource. More... | |
virtual QgsAbstractDatabaseProviderConnection::TableProperty | table (const QString &schema, const QString &table) const SIP_THROW(QgsProviderConnectionException) |
Returns information on a table in the given schema. More... | |
virtual bool | tableExists (const QString &schema, const QString &name) const SIP_THROW(QgsProviderConnectionException) |
Checks whether a table name exists in the given schema. More... | |
virtual QList< QgsAbstractDatabaseProviderConnection::TableProperty > | tables (const QString &schema=QString(), const QgsAbstractDatabaseProviderConnection::TableFlags &flags=QgsAbstractDatabaseProviderConnection::TableFlags()) const |
Returns information on the tables in the given schema. More... | |
QList< QgsAbstractDatabaseProviderConnection::TableProperty > | tablesInt (const QString &schema=QString(), const int flags=0) const SIP_THROW(QgsProviderConnectionException) |
Returns information on the tables in the given schema. More... | |
virtual QString | tableUri (const QString &schema, const QString &name) const SIP_THROW(QgsProviderConnectionException) |
Returns the URI string for the given table and schema. More... | |
virtual void | vacuum (const QString &schema, const QString &name) const SIP_THROW(QgsProviderConnectionException) |
Vacuum the database table with given schema and name (schema is ignored if not supported by the backend). More... | |
Public Member Functions inherited from QgsAbstractProviderConnection | |
QgsAbstractProviderConnection (const QString &name) | |
Creates a new connection with name by reading its configuration from the settings. More... | |
QgsAbstractProviderConnection (const QString &uri, const QVariantMap &configuration) | |
Creates a new connection from the given uri and configuration. More... | |
virtual | ~QgsAbstractProviderConnection ()=default |
QVariantMap | configuration () const |
Returns the connection configuration parameters. More... | |
virtual QIcon | icon () const |
Returns an icon representing the connection. More... | |
virtual void | remove (const QString &name) const =0 |
Deletes the connection from the settings. More... | |
void | setConfiguration (const QVariantMap &configuration) |
Sets the connection configuration. More... | |
void | setUri (const QString &uri) |
Sets the connection data source URI to uri. More... | |
virtual void | store (const QString &name) const =0 |
Stores the connection in the settings. More... | |
QString | uri () const |
Returns the connection data source URI string representation. More... | |
Protected Attributes | |
Capabilities | mCapabilities = Capabilities() |
GeometryColumnCapabilities | mGeometryColumnCapabilities = GeometryColumnCapabilities() |
QString | mProviderKey |
Qgis::SqlLayerDefinitionCapabilities | mSqlLayerDefinitionCapabilities = Qgis::SqlLayerDefinitionCapabilities() |
The QgsAbstractDatabaseProviderConnection class provides common functionality for DB based connections.
This class performs low level DB operations without asking the user for confirmation or handling currently opened layers and the registry entries, it is responsibility of the client code to keep layers in sync. The class methods will throw exceptions in case the requested operation is not supported or cannot be performed without errors.
Definition at line 44 of file qgsabstractdatabaseproviderconnection.h.
The Capability enum represents the operations supported by the connection.
Enumerator | |
---|---|
CreateVectorTable | Can CREATE a vector (or aspatial) table/layer. |
DropRasterTable | Can DROP a raster table/layer. |
DropVectorTable | Can DROP a vector (or aspatial) table/layer. |
RenameVectorTable | Can RENAME a vector (or aspatial) table/layer. |
RenameRasterTable | Can RENAME a raster table/layer. |
CreateSchema | Can CREATE a schema. |
DropSchema | Can DROP a schema. |
RenameSchema | Can RENAME a schema. |
ExecuteSql | Can execute raw SQL queries (without returning results) |
Vacuum | Can run vacuum. |
Tables | Can list tables. |
Schemas | Can list schemas (if not set, the connection does not support schemas) |
SqlLayers | Can create vector layers from SQL SELECT queries. |
TableExists | Can check if table exists. |
Spatial | The connection supports spatial tables. |
CreateSpatialIndex | The connection can create spatial indices. |
SpatialIndexExists | The connection can determine if a spatial index exists. |
DeleteSpatialIndex | The connection can delete spatial indices for tables. |
DeleteField | Can delete an existing field/column. |
DeleteFieldCascade | Can delete an existing field/column with cascade. |
AddField | Can add a new field/column. |
ListFieldDomains | Can return a list of field domain names via fieldDomainNames() (since QGIS 3.26) |
RetrieveFieldDomain | Can retrieve field domain details from provider via fieldDomain() (since QGIS 3.26) |
SetFieldDomain | Can set the domain for an existing field via setFieldDomainName() (since QGIS 3.26) |
AddFieldDomain | Can add new field domains to the database via addFieldDomain() (since QGIS 3.26) |
Definition at line 479 of file qgsabstractdatabaseproviderconnection.h.
The GeometryColumnCapability enum represents the geomery column features supported by the connection.
Enumerator | |
---|---|
Z | Supports Z dimension. |
M | Supports M dimension. |
SinglePart | Multi and single part types are distinct types. |
Curves | Supports curves. |
Definition at line 516 of file qgsabstractdatabaseproviderconnection.h.
Flags for table properties.
Flags can be useful for filtering the tables returned from tables().
Definition at line 57 of file qgsabstractdatabaseproviderconnection.h.
QgsAbstractDatabaseProviderConnection::QgsAbstractDatabaseProviderConnection | ( | const QString & | name | ) |
Creates a new connection with name by reading its configuration from the settings.
If a connection with this name cannot be found, an empty connection will be returned.
Definition at line 25 of file qgsabstractdatabaseproviderconnection.cpp.
QgsAbstractDatabaseProviderConnection::QgsAbstractDatabaseProviderConnection | ( | const QString & | uri, |
const QVariantMap & | configuration | ||
) |
Creates a new connection from the given uri and configuration.
The connection is not automatically stored in the settings.
Definition at line 31 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Adds a field.
field | specification of the new field |
schema | name of the schema (schema is ignored if not supported by the backend). |
tableName | name of the table |
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1157 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Adds a new field domain to the database.
domain | field domain to add |
schema | name of the schema (schema is ignored if not supported by the backend). |
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1279 of file qgsabstractdatabaseproviderconnection.cpp.
QgsAbstractDatabaseProviderConnection::Capabilities QgsAbstractDatabaseProviderConnection::capabilities | ( | ) | const |
Returns connection capabilities.
Definition at line 36 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Creates a new schema with the specified name.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1077 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Creates a spatial index for the database table with given schema and name (schema is ignored if not supported by the backend).
The options argument can be used to provide extra options controlling the spatial index creation.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1110 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Creates and returns a (possibly invalid) vector layer based on the sql statement and optional options.
QgsProviderConnectionException | if any errors are encountered or if SQL layer creation is not supported. |
Definition at line 1115 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Creates an empty table with name in the given schema (schema is ignored if not supported by the backend).
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1017 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Deletes the field with the specified name.
fieldName | name of the field to be deleted |
schema | name of the schema (schema is ignored if not supported by the backend). |
tableName | name of the table |
force | if true , a DROP CASCADE will drop all related objects |
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1132 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Deletes the existing spatial index for the database table with given schema, name and geometryColumn (schema and geometryColumn are ignored if not supported by the backend).
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1121 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Drops a raster table with given schema (schema is ignored if not supported by the backend) and name.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1072 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Drops an entire schema with the specified name.
name | name of the schema to be dropped |
force | if true , a DROP CASCADE will drop all related objects |
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1082 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Drops a vector (or aspatial) table with given schema (schema is ignored if not supported by the backend) and name.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1053 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Executes raw sql and returns the (possibly empty) query results, optionally feedback can be provided.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1098 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Executes raw sql and returns the (possibly empty) list of results in a multi-dimensional array, optionally feedback can be provided.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1092 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns the field domain with the specified name from the provider.
The caller takes ownership of the return object. Will return nullptr
if no matching field domain is found.
This is supported on providers with the Capability::RetrieveFieldDomain capability only.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1268 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns a list of field domain names present on the provider.
This is supported on providers with the Capability::ListFieldDomains capability only.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1262 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns the fields of a table and schema.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1246 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns connection geometry column capabilities (Z, M, SinglePart, Curves).
Definition at line 41 of file qgsabstractdatabaseproviderconnection.cpp.
|
pure virtual |
Returns a list of native types supported by the connection.
QgsProviderConnectionException | if any errors are encountered. |
QString QgsAbstractDatabaseProviderConnection::providerKey | ( | ) | const |
Returns the provider key.
|
virtual |
Renames a raster table with given schema (schema is ignored if not supported by the backend) and name.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1048 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Renames a schema with the specified name.
Raises a QgsProviderConnectionException if any errors are encountered.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1087 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Renames a vector or aspatial table with given schema (schema is ignored if not supported by the backend) and name.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1036 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns information about the existing schemas.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1210 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Sets the field domain name for the existing field with the specified name.
fieldName | name of the field to be modified |
schema | name of the schema (schema is ignored if not supported by the backend). |
tableName | name of the table |
domainName | name of the domain to set for the field. Must be an existing field domain (see fieldDomainNames()). Set to an empty string to remove a previously set domain. |
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1274 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Determines whether a spatial index exists for the database table with given schema, name and geometryColumn (schema and geometryColumn are ignored if not supported by the backend).
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1126 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns a dictionary of SQL keywords supported by the provider.
The default implementation returns an list of common reserved words under the "Keyword" and "Constant" categories.
Subclasses should add provider- and/or connection- specific words.
Definition at line 79 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns SQL layer definition capabilities (Filters, GeometryColumn, PrimaryKeys).
Definition at line 46 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns the SQL layer options from a layerSource.
QgsProviderConnectionException | if any errors are encountered or if SQL layer creation is not supported. |
Definition at line 1042 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns information on a table in the given schema.
QgsProviderConnectionException | if any errors are encountered or if the table does not exist. |
Definition at line 1189 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Checks whether a table name exists in the given schema.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1058 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns information on the tables in the given schema.
schema | name of the schema (ignored if not supported by the backend) |
flags | filter tables by flags, this option completely overrides search options stored in the connection |
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1182 of file qgsabstractdatabaseproviderconnection.cpp.
QList< QgsAbstractDatabaseProviderConnection::TableProperty > QgsAbstractDatabaseProviderConnection::tablesInt | ( | const QString & | schema = QString() , |
const int | flags = 0 |
||
) | const |
Returns information on the tables in the given schema.
schema | name of the schema (ignored if not supported by the backend) |
flags | filter tables by flags, this option completely overrides search options stored in the connection |
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1204 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Returns the URI string for the given table and schema.
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 52 of file qgsabstractdatabaseproviderconnection.cpp.
|
virtual |
Vacuum the database table with given schema and name (schema is ignored if not supported by the backend).
QgsProviderConnectionException | if any errors are encountered. |
Definition at line 1105 of file qgsabstractdatabaseproviderconnection.cpp.
|
protected |
Definition at line 876 of file qgsabstractdatabaseproviderconnection.h.
|
protected |
Definition at line 877 of file qgsabstractdatabaseproviderconnection.h.
|
protected |
Definition at line 879 of file qgsabstractdatabaseproviderconnection.h.
|
protected |
Definition at line 878 of file qgsabstractdatabaseproviderconnection.h.