mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-10-30 00:07:09 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			181 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			181 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/qgstransaction.h                                            *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| 
 | |
| class QgsTransaction : QObject /Abstract/
 | |
| {
 | |
| %Docstring(signature="appended")
 | |
| Allows creation of a multi-layer database-side transaction.
 | |
| 
 | |
| 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 :py:class:`QgsTransaction`.commit and
 | |
| :py:class:`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.
 | |
| %End
 | |
| 
 | |
| %TypeHeaderCode
 | |
| #include "qgstransaction.h"
 | |
| %End
 | |
|   public:
 | |
| 
 | |
|     static QgsTransaction *create( const QString &connString, const QString &providerKey ) /Factory/;
 | |
| %Docstring
 | |
| Create a transaction for the specified connection string ``connString``
 | |
| and provider with ``providerKey``.
 | |
| %End
 | |
| 
 | |
|     static QgsTransaction *create( const QSet<QgsVectorLayer *> &layers ) /Factory/;
 | |
| %Docstring
 | |
| Create a transaction which includes the ``layers``. All layers are
 | |
| expected to have the same connection string and data provider.
 | |
| %End
 | |
| 
 | |
|     ~QgsTransaction();
 | |
| 
 | |
|     QString connectionString() const;
 | |
| %Docstring
 | |
| Returns the connection string of the transaction
 | |
| 
 | |
| .. versionadded:: 3.26
 | |
| %End
 | |
| 
 | |
|     bool addLayer( QgsVectorLayer *layer, bool addLayersInEditMode = false );
 | |
| %Docstring
 | |
| Add the ``layer`` to the transaction. The connection string must match.
 | |
| 
 | |
| :param layer: that will be added to the transaction
 | |
| :param addLayersInEditMode: if set layers that are already
 | |
| 
 | |
| .. versionadded:: 3.26
 | |
| %End
 | |
| 
 | |
|     bool begin( QString &errorMsg /Out/, int statementTimeout = 20 );
 | |
| %Docstring
 | |
| 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.
 | |
| %End
 | |
| 
 | |
|     bool commit( QString &errorMsg /Out/ );
 | |
| %Docstring
 | |
| Commit transaction.
 | |
| %End
 | |
| 
 | |
|     bool rollback( QString &errorMsg /Out/ );
 | |
| %Docstring
 | |
| Roll back transaction.
 | |
| %End
 | |
| 
 | |
|     virtual bool executeSql( const QString &sql, QString &error /Out/, bool isDirty = false, const QString &name = QString() ) = 0;
 | |
| %Docstring
 | |
| Execute the ``sql`` string.
 | |
| 
 | |
| :param sql: The sql query to execute
 | |
| :param isDirty: Flag to indicate if the underlying data will be modified
 | |
| :param name: Name of the transaction ( only used if `isDirty` is
 | |
|              ``True``)
 | |
| 
 | |
| :return: - ``True`` if everything is OK, ``False`` otherwise
 | |
|          - error: The error message
 | |
| %End
 | |
| 
 | |
|     static bool supportsTransaction( const QgsVectorLayer *layer );
 | |
| %Docstring
 | |
| Checks if the provider of a given ``layer`` supports transactions.
 | |
| %End
 | |
| 
 | |
|     QString createSavepoint( QString &error /Out/ );
 | |
| %Docstring
 | |
| creates a save point returns empty string on error returns the last
 | |
| created savepoint if it's not dirty
 | |
| %End
 | |
| 
 | |
|     virtual QString createSavepoint( const QString &savePointId, QString &error /Out/ );
 | |
| %Docstring
 | |
| creates a save point returns empty string on error
 | |
| %End
 | |
| 
 | |
|     virtual bool rollbackToSavepoint( const QString &name, QString &error /Out/ );
 | |
| %Docstring
 | |
| rollback to save point, the save point is maintained and is "undertied"
 | |
| %End
 | |
| 
 | |
|     void dirtyLastSavePoint();
 | |
| %Docstring
 | |
| dirty save point such that next call to createSavepoint will create a
 | |
| new one
 | |
| %End
 | |
| 
 | |
|     QList< QString > savePoints() const;
 | |
| %Docstring
 | |
| returns savepoints
 | |
| %End
 | |
| 
 | |
|     bool lastSavePointIsDirty() const;
 | |
| %Docstring
 | |
| returns the last created savepoint
 | |
| %End
 | |
| 
 | |
| 
 | |
|   signals:
 | |
| 
 | |
|     void afterRollback();
 | |
| %Docstring
 | |
| Emitted after a rollback
 | |
| %End
 | |
| 
 | |
|     void afterRollbackToSavepoint( const QString &savepointName );
 | |
| %Docstring
 | |
| Emitted after a rollback to savepoint
 | |
| 
 | |
| .. versionadded:: 3.42
 | |
| %End
 | |
| 
 | |
|     void dirtied( const QString &sql, const QString &name );
 | |
| %Docstring
 | |
| Emitted if a sql query is executed and the underlying data is modified
 | |
| %End
 | |
| 
 | |
|   protected:
 | |
| 
 | |
| 
 | |
| };
 | |
| 
 | |
| /************************************************************************
 | |
|  * This file has been generated automatically from                      *
 | |
|  *                                                                      *
 | |
|  * src/core/qgstransaction.h                                            *
 | |
|  *                                                                      *
 | |
|  * Do not edit manually ! Edit header and run scripts/sipify.py again   *
 | |
|  ************************************************************************/
 |