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

Bernhard Ströbl bernhard.stroebl at jena.de
Fr Feb 16 09:26:16 CET 2018


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

Am 16.02.2018 um 09:04 schrieb sk:
> Hallo an alle,
> 
> es geht mal wieder um die Thematik ALKIS-Erweiterung und arbeiten mit 
> diversen ALKIS-Datenbanken.
> Ich habe es geschaft ein Pythonscript zu erstellen mit dem ich auf den 
> Eintrag in der Windowsregistrie
> zugreifen und ändern kann.
> Jetzt war meine Idee dieses Pythonscript in jede QGIS-Projektdatei 
> einzubinden.
> Es gibt ja unter den Projekteigenschaften den Punkt 'Python-Makros' wo 
> bereits eine Funktion angedeutet
> ist 'def openProjekt():'.
> Folgende Fragestellungen ergeben sich jetzt aber.
> 1. Im Pythonscript verwende ich '_winreg' das ich mit pip installierte 
> habe. Damit dies auf den anderen PC's
> auch funktioniert müsste ich dort ja ebenfalls '_winreg' installieren.
> Gäbe es eine Möglichkeit das anders zu lösen.
> 2. Ich habe in einem Testprojekt mal diesen Code unter der Funktion 'def 
> openProjekt():' eingefügt.
> Wenn ich jetzt dieses Projekt starte kommt eine 
> 'Sicherheitsmeldung:Projektmakros wurden abgeschaltet' und
> das QGIS-Projekt lässt sich nicht starten.
> Was muss man da noch beachten, und ich weiß auch nicht ob der Code 
> richtig eingefügt wurde. Ich habe einfach ab
>  >>from winreg import *<<
> unter
>  >>def openProjekt():<<
> eingefügt.
> 
> 
> Hier mal der Code:
> 
> #!/usr/bin/env python
> 
> from winreg import *
> 
> aReg = ConnectRegistry(None,HKEY_CURRENT_USER)
> 
> aKey = OpenKey(aReg, r"Software\\norBIT\\norGIS-ALKIS-Erweiterung")
> #CreateKey(aKey, "Test")
> #DeleteKey(aKey, "a")
> 
> # Zugriff auf den Schluessel dbname
> try:
>      aKey = OpenKey(aReg, r"Software\\norBIT\\norGIS-ALKIS-Erweiterung", 
> 0, KEY_WRITE)
>      SetValueEx(aKey,"dbname",0, REG_SZ, r"HIER STEHT DER DATENBANKNAME")
> except:
>      print("PLZ Run adminstore !")
> 
> 
> Gruß Peter



__________ Information from ESET Mail Security, version of virus signature database 16913 (20180216) __________

The message was checked by ESET Mail Security.
http://www.eset.com




Mehr Informationen über die Mailingliste FOSSGIS-Talk-Liste