Subgroup: Transaction
Class: QgsTransaction¶
-
class
qgis.core.
QgsTransaction
¶ Bases:
PyQt5.QtCore.QObject
This class allows including a set of layers in a database-side transaction, provided the layer data providers support transactions and are compatible with each other.
Only layers which are not in edit mode can be included in a transaction, and all layers need to be in read-only mode for a transaction to be committed or rolled back.
Layers can only be included in one transaction at a time.
When editing layers which are part of a transaction group, all changes are sent directly to the data provider (bypassing the undo/redo stack), and the changes can either be committed or rolled back on the database side via the QgsTransaction.commit and QgsTransaction.rollback methods.
As long as the transaction is active, the state of all layer features reflects the current state in the transaction.
Edits on features can get rejected if another conflicting transaction is active.
Methods
addLayer
Add the layer
to the transaction.begin
Begin transaction The statementTimeout
(in seconds) specifies how long an sql statement is allowed to block QGIS before it is aborted.blockSignals
childEvent
children
commit
Commit transaction. connectNotify
create
Create a transaction for the specified connection string connString
and provider withproviderKey
.createSavepoint
creates a save point customEvent
deleteLater
dirtyLastSavePoint
dirty save point such that next call to createSavepoint will create a new one disconnect
disconnectNotify
dumpObjectInfo
dumpObjectTree
dynamicPropertyNames
event
eventFilter
executeSql
Execute the sql
string.findChild
findChild(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> QObject findChildren
findChildren(self, Tuple, name: str = ‘’, options: Union[Qt.FindChildOptions, Qt.FindChildOption] = Qt.FindChildrenRecursively) -> List[QObject] inherits
installEventFilter
isSignalConnected
isWidgetType
isWindowType
killTimer
lastSavePointIsDirty
returns the last created savepoint metaObject
moveToThread
objectName
parent
property
pyqtConfigure
Each keyword argument is either the name of a Qt property or a Qt signal. receivers
removeEventFilter
rollback
Roll back transaction. rollbackToSavepoint
rollback to save point, the save point is maintained and is “undertied” savePoints
returns savepoints sender
senderSignalIndex
setObjectName
setParent
setProperty
signalsBlocked
startTimer
supportsTransaction
Checks if the provider of a given layer
supports transactions.thread
timerEvent
tr
Attributes
afterRollback
Emitted after a rollback [signal] destroyed
destroyed(self, QObject = None) [signal] dirtied
Emitted if a sql query is executed and the underlying data is modified [signal] objectNameChanged
objectNameChanged(self, str) [signal] staticMetaObject
-
addLayer
(self, layer: QgsVectorLayer) → bool¶ Add the
layer
to the transaction. The layer must not be in edit mode and the connection string must match.
-
afterRollback
¶ Emitted after a rollback [signal]
-
begin
(self, statementTimeout: int = 20) → Tuple[bool, str]¶ Begin transaction The
statementTimeout
(in seconds) specifies how long an sql statement is allowed to block QGIS before it is aborted. Statements can block, if multiple transactions are active and a statement would produce a conflicting state. In these cases, the statements block until the conflicting transaction is committed or rolled back. Some providers might not honour the statement timeout.
-
commit
(self) → Tuple[bool, str]¶ Commit transaction.
-
create
(connString: str, providerKey: str) → QgsTransaction¶ Create a transaction for the specified connection string
connString
and provider withproviderKey
.create(layers: object) -> QgsTransaction Create a transaction which includes the
layers
. All layers are expected to have the same connection string and data provider.
-
createSavepoint
(self) → Tuple[str, str]¶ creates a save point returns empty string on error returns the last created savepoint if it’s not dirty
New in version 3.0.
createSavepoint(self, savePointId: str) -> Tuple[str, str] creates a save point returns empty string on error
New in version 3.0.
-
dirtied
¶ Emitted if a sql query is executed and the underlying data is modified [signal]
-
dirtyLastSavePoint
(self)¶ dirty save point such that next call to createSavepoint will create a new one
New in version 3.0.
-
executeSql
(self, sql: str, isDirty: bool = False) → Tuple[bool, str]¶ Execute the
sql
string.Parameters: - sql – The sql query to execute
- error – The error message
- isDirty – Flag to indicate if the underlying data will be modified
Returns: true if everything is OK, false otherwise
-
lastSavePointIsDirty
(self) → bool¶ returns the last created savepoint
New in version 3.0.
-
rollback
(self) → Tuple[bool, str]¶ Roll back transaction.
-
rollbackToSavepoint
(self, name: str) → Tuple[bool, str]¶ rollback to save point, the save point is maintained and is “undertied”
New in version 3.0.
-
savePoints
(self) → List[str]¶ returns savepoints
New in version 3.0.
-
supportsTransaction
(layer: QgsVectorLayer) → bool¶ Checks if the provider of a given
layer
supports transactions.
-