[FOSSGIS-Talk] QGIS - Python-Makros, ALKIS-Plugin Datenbankzugriff
Bernhard Ströbl
bernhard.stroebl at jena.de
Fr Feb 16 10:42:38 CET 2018
Hallo Günter,
naja, das Plugin speichert die Einstellungen halt in den QSettings (ist
je nach Plattform unterschiedlich, in Windows die Registry auf Linux in
$HOME/.config, Mac weiß ich nicht). Die Idee ist, dass der Nutzer die
konfigurierte DB immer hat, unabhängig davon, welches Projekt er gerade
offen hat, genauso wie die konfigurierten WMS-Verbindungen. Evtl. wäre
es hübsch, wenn man im Plugin ähnlich wie bei den WMS oder
PostGIS-Verbindungen mehrere DBs konfigurieren und dann einfach wechseln
könnte.
Bernhard
Am 16.02.2018 um 10:24 schrieb G. Wagner, Wagner-IT:
> Hallo Bernhard, hallo Peter,
>
> ich klink mich hier mal ein.
>
> Habe das Problem mit den wechselnden Projekten / Datenbanken auch ständig.
>
> Ich leite diese Mails mal an die PostNAS-Suite-Gruppe weiter.
> Vielleicht ist eine allgemeine Lösung möglich. Ich stecke da nicht tief genug drin, verstehe aber nicht, warum die Datenbankverbindung nicht auch im QGIS-File steht. Für die einzelnen Layer sind die Infos ja eh dort vorhanden.
>
> Viele Grüße
>
> Günter
>
>
> -----Ursprüngliche Nachricht-----
> Von: FOSSGIS-Talk-Liste [mailto:fossgis-talk-liste-bounces at fossgis.de] Im Auftrag von Bernhard Ströbl
> Gesendet: Freitag, 16. Februar 2018 10:13
> An: fossgis-talk-liste at fossgis.de
> Betreff: Re: [FOSSGIS-Talk] QGIS - Python-Makros, ALKIS-Plugin Datenbankzugriff
>
> Hallo Peter,
> dann solltest Du es mal in openProject() versuchen einfach die if-Bedingung (if host == "") rauslassen
>
> Ich habe das in einer Erweiterung drin, die was anderes macht (allerdings schon was mit Flurstücken), aber da war für mich halt eine Möglichkeit, den Wert zu setzen, so dass alle Nutzer das eingetragen haben. Manche ändern das aber dann auf ihren persönlichen DB-Zugriff (mit Eigentümerauskunft), weshalb ich immer prüfen muß, ob schon was eingetragen ist. Bei uns gibt es aber auch nur eine ALKIS-DB
>
> Berichte doch bitte, ob Du mit projectOpen erfolgreich warst.
>
> Grüße
> Bernhard
>
> Am 16.02.2018 um 10:05 schrieb sk:
>> 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
>
>
>
> __________ Information from ESET Mail Security, version of virus signature database 16913 (20180216) __________
>
> The message was checked by ESET Mail Security.
> http://www.eset.com
>
>
> --
> ....................................................................
> FOSSGIS 2018, die Konferenz für Open Source GIS mit OpenData und OpenStreetMap in Bonn!
> 21.-24. März 2018 an der Universität Bonn https://fossgis-konferenz.de/2018/
> 18.-25. März OSGeo Code Sprint im BaseCamp Bonn
> https://wiki.osgeo.org/wiki/OSGeo_Code_Sprint_2018
>
> FOSSGIS Veranstaltungen 2018
> https://www.fossgis.de/node/306
>
> FOSSGIS e.V, der Verein zur Förderung von Freier Software aus dem GIS-Bereich und Freier Geodaten!
> https://www.fossgis.de/ https://twitter.com/fossgis_eV
>
> ____________________________________________________________________
> FOSSGIS-Talk-Liste mailing list
> FOSSGIS-Talk-Liste at fossgis.de
> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
>
>
>
>
> __________ Information from ESET Mail Security, version of virus signature database 16913 (20180216) __________
>
> The message was checked by ESET Mail Security.
> http://www.eset.com
>
>
__________ Information from ESET Mail Security, version of virus signature database 16914 (20180216) __________
The message was checked by ESET Mail Security.
http://www.eset.com
Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste