[FOSSGIS-Talk] QGIS - Python-Makros, ALKIS-Plugin Datenbankzugriff

sk webentry at web.de
Fr Feb 16 10:05:56 CET 2018


Hallo Bernhard,

genau das war mein Gedanke, einfach QGIS-Projektdatei starten und die 
entsprechende DB wird als Wert gesetzt.
Das ich den Weg direkt über die Registry gegangen bin ist halt dem 
Umstand geschuldet, dass ich vom Programmieren eigentlich null Ahnung
habe. Mit Python versuche ich es seit einiger Zeit in sehr kleinen 
Schritten und im Web habe ich halt diese Variante gefunden.

Hier ist es halt so das es einmal die Nutzer gibt die einmal in der 
Woche oder noch weniger QGIS nutzen oder halt wie ich, der am Tag 
dreimal das Projekt
wechselt und jedes mal wieder schaut wie die entsprechende DB denn heißt.
Wenn ich es direkt mit dem QGIS-Projekt verbinden könnte bräuchte keine 
Rücksicht auf vorhandene Werte genommen werden.

Also hast Du eine eigene Erweiterung die das für dich erledigt, wenn ich 
das richtig verstanden habe.
Wie kann ich Deine Variante umsetzen? Sollte man eine Erweiterung 
erstellen, nachvollziehen kann ich es nicht.

Das Plugin PostNAS-Suche wird auch verwendet, das wäre dann die nächste 
Baustelle gewesen.

Gruß Peter

Am 16.02.2018 um 09:26 schrieb Bernhard Ströbl:
> Hallo Peter,
> was möchtest Du erreichen? Ich vermute mal, dass bei allen die das 
> Projekt öffnen, die Datenbank eingetragen ist. Ob es sinnvoll ist, das 
> direkt in der Registry zu machen, weiß ich nicht, Qt bietet dafür 
> QSettings an, hier ist mein Code (stammt im Prinzip aus dem 
> alkis-Plugin von norbit wird in einem anderen Plugin ausgeführt). Im 
> Moment nimmt das Rücksicht darauf, dass ein Nutzer evtl. etwas anderes 
> eingestellt hat
>
> #setze default-Werte für norbit alkis-Plugin
> host = s.value( "host", "" )
>
> if host == "": # noch nicht gesetzt
>     s.setValue( "host", "DBSERVER" )
>     s.setValue( "port", "5432" )
>     s.setValue( "dbname", "DBNAME" )
>     s.setValue( "uid", "USERID" )
>     s.setValue( "pwd", "PASSWORT" )
>     s.setValue("modellarten",[u'DLKM', u'DKKM1000'])
>
> inwieweit das in OpenProject funktioniert, weiß ich nicht.
> Falls Du auch das Plugin PostNAS-Suche benutzt, wäre der Code 
> folgendermassen:
>
> # PostNAS-Suche:
> s = QtCore.QSettings( "PostNAS", "PostNAS-Suche" )
> host = s.value( "host", "" )
>
> if host == "": # noch nicht gesetzt
>     s.setValue( "host", "DBSERVER" )
>     s.setValue( "port", "5432" )
>     s.setValue( "dbname", "DBNAME" )
>     s.setValue( "uid", "USERID" )
>     s.setValue( "pwd", "PASSWORT" )
>
> Bernhard


Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste