{"id":12888,"date":"2022-07-26T07:16:00","date_gmt":"2022-07-26T05:16:00","guid":{"rendered":"https:\/\/www.opengis.ch\/?p=12888"},"modified":"2022-10-13T09:05:08","modified_gmt":"2022-10-13T07:05:08","slug":"high-efficiency-with-buffered-transactional-editing-in-qgis","status":"publish","type":"post","link":"https:\/\/www.opengis.ch\/fr\/2022\/07\/26\/high-efficiency-with-buffered-transactional-editing-in-qgis\/","title":{"rendered":"High Efficiency with Buffered Transactional Editing in QGIS"},"content":{"rendered":"\n<p><strong>Tired of start\/stop editing for every single layer in your project with mixed data sources?<br>Starting from version 3.26, QGIS has a new transaction mode called \u00ab\u00a0Buffered Transaction Groups\u00a0\u00bb.<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"556\" height=\"374\" src=\"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/06\/150740898-3f5c70e8-d441-441a-bc42-c458605f3bc8.png?resize=556%2C374&#038;ssl=1\" alt=\"\" class=\"wp-image-12896\" srcset=\"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/06\/150740898-3f5c70e8-d441-441a-bc42-c458605f3bc8.png?w=556&amp;ssl=1 556w, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/06\/150740898-3f5c70e8-d441-441a-bc42-c458605f3bc8.png?resize=300%2C202&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/06\/150740898-3f5c70e8-d441-441a-bc42-c458605f3bc8.png?resize=190%2C127&amp;ssl=1 190w, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/06\/150740898-3f5c70e8-d441-441a-bc42-c458605f3bc8.png?resize=392%2C264&amp;ssl=1 392w\" sizes=\"auto, (max-width: 556px) 100vw, 556px\" \/><\/figure>\n\n\n\n<p>Within this mode, <strong>all layers<\/strong> which are not read-only are put in one \u00ab\u00a0transaction group\u00a0\u00bb and <strong>handled together<\/strong> when the actions \u00ab\u00a0Toggle Editing\u00a0\u00bb or \u00ab\u00a0Save Layer Edits\u00a0\u00bb are activated. It doesn&rsquo;t matter if the layers come from different providers like GeoPackage, PostgreSQL or Shapefile. Edits are buffered locally and saved within one single transaction on all layers per provider. With this, you can store all edited layers with a single click. And in comparison to the well-known \u00ab\u00a0Automatic Transaction Groups\u00a0\u00bb mode you have better performance during editing and fewer problems with locking of the database when multiple users edit the same table in parallel.<\/p>\n\n\n\n<p>To try it out; go to <strong><em>Project -> Properties -> Data Sources -> Transaction mode<\/em><\/strong><\/p>\n\n\n\n<p>Enjoy and let us know what you think!<\/p>\n\n\n\n<h5 class=\"wp-block-heading\">Limitations:<\/h5>\n\n\n\n<p>In databases, transactions are atomic. That is, the data can be completely and correctly written, or it will be completely rolled back. With buffered transactions, QGIS tries to do the same but has less control. When writing to different providers it could happen that, if an error occurs when writing to PostgreSQL, but some data were already written in a Shapefile the rollback will be only partial. This only applies to data from different data sources.<\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><em>This feature was sponsored by Canton Glarus.<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Tired of start\/stop editing for every single layer in your project with mixed data sources?Starting from version 3.26, QGIS has a new transaction mode called \u00ab\u00a0Buffered Transaction Groups\u00a0\u00bb. Within this mode, all layers which are not read-only are put in one \u00ab\u00a0transaction group\u00a0\u00bb and handled together when the actions \u00ab\u00a0Toggle [&hellip;]<\/p>\n","protected":false},"author":37,"featured_media":12896,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_themeisle_gutenberg_block_has_review":false,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[161],"tags":[125],"class_list":["post-12888","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorised","tag-qgis-org"],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2022\/06\/150740898-3f5c70e8-d441-441a-bc42-c458605f3bc8.png?fit=556%2C374&ssl=1","jetpack-related-posts":[{"id":3911,"url":"https:\/\/www.opengis.ch\/fr\/2018\/05\/28\/how-to-filter-features-in-qgis-using-the-graphical-processing-modeler\/","url_meta":{"origin":12888,"position":0},"title":"How to filter features in QGIS using the graphical processing modeler","author":"Matthias Kuhn","date":"28 mai 2018","format":false,"excerpt":"This article describes a new algorithm for the processing modeler called feature filter algorithm. If you are already familiar with ETL concepts and the graphical modeler, you can directly jump to the section the feature filter algorithm. Building workflows for repetitive tasks When building workflows for simple or complex geodata\u2026","rel":"","context":"Dans &quot;Expressions&quot;","block_context":{"text":"Expressions","link":"https:\/\/www.opengis.ch\/fr\/category\/programming\/expressions\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2018\/05\/modeller.png?fit=1016%2C497&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2018\/05\/modeller.png?fit=1016%2C497&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2018\/05\/modeller.png?fit=1016%2C497&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2018\/05\/modeller.png?fit=1016%2C497&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":1776,"url":"https:\/\/www.opengis.ch\/fr\/2015\/08\/12\/with-edit-layer\/","url_meta":{"origin":12888,"position":1},"title":"Syntactic sugar for PyQGIS","author":"Matthias Kuhn","date":"12 ao\u00fbt 2015","format":false,"excerpt":"PyQGIS now supports a nice new addition for handling edit sessions in layers. This way, changes get committed automatically at the end of a successful (python) edit session. with edit(layer): do your changes here()","rel":"","context":"Dans &quot;Programming&quot;","block_context":{"text":"Programming","link":"https:\/\/www.opengis.ch\/fr\/category\/programming\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":4180,"url":"https:\/\/www.opengis.ch\/fr\/2018\/09\/11\/qgis-speaks-a-lot-of-languages\/","url_meta":{"origin":12888,"position":2},"title":"QGIS speaks a lot of languages","author":"Dave Signer","date":"11 septembre 2018","format":false,"excerpt":"QGIS is a real cosmopolitan. Born in Alaska sixteen years ago, it has spread all over the world since. Thanks to its open source mentality, it finds not only in economically strong countries big usergroups. No question, that beside all the developers, there is a bunch of brave translators giving\u2026","rel":"","context":"Dans &quot;C++&quot;","block_context":{"text":"C++","link":"https:\/\/www.opengis.ch\/fr\/category\/programming\/cpp\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2018\/09\/trans_linguist_translation-2.png?fit=975%2C358&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2018\/09\/trans_linguist_translation-2.png?fit=975%2C358&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2018\/09\/trans_linguist_translation-2.png?fit=975%2C358&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2018\/09\/trans_linguist_translation-2.png?fit=975%2C358&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":13880,"url":"https:\/\/www.opengis.ch\/fr\/2023\/09\/05\/analyzing-and-visualizing-large-scale-fire-events-using-qgis-processing-with-st-dbscan\/","url_meta":{"origin":12888,"position":3},"title":"Analyzing and visualizing large-scale fire events using QGIS processing with ST-DBSCAN","author":"Mathieu","date":"5 septembre 2023","format":false,"excerpt":"A while back, one of our ninjas added a new algorithm in QGIS\u2019 processing toolbox named ST-DBSCAN Clustering, short for spatio temporal density-based spatial clustering of applications with noise. The algorithm regroups features falling within a user-defined maximum distance and time duration values. This post will walk you through one\u2026","rel":"","context":"Dans &quot;GIS&quot;","block_context":{"text":"GIS","link":"https:\/\/www.opengis.ch\/fr\/category\/gis\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2023\/09\/96.png?fit=755%2C566&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2023\/09\/96.png?fit=755%2C566&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2023\/09\/96.png?fit=755%2C566&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2023\/09\/96.png?fit=755%2C566&ssl=1&resize=700%2C400 2x"},"classes":[]},{"id":11521,"url":"https:\/\/www.opengis.ch\/fr\/2020\/06\/24\/generate-dxf-on-qgis-server\/","url_meta":{"origin":12888,"position":4},"title":"Generate DXF on QGIS server","author":"Matthias Kuhn","date":"24 juin 2020","format":false,"excerpt":"Everyone knows QGIS is on the desktop and mobile devices. Many know QGIS is on the web with QGIS server through OGC services. Some know QGIS server has its own extension to generate PDFs. But did you know that QGIS server can also produce DXF files? DXF DXF files are\u2026","rel":"","context":"Dans &quot;Uncategorised&quot;","block_context":{"text":"Uncategorised","link":"https:\/\/www.opengis.ch\/fr\/category\/uncategorised\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2020\/06\/image.png?fit=1200%2C673&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2020\/06\/image.png?fit=1200%2C673&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2020\/06\/image.png?fit=1200%2C673&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2020\/06\/image.png?fit=1200%2C673&ssl=1&resize=700%2C400 2x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2020\/06\/image.png?fit=1200%2C673&ssl=1&resize=1050%2C600 3x"},"classes":[]},{"id":15450,"url":"https:\/\/www.opengis.ch\/fr\/2023\/02\/14\/postgis-with-qgis\/","url_meta":{"origin":12888,"position":5},"title":"PostGIS with QGIS (on request)","author":"Marco Bernasocchi","date":"14 f\u00e9vrier 2023","format":false,"excerpt":"The course is aimed at PostgreSQL users who want to expand their knowledge. Various approaches will be explained to optimize the use of their databases and practiced through different examples.","rel":"","context":"Dans &quot;Courses&quot;","block_context":{"text":"Courses","link":"https:\/\/www.opengis.ch\/fr\/category\/courses\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/08\/DALL%C2%B7E-2024-08-12-15.09.25-A-professional-and-educational-themed-image-for-a-PostgreSQL-administration-course.-The-image-should-feature-a-laptop-displaying-a-PostgreSQL-interfac.webp?fit=1024%2C1024&ssl=1&resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/08\/DALL%C2%B7E-2024-08-12-15.09.25-A-professional-and-educational-themed-image-for-a-PostgreSQL-administration-course.-The-image-should-feature-a-laptop-displaying-a-PostgreSQL-interfac.webp?fit=1024%2C1024&ssl=1&resize=350%2C200 1x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/08\/DALL%C2%B7E-2024-08-12-15.09.25-A-professional-and-educational-themed-image-for-a-PostgreSQL-administration-course.-The-image-should-feature-a-laptop-displaying-a-PostgreSQL-interfac.webp?fit=1024%2C1024&ssl=1&resize=525%2C300 1.5x, https:\/\/i0.wp.com\/www.opengis.ch\/wp-content\/uploads\/2024\/08\/DALL%C2%B7E-2024-08-12-15.09.25-A-professional-and-educational-themed-image-for-a-PostgreSQL-administration-course.-The-image-should-feature-a-laptop-displaying-a-PostgreSQL-interfac.webp?fit=1024%2C1024&ssl=1&resize=700%2C400 2x"},"classes":[]}],"jetpack_shortlink":"https:\/\/wp.me\/pbdBtI-3lS","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/posts\/12888","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/users\/37"}],"replies":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/comments?post=12888"}],"version-history":[{"count":14,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/posts\/12888\/revisions"}],"predecessor-version":[{"id":13034,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/posts\/12888\/revisions\/13034"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/media\/12896"}],"wp:attachment":[{"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/media?parent=12888"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/categories?post=12888"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.opengis.ch\/fr\/wp-json\/wp\/v2\/tags?post=12888"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}