<html><head>

<meta name="Generator" content="Novell Groupwise Client (Version 14.2.1  Build: 124595)">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body style="font: 10pt/normal Segoe UI; font-size-adjust: none; font-stretch: normal;"><div class="GroupWiseMessageBody" id="GroupWiseSection_1558943633000_Kai.Behncke@ibbenbueren.de_A4138AB005DF00008D73746134313865_"><div>Dear users,</div><div><br></div><div>I try to save attributes in PostgreSQL/PostGIS<br>by a Python Script.</div><div><br></div><div>So far I get a connection and I can set an additional attribute field that I can fill with a value (it seems so).<br>But how can I save these values?</div><div><br></div><div><br>My script looks like:</div><div><br></div><div>from qgis.core import QgsApplication,QgsVectorLayer,QgsVectorDataProvider,QgsDataSourceUri<br>from PyQt5.QtCore import *<br>from qgis.PyQt.QtSql import QSqlDatabase, QSqlQuery</div><div><br></div><div>uri2 = QgsDataSourceUri()<br>uri2.setConnection("server", "5432", "table", "user", "pw")<br>            #set database schema, table name, geometry column and optionaly subset(WHERE clause)<br>uri2.setDataSource ("public", "table", "geom")<br>            # Defining the layer name and layer type for QGIS?<br>vlayer2=QgsVectorLayer (uri2.uri() ,"ww_manhole","postgres")<br>print (vlayer2.isValid())<br>if (vlayer2.startEditing()):<br>    print ("ok startEditing")<br>else:<br>    print("not ok")<br> <br>my_field_name2 = 'new_field'<br>if (vlayer2.addAttribute(QgsField(my_field_name2, QVariant.String))):<br>    print ("ok AddAttribute")<br>else:<br>    print ("not ok2")</div><div><br></div><div>my_field_value2 = 'Hello world!'<br>for f in vlayer2.getFeatures():<br>    print ("ok getFeature")<br>    f[my_field_name2] = my_field_value2<br>    if (vlayer2.updateFeature(f)):<br>        print ("ok updatefeature")<br>    else:<br>        print ("not ok updatefeature")</div><div><br></div><div>if (vlayer2.updateFields()):<br>        print ("ok updateFields") <br>   else:<br>        print ("not ok updateFields")<br>if (vlayer2.commitChanges()):<br>    print ("ok commitChanges")<br>else:<br>    print("not ok commitChanges")</div><div><br></div><div><br></div><div><br></div><div>The output shows that neither<br>updateFields works not commitChanges??<br>Could anybode help please?</div><div><br></div><div>Thank you very much, Kai</div><div><br></div><div>The output:</div><div><br></div><div>True<br>ok startEditing<br>ok AddAttribute<br>ok getFeature<br>ok updatefeature<br>not ok updateFields<br>not ok commitChanges<br></div><span id="GWSignatureSent" style="padding-right: 0px; padding-left: 0px; margin-bottom: 5px; display: block;"><span style="display: block;"><br><span style="font-size: 10pt; display: inline-block; -ms-word-wrap: normal;">
<div><!--GWSignatureRecordId 5C5442A6.STADT-IBB-DOM.STADT-IBB-PO.100.1646D74.1.7B.1 GWSignatureRecordId--><div>Mit freundlichen Grüßen<br>Im Auftrag</div><div><br></div><div>Kai Behncke<br>Geoinformation<br>Tel.: +49 5451 931-7125</div><div><br></div><div>E-Mail: <a href="mailto:kai.behncke@ibbenbueren.de">kai.behncke@ibbenbueren.de</a> </div><div><br></div><div>Rathaus II<br>Roncallistraße  3-5<br>1. Stock, Raum 105<br>49477 Ibbenbüren</div><br></div></span></span></span><span style="margin-bottom: 5px; display: block;"><br></span></div></body></html>