Class: QgsAbstractDatabaseProviderConnection¶
- class qgis.core.QgsAbstractDatabaseProviderConnection¶
Bases:
QgsAbstractProviderConnection
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.
New in version 3.10.
QgsAbstractDatabaseProviderConnection(name: str) 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.
QgsAbstractDatabaseProviderConnection(uri: str, configuration: Dict[str, Any]) Creates a new connection from the given
uri
andconfiguration
.The connection is not automatically stored in the settings.
See also
store()
QgsAbstractDatabaseProviderConnection(
QgsAbstractDatabaseProviderConnection
)Methods
Adds a field.
Returns connection capabilities
Checks if
capability
is supported.Creates a new schema with the specified
name
.Creates a spatial index for the database table with given
schema
andname
(schema is ignored if not supported by the backend).Creates and returns a (possibly invalid) vector layer based on the
sql
statement and optionaloptions
.Creates an empty table with
name
in the givenschema
(schema is ignored if not supported by the backend).Deletes the field with the specified name.
Deletes the existing spatial index for the database table with given
schema
,name
andgeometryColumn
(schema
andgeometryColumn
are ignored if not supported by the backend).Drops a raster table with given
schema
(schema is ignored if not supported by the backend) andname
.Drops an entire schema with the specified name.
Drops a vector (or aspatial) table with given
schema
(schema is ignored if not supported by the backend) andname
.Executes raw
sql
and returns the (possibly empty) query results, optionallyfeedback
can be provided.Executes raw
sql
and returns the (possibly empty) list of results in a multi-dimensional array, optionallyfeedback
can be provided.Returns the fields of a
table
andschema
.Returns connection geometry column capabilities (Z, M, SinglePart, Curves).
Returns a list of native types supported by the connection.
Returns the provider key.
Renames a raster table with given
schema
(schema is ignored if not supported by the backend) andname
.Renames a schema with the specified
name
.Renames a vector or aspatial table with given
schema
(schema is ignored if not supported by the backend) andname
.Returns information about the existing schemas.
Determines whether a spatial index exists for the database table with given
schema
,name
andgeometryColumn
(schema
andgeometryColumn
are ignored if not supported by the backend).Returns a dictionary of SQL keywords supported by the provider.
Returns SQL layer definition capabilities (Filters, GeometryColumn, PrimaryKeys).
Returns the SQL layer options from a
layerSource
.Returns information on a
table
in the givenschema
.Checks whether a table
name
exists in the givenschema
.Returns the URI string for the given
table
andschema
.Returns information on the tables in the given schema.
Vacuum the database table with given
schema
andname
(schema is ignored if not supported by the backend).Attributes
- AddField = 2097152¶
- Aspatial = 2¶
- class Capabilities¶
- class Capabilities(Union[QgsAbstractDatabaseProviderConnection.Capabilities, QgsAbstractDatabaseProviderConnection.Capability])
- class Capabilities(QgsAbstractDatabaseProviderConnection.Capabilities)
Bases:
sip.wrapper
- baseClass¶
- CreateSchema = 64¶
- CreateSpatialIndex = 65536¶
- CreateVectorTable = 2¶
- Curves = 16¶
- DeleteField = 524288¶
- DeleteFieldCascade = 1048576¶
- DeleteSpatialIndex = 262144¶
- DropRasterTable = 4¶
- DropSchema = 128¶
- DropVectorTable = 8¶
- ExecuteSql = 512¶
- Foreign = 64¶
- class GeometryColumnCapabilities¶
- class GeometryColumnCapabilities(Union[QgsAbstractDatabaseProviderConnection.GeometryColumnCapabilities, QgsAbstractDatabaseProviderConnection.GeometryColumnCapability])
- class GeometryColumnCapabilities(QgsAbstractDatabaseProviderConnection.GeometryColumnCapabilities)
Bases:
sip.wrapper
- baseClass¶
- M = 4¶
- MaterializedView = 32¶
- class QueryResult¶
- class QueryResult(QgsAbstractDatabaseProviderConnection.QueryResult)
Bases:
sip.wrapper
- columns(self) List[str] ¶
Returns the column names.
- Return type:
List[str]
- fetchedRowCount(self) int ¶
Returns the number of fetched rows.
See also
- Return type:
int
- hasNextRow(self) bool ¶
Returns
True
if there are more rows to fetch.See also
See also
rewind()
- Return type:
bool
- nextRow(self) List[Any] ¶
Returns the next result row or an empty row if there are no rows left.
See also
See also
rewind()
- Return type:
List[Any]
- queryExecutionTime(self) float ¶
Returns the query execution time in milliseconds.
- Return type:
float
- rowCount(self) int ¶
Returns the number of rows returned by a SELECT query or Qgis.FeatureCountState.UnknownCount if unknown.
See also
- Return type:
int
- rows(self, feedback: QgsFeedback = None) object ¶
Returns the result rows by calling the iterator internally and fetching all the rows, an optional
feedback
can be used to interrupt the fetching loop.Note
calling this function more than one time is not supported: the second call will always return an empty list.
- Parameters:
feedback (
QgsFeedback
= None) –- Return type:
object
- setQueryExecutionTime(self, queryExecutionTime: float)¶
Sets the query execution time to
queryExecutionTime
milliseconds.- Parameters:
queryExecutionTime (float) –
- Raster = 8¶
- RenameRasterTable = 32¶
- RenameSchema = 256¶
- RenameVectorTable = 16¶
- Schemas = 4096¶
- SinglePart = 8¶
- Spatial = 32768¶
- SpatialIndexExists = 131072¶
- class SpatialIndexOptions¶
- class SpatialIndexOptions(QgsAbstractDatabaseProviderConnection.SpatialIndexOptions)
Bases:
sip.wrapper
- geometryColumnName¶
- SqlLayers = 8192¶
- class SqlVectorLayerOptions¶
- class SqlVectorLayerOptions(QgsAbstractDatabaseProviderConnection.SqlVectorLayerOptions)
Bases:
sip.wrapper
- disableSelectAtId¶
- filter¶
- geometryColumn¶
- layerName¶
- primaryKeyColumns¶
- sql¶
- TableExists = 16384¶
- class TableFlags¶
- class TableFlags(Union[QgsAbstractDatabaseProviderConnection.TableFlags, QgsAbstractDatabaseProviderConnection.TableFlag])
- class TableFlags(QgsAbstractDatabaseProviderConnection.TableFlags)
Bases:
sip.wrapper
- baseClass¶
- class TableProperty¶
- class TableProperty(QgsAbstractDatabaseProviderConnection.TableProperty)
Bases:
sip.wrapper
- class GeometryColumnType¶
- class GeometryColumnType(QgsAbstractDatabaseProviderConnection.TableProperty.GeometryColumnType)
Bases:
sip.wrapper
- crs¶
- wkbType¶
- addGeometryColumnType(self, type: QgsWkbTypes.Type, crs: QgsCoordinateReferenceSystem)¶
Appends the geometry column
type
with the givensrid
to the geometry column types list.- Parameters:
type (QgsWkbTypes.Type) –
crs (QgsCoordinateReferenceSystem) –
- at(self, index: int) QgsAbstractDatabaseProviderConnection.TableProperty ¶
Returns the table property corresponding to the geometry type at the given
index
.- Parameters:
index (int) –
- Return type:
- comment(self) str ¶
Returns the table comment.
- Return type:
str
- crsList(self) List[QgsCoordinateReferenceSystem] ¶
Returns the list of CRSs supported by the geometry column.
- Return type:
- defaultName(self) str ¶
Returns the default name for the table entry.
This is usually the table name but in case there are multiple geometry columns, the geometry column name is appended to the table name.
See also
- Return type:
str
- flags(self) QgsAbstractDatabaseProviderConnection.TableFlags ¶
Returns the table flags.
- Return type:
- geometryColumn(self) str ¶
Returns the geometry column name.
- Return type:
str
- geometryColumnCount(self) int ¶
Returns the number of geometry columns in the original table this entry refers to.
This information is used internally to build the
defaultName()
.- Return type:
int
- geometryColumnTypes(self) List[QgsAbstractDatabaseProviderConnection.TableProperty.GeometryColumnType] ¶
Returns the list of geometry column types and CRSs.
The method returns a list of GeometryColumnType.
- Return type:
List[QgsAbstractDatabaseProviderConnection.TableProperty.GeometryColumnType]
- info(self) Dict[str, Any] ¶
Returns additional information about the table.
Provider classes may use this property to store custom bits of information.
- Return type:
Dict[str, Any]
- maxCoordinateDimensions(self) int ¶
Returns the maximum coordinate dimensions of the geometries of a vector table.
This information is calculated from the geometry columns types.
See also
- Return type:
int
- primaryKeyColumns(self) List[str] ¶
Returns the list of primary key column names.
- Return type:
List[str]
- schema(self) str ¶
Returns the schema or an empty string for backends that do not support a schema.
- Return type:
str
- setComment(self, comment: str)¶
Sets the table
comment
.- Parameters:
comment (str) –
- setFlag(self, flag: QgsAbstractDatabaseProviderConnection.TableFlag)¶
Sets a
flag
.- Parameters:
- setFlags(self, flags: QgsAbstractDatabaseProviderConnection.TableFlags | QgsAbstractDatabaseProviderConnection.TableFlag)¶
Sets the table
flags
.- Parameters:
flags (Union[QgsAbstractDatabaseProviderConnection.TableFlags) –
- setGeometryColumn(self, geometryColumn: str)¶
Sets the geometry column name to
geometryColumn
.- Parameters:
geometryColumn (str) –
- setGeometryColumnCount(self, geometryColumnCount: int)¶
Sets the
geometryColumnCount
.- Parameters:
geometryColumnCount (int) –
- setGeometryColumnTypes(self, geometryColumnTypes: Iterable[QgsAbstractDatabaseProviderConnection.TableProperty.GeometryColumnType])¶
Sets the geometry column types to
geometryColumnTypes
.- Parameters:
geometryColumnTypes (Iterable[QgsAbstractDatabaseProviderConnection.TableProperty.GeometryColumnType]) –
- setInfo(self, info: Dict[str, Any])¶
Sets additional information about the table to
info
.Provider classes may use this property to store custom bits of information.
- Parameters:
info (Dict[str) –
- setPrimaryKeyColumns(self, primaryKeyColumns: Iterable[str])¶
Sets the primary key column names to
primaryKeyColumns
.- Parameters:
primaryKeyColumns (Iterable[str]) –
- setSchema(self, schema: str)¶
Sets the
schema
.- Parameters:
schema (str) –
- setTableName(self, name: str)¶
Sets the table name to
name
.See also
- Parameters:
name (str) –
- tableName(self) str ¶
Returns the table name.
See also
- Return type:
str
- Tables = 2048¶
- Vacuum = 1024¶
- Vector = 4¶
- View = 16¶
- Z = 2¶
- addField(self, field: QgsField, schema: str, tableName: str)¶
Adds a field.
- Parameters:
field (QgsField) – specification of the new field
schema (str) – name of the schema (schema is ignored if not supported by the backend).
tableName (str) – name of the table
Note
it is responsibility of the caller to handle open layers and registry entries.
- Raises:
QgsProviderConnectionException – if any errors are encountered.
New in version 3.16.
- capabilities(self) QgsAbstractDatabaseProviderConnection.Capabilities ¶
Returns connection capabilities
- Return type:
- checkCapability(self, capability: QgsAbstractDatabaseProviderConnection.Capability)¶
Checks if
capability
is supported.- Raises:
QgsProviderConnectionException – if the capability is not supported
- Parameters:
capability (QgsAbstractDatabaseProviderConnection.Capability) –
- createSchema(self, name: str)¶
Creates a new schema with the specified
name
.- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Parameters:
name (str) –
- createSpatialIndex(self, schema: str, name: str, options: QgsAbstractDatabaseProviderConnection.SpatialIndexOptions = QgsAbstractDatabaseProviderConnection.SpatialIndexOptions())¶
Creates a spatial index for the database table with given
schema
andname
(schema is ignored if not supported by the backend).The
options
argument can be used to provide extra options controlling the spatial index creation.- Raises:
QgsProviderConnectionException – if any errors are encountered.
New in version 3.14.
- Parameters:
schema (str) –
name (str) –
options (QgsAbstractDatabaseProviderConnection.SpatialIndexOptions = QgsAbstractDatabaseProviderConnection.SpatialIndexOptions()) –
- createSqlVectorLayer(self, options: QgsAbstractDatabaseProviderConnection.SqlVectorLayerOptions) QgsVectorLayer ¶
Creates and returns a (possibly invalid) vector layer based on the
sql
statement and optionaloptions
.- Raises:
QgsProviderConnectionException – if any errors are encountered or if SQL layer creation is not supported.
New in version 3.22.
- Parameters:
options (QgsAbstractDatabaseProviderConnection.SqlVectorLayerOptions) –
- Return type:
- createVectorTable(self, schema: str, name: str, fields: QgsFields, wkbType: QgsWkbTypes.Type, srs: QgsCoordinateReferenceSystem, overwrite: bool, options: Dict[str, Any])¶
Creates an empty table with
name
in the givenschema
(schema is ignored if not supported by the backend).- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Parameters:
schema (str) –
name (str) –
fields (QgsFields) –
wkbType (QgsWkbTypes.Type) –
srs (QgsCoordinateReferenceSystem) –
overwrite (bool) –
options (Dict[str) –
- deleteField(self, fieldName: str, schema: str, tableName: str, force: bool = False)¶
Deletes the field with the specified name.
- Parameters:
fieldName (str) – name of the field to be deleted
schema (str) – name of the schema (schema is ignored if not supported by the backend).
tableName (str) – name of the table
force (bool = False) – if
True
, a DROP CASCADE will drop all related objects
Note
it is responsibility of the caller to handle open layers and registry entries.
- Raises:
QgsProviderConnectionException – if any errors are encountered.
New in version 3.16.
- deleteSpatialIndex(self, schema: str, name: str, geometryColumn: str)¶
Deletes the existing spatial index for the database table with given
schema
,name
andgeometryColumn
(schema
andgeometryColumn
are ignored if not supported by the backend).- Raises:
QgsProviderConnectionException – if any errors are encountered.
New in version 3.14.
- Parameters:
schema (str) –
name (str) –
geometryColumn (str) –
- dropRasterTable(self, schema: str, name: str)¶
Drops a raster table with given
schema
(schema is ignored if not supported by the backend) andname
.Note
It is responsibility of the caller to handle open layers and registry entries.
- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Parameters:
schema (str) –
name (str) –
- dropSchema(self, name: str, force: bool = False)¶
Drops an entire schema with the specified name.
- Parameters:
name (str) – name of the schema to be dropped
force (bool = False) – if
True
, a DROP CASCADE will drop all related objects
Note
It is responsibility of the caller to handle open layers and registry entries.
- Raises:
QgsProviderConnectionException – if any errors are encountered.
- dropVectorTable(self, schema: str, name: str)¶
Drops a vector (or aspatial) table with given
schema
(schema is ignored if not supported by the backend) andname
.Note
It is responsibility of the caller to handle open layers and registry entries.
- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Parameters:
schema (str) –
name (str) –
- execSql(self, sql: str, feedback: QgsFeedback = None) QgsAbstractDatabaseProviderConnection.QueryResult ¶
Executes raw
sql
and returns the (possibly empty) query results, optionallyfeedback
can be provided.See also
- Raises:
QgsProviderConnectionException – if any errors are encountered.
New in version 3.18.
- Parameters:
sql (str) –
feedback (
QgsFeedback
= None) –
- Return type:
- executeSql(self, sql: str, feedback: QgsFeedback = None) object ¶
Executes raw
sql
and returns the (possibly empty) list of results in a multi-dimensional array, optionallyfeedback
can be provided.See also
- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Parameters:
sql (str) –
feedback (
QgsFeedback
= None) –
- Return type:
object
- fields(self, schema: str, table: str) QgsFields ¶
Returns the fields of a
table
andschema
.Note
the default implementation creates a temporary vector layer, providers may choose to override this method for a greater efficiency of to overcome provider’s behavior when the layer does not expose all fields (GPKG for example hides geometry and primary key column).
- Raises:
QgsProviderConnectionException – if any errors are encountered.
New in version 3.16.
- Parameters:
schema (str) –
table (str) –
- Return type:
- geometryColumnCapabilities(self) QgsAbstractDatabaseProviderConnection.GeometryColumnCapabilities ¶
Returns connection geometry column capabilities (Z, M, SinglePart, Curves).
New in version 3.16.
- nativeTypes(self) List[QgsVectorDataProvider.NativeType] ¶
Returns a list of native types supported by the connection.
- Raises:
QgsProviderConnectionException – if any errors are encountered.
New in version 3.16.
- Return type:
- providerKey(self) str ¶
Returns the provider key.
New in version 3.16.
- Return type:
str
- renameRasterTable(self, schema: str, name: str, newName: str)¶
Renames a raster table with given
schema
(schema is ignored if not supported by the backend) andname
.Note
It is responsibility of the caller to handle open layers and registry entries.
- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Parameters:
schema (str) –
name (str) –
newName (str) –
- renameSchema(self, name: str, newName: str)¶
Renames a schema with the specified
name
. Raises aQgsProviderConnectionException
if any errors are encountered.Note
it is responsibility of the caller to handle open layers and registry entries.
- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Parameters:
name (str) –
newName (str) –
- renameVectorTable(self, schema: str, name: str, newName: str)¶
Renames a vector or aspatial table with given
schema
(schema is ignored if not supported by the backend) andname
.Note
It is responsibility of the caller to handle open layers and registry entries.
- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Parameters:
schema (str) –
name (str) –
newName (str) –
- schemas(self) List[str] ¶
Returns information about the existing schemas.
- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Return type:
List[str]
- spatialIndexExists(self, schema: str, name: str, geometryColumn: str) bool ¶
Determines whether a spatial index exists for the database table with given
schema
,name
andgeometryColumn
(schema
andgeometryColumn
are ignored if not supported by the backend).- Raises:
QgsProviderConnectionException – if any errors are encountered.
New in version 3.14.
- Parameters:
schema (str) –
name (str) –
geometryColumn (str) –
- Return type:
bool
- sqlDictionary(self) Dict[Qgis.SqlKeywordCategory, List[List[str]]] ¶
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.
New in version 3.22.
- Return type:
Dict[Qgis.SqlKeywordCategory, List[List[str]]]
- sqlLayerDefinitionCapabilities(self) Qgis.SqlLayerDefinitionCapabilities ¶
Returns SQL layer definition capabilities (Filters, GeometryColumn, PrimaryKeys).
New in version 3.22.
- Return type:
- sqlOptions(self, layerSource: str) QgsAbstractDatabaseProviderConnection.SqlVectorLayerOptions ¶
Returns the SQL layer options from a
layerSource
.Note
the default implementation returns a default constructed option object.
- Raises:
QgsProviderConnectionException – if any errors are encountered or if SQL layer creation is not supported.
New in version 3.22.
- Parameters:
layerSource (str) –
- Return type:
- staticMetaObject = <PyQt5.QtCore.QMetaObject object>¶
- table(self, schema: str, table: str) QgsAbstractDatabaseProviderConnection.TableProperty ¶
Returns information on a
table
in the givenschema
.- Raises:
QgsProviderConnectionException – if any errors are encountered or if the table does not exist.
Note
Not available in Python bindings
New in version 3.12.
- Parameters:
schema (str) –
table (str) –
- Return type:
- tableExists(self, schema: str, name: str) bool ¶
Checks whether a table
name
exists in the givenschema
.- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Parameters:
schema (str) –
name (str) –
- Return type:
bool
- tableUri(self, schema: str, name: str) str ¶
Returns the URI string for the given
table
andschema
.- Raises:
QgsProviderConnectionException – if any errors are encountered.
New in version 3.12.
- Parameters:
schema (str) –
name (str) –
- Return type:
str
- tables(self, schema: str = '', flags: int = 0) List[QgsAbstractDatabaseProviderConnection.TableProperty] ¶
Returns information on the tables in the given schema.
- Parameters:
schema (str = '') – name of the schema (ignored if not supported by the backend)
flags (int = 0) – filter tables by flags, this option completely overrides search options stored in the connection
- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Return type:
- vacuum(self, schema: str, name: str)¶
Vacuum the database table with given
schema
andname
(schema is ignored if not supported by the backend).- Raises:
QgsProviderConnectionException – if any errors are encountered.
- Parameters:
schema (str) –
name (str) –