in QGIS können die Verbindungsparameter für PostGIS/PostgreSQL Layer mittels
Code: Alles auswählen
print iface.activeLayer().dataProvider().dataSourceUri()
Code: Alles auswählen
dbname='test_db' host=localhost port=5432 user='postgres' password='postgres' sslmode=require key='gid' table="public"."gebaeude" (geom) sql=
- * Die Bezeichnungen für das Schema und die Tabelle oder View sind unter "table" zusammengefasst. Hier ist eine Trennung, bevorzugt in "schema" und "relation", erforderlich.
* Die Bezeichnung der Spalte mit der Geometrie (z.B. "geom") hat keinen möglichen Schlüssel, sondern befindet sich in einer Klammer.
* Unter "sql" sind Objektfilter gespeichert, die in QGIS gesetzt werden können. Hier kann alles (z.B. sql="bauhoehe" >= 10) oder nichts stehen.
Code: Alles auswählen
dbparams = iface.activeLayer().dataProvider().dataSourceUri()
dbparams = dbparams.replace('"', '')
dbparams = dbparams.replace("'", '')
Code: Alles auswählen
dbparams = dbparams[:-12]
dbparams = dict((item.split('=') for item in dbparams.split(' ')))
Code: Alles auswählen
(u'port', u'5432')
(u'host', u'localhost')
(u'user', u'postgres')
(u'key', u'gid')
(u'sslmode', u'require')
(u'table', u'public.gebaeude')
(u'password', u'postgres')
(u'dbname', u'test_db')
Vielen Dank!