Gibt es eine Möglichkeit, die Attributtabelle eines Layers nach dem Bearbeiten der Tabelle (z. B. Hinzufügen einer Spalte) im DB-Manager zu aktualisieren?
qgis
attribute-table
database
Mondmeer
quelle
quelle
Antworten:
Kurz und bündig:
Change vector datasource
.OK
ohne die Einstellungen zu ändern.Grundsätzlich "ändern" Sie die Vektordatenquelle auf das, was sie bereits war, aber dies zwingt QGIS, die Ebenendefinition neu zu laden.
Getestet in QGIS 2.14 unter Linux Mint 17.2.
quelle
Vorausgesetzt, Sie arbeiten mit einer PostGIS-Datenbank, können Sie die Statistiken der gewünschten Tabelle mithilfe der folgenden
ANALYSE
Funktion aktualisieren : http://www.postgresql.org/docs/current/static/sql-analyze.htmlIn Ihrem Fall können Sie die Anweisung im DB-Manager ausführen, indem Sie auf die im angehängten Bild markierte Schaltfläche klicken und die
ANALYSE
Anweisung im ebenfalls markierten Fenster ausführen . Die Abfrage würde lauten.ANALYSE yourschema.yourtable
Der Analysebefehl sollte Ihre Tabelle aktualisieren, sodass beim erneuten Zugriff auf die Informationen die von Ihnen vorgenommenen Änderungen wiedergegeben werden.quelle
Verstehe ich gut, wenn Sie die Tabelle in QGIS aktualisieren möchten, nachdem eine Änderung an den Spalten vorgenommen wurde?
Soweit ich weiß, kann dies nur durch Schließen und Öffnen des Projekts oder erneutes Hinzufügen der Tabelle geschehen. Solange Sie den Standardstil in der Datenbank gespeichert haben, ist dies möglicherweise der schnellste Weg.
Wenn eine Spalte mit dem Feldrechner hinzugefügt wird, sind die Änderungen sofort sichtbar, aber der DB-Manager bietet mehr Kontrolle bei der Definition des Feldtyps, damit ich verstehe, warum dies möglicherweise keine Lösung ist.
quelle
layer.dataProvider().forceReload()
sollte den Trick machen