[FOSSGIS-Talk] DB-Funktionen in QGis benutzen

2017-06-27 Thread lars lingner
Hallo,

für die Beschriftung von Objekten nutze ich eine Spalte einer
Postgis-Tabelle. Nun möchte ich den String gerne noch verändern und zwar
mit Hilfe einer eigenen DB-Funktion "labelname". Die Funktion liefert
einen String zurück.

In das Beschriftungsfeld habe ich also labelname(name) eingetragen,
jedoch QGis scheint damit nichts anfangen zu können.
Im Expression Dialog bekomme ich nur "Expression is invalid" als
Rückmeldung.

Muss ich meine DB-Funktion in QGis erst bekannt machen?
Nachdem ich den Ausdruck eingetragen habe, verschwinden leider die
Beschriftungen.

Wie kann ich eine DB-Funktion in QGis-Expressions nutzen?

Bin für jeden Tipp dankbar.


Lars
-- 

OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
5.-7. Juli 2017, Universität Salzburg
http://agit.at

FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
https://europe.foss4g.org/2017/

OSGeo & OSM Subkonferenz auf der FrOSCon
19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
https://www.froscon.de/

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@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste


Re: [FOSSGIS-Talk] DB-Funktionen in QGis benutzen

2017-06-27 Thread Bernhard Ströbl

Hallo Lars,

Am 27.06.2017 um 13:58 schrieb lars lingner:

Hallo,

für die Beschriftung von Objekten nutze ich eine Spalte einer
Postgis-Tabelle. Nun möchte ich den String gerne noch verändern und zwar
mit Hilfe einer eigenen DB-Funktion "labelname". Die Funktion liefert
einen String zurück.

In das Beschriftungsfeld habe ich also labelname(name) eingetragen,
jedoch QGis scheint damit nichts anfangen zu können.
Im Expression Dialog bekomme ich nur "Expression is invalid" als
Rückmeldung.

Muss ich meine DB-Funktion in QGis erst bekannt machen?
Nachdem ich den Ausdruck eingetragen habe, verschwinden leider die
Beschriftungen.

Wie kann ich eine DB-Funktion in QGis-Expressions nutzen?



AFAIK gar nicht, QGIS-Expressions nutzt QGIS-Funktionen; mögliche Lösungen:
1) Du baust Deine Funktion in QGIS nach
2) Du machst eine Sicht in der PostGIS-DB
3) Du lädst eine Abfrage, die die Funktion beinhaltet über den 
DB-Manager als Layer nach QGIS


Bernhard


__ Information from ESET Mail Security, version of virus signature 
database 15651 (20170627) __

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


--

OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
5.-7. Juli 2017, Universität Salzburg
http://agit.at

FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
https://europe.foss4g.org/2017/

OSGeo & OSM Subkonferenz auf der FrOSCon
19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
https://www.froscon.de/

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@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste


Re: [FOSSGIS-Talk] DB-Funktionen in QGis benutzen

2017-06-27 Thread Neumann, Andreas
Hallo Lars, 

Das geht eigentlich nur über Views oder Materialized Views. QGIS kennt
natürlich keine Postgis-Funktionen? 

Ein Workaround wäre das refFunctions Plugin. Das ist jedoch mit
Sicherheit deutlich langsamer als eine DB-View oder Materialized View. 

Wenn du keinen View machen willst - warum verwendest du nicht eine QGIS
Expression? 

Grüsse, 

Andreas 

On 2017-06-27 13:58, lars lingner wrote:

> Hallo,
> 
> für die Beschriftung von Objekten nutze ich eine Spalte einer
> Postgis-Tabelle. Nun möchte ich den String gerne noch verändern und zwar
> mit Hilfe einer eigenen DB-Funktion "labelname". Die Funktion liefert
> einen String zurück.
> 
> In das Beschriftungsfeld habe ich also labelname(name) eingetragen,
> jedoch QGis scheint damit nichts anfangen zu können.
> Im Expression Dialog bekomme ich nur "Expression is invalid" als
> Rückmeldung.
> 
> Muss ich meine DB-Funktion in QGis erst bekannt machen?
> Nachdem ich den Ausdruck eingetragen habe, verschwinden leider die
> Beschriftungen.
> 
> Wie kann ich eine DB-Funktion in QGis-Expressions nutzen?
> 
> Bin für jeden Tipp dankbar.
> 
> Lars
> -- 
> 
> OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
> 5.-7. Juli 2017, Universität Salzburg
> http://agit.at
> 
> FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
> https://europe.foss4g.org/2017/
> 
> OSGeo & OSM Subkonferenz auf der FrOSCon
> 19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
> https://www.froscon.de/
> 
> 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@fossgis.de
> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
-- 

OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
5.-7. Juli 2017, Universität Salzburg
http://agit.at

FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
https://europe.foss4g.org/2017/

OSGeo & OSM Subkonferenz auf der FrOSCon
19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
https://www.froscon.de/

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@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste


Re: [FOSSGIS-Talk] DB-Funktionen in QGis benutzen

2017-06-27 Thread Neumann, Andreas
Sorry - ich hätte noch präziser sein müssen. im refFunctions Plugin ist
es die Funktion dbsql(connectionName,sqlQuery) 

Aber - ohne es zu probieren - nehme ich jetzt schon an, dass es deutlich
langsamer sein wird als eine DB-Sicht. 

Andreas 

On 2017-06-27 14:10, Neumann, Andreas wrote:

> Hallo Lars, 
> 
> Das geht eigentlich nur über Views oder Materialized Views. QGIS kennt
> natürlich keine Postgis-Funktionen? 
> 
> Ein Workaround wäre das refFunctions Plugin. Das ist jedoch mit
> Sicherheit deutlich langsamer als eine DB-View oder Materialized View. 
> 
> Wenn du keinen View machen willst - warum verwendest du nicht eine QGIS
> Expression? 
> 
> Grüsse, 
> 
> Andreas 
> 
> On 2017-06-27 13:58, lars lingner wrote:
> 
>> Hallo,
>> 
>> für die Beschriftung von Objekten nutze ich eine Spalte einer
>> Postgis-Tabelle. Nun möchte ich den String gerne noch verändern und zwar
>> mit Hilfe einer eigenen DB-Funktion "labelname". Die Funktion liefert
>> einen String zurück.
>> 
>> In das Beschriftungsfeld habe ich also labelname(name) eingetragen,
>> jedoch QGis scheint damit nichts anfangen zu können.
>> Im Expression Dialog bekomme ich nur "Expression is invalid" als
>> Rückmeldung.
>> 
>> Muss ich meine DB-Funktion in QGis erst bekannt machen?
>> Nachdem ich den Ausdruck eingetragen habe, verschwinden leider die
>> Beschriftungen.
>> 
>> Wie kann ich eine DB-Funktion in QGis-Expressions nutzen?
>> 
>> Bin für jeden Tipp dankbar.
>> 
>> Lars
>> -- 
>> 
>> OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
>> 5.-7. Juli 2017, Universität Salzburg
>> http://agit.at
>> 
>> FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
>> https://europe.foss4g.org/2017/
>> 
>> OSGeo & OSM Subkonferenz auf der FrOSCon
>> 19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
>> https://www.froscon.de/
>> 
>> 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@fossgis.de
>> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
> -- 
> 
> OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
> 5.-7. Juli 2017, Universität Salzburg
> http://agit.at
> 
> FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
> https://europe.foss4g.org/2017/
> 
> OSGeo & OSM Subkonferenz auf der FrOSCon
> 19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
> https://www.froscon.de/
> 
> 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@fossgis.de
> https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste
-- 

OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
5.-7. Juli 2017, Universität Salzburg
http://agit.at

FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
https://europe.foss4g.org/2017/

OSGeo & OSM Subkonferenz auf der FrOSCon
19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
https://www.froscon.de/

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@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste


Re: [FOSSGIS-Talk] DB-Funktionen in QGis benutzen

2017-06-27 Thread lars lingner
Hallo,

und vielen Dank Andreas und Bernhard für eure Antworten. Das
refFunctions-Plugin werde ich mir mal ansehen, sprengt aber jetzt meine
Zeit.

Auf einen View wollte ich verzichten, da die Tabellen regelmäßig
aktualisiert werden.

QGis-Expression ist in dem Fall nicht praktikabel, weil die Ersetzungen
in allen QGis-Projekten identisch sein müssen. Und jeder User kann auch
ein neues Projekt anlegen, damit ggf Fehler in die Ersetzungen einbauen.

Was allerdings funktioniert ist ein Querylayer. Mit

SELECT *, labelname(name) as lname FROM table;

...bekomme ich das gewünschte Ergebnis, dann kann ich lname für die
Beschriftung auswählen. Leider ist das Anlegen eines Querylayers
umständlicher als einfach eine Tabelle zu laden.

Es wird wohl tatsächlich auf postprocessing hinauslaufen.


Viele Grüße

Lars
-- 

OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
5.-7. Juli 2017, Universität Salzburg
http://agit.at

FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
https://europe.foss4g.org/2017/

OSGeo & OSM Subkonferenz auf der FrOSCon
19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
https://www.froscon.de/

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@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste


Re: [FOSSGIS-Talk] DB-Funktionen in QGis benutzen

2017-06-27 Thread Bernhard Ströbl

Hallo Lars,
unten noch einige weiterführende Gedanken

Am 27.06.2017 um 14:55 schrieb lars lingner:

Hallo,

und vielen Dank Andreas und Bernhard für eure Antworten. Das
refFunctions-Plugin werde ich mir mal ansehen, sprengt aber jetzt meine
Zeit.

Auf einen View wollte ich verzichten, da die Tabellen regelmäßig
aktualisiert werden.


aber der View zeigt doch immer den aktuellen Inhalt der Tabellen. Wenn 
es darum geht, dort regelmäßig neue Daten einzuspielen, würde ich die 
Daten in eine Dritttabelle einlesen, und dann von dort in die 
Zieltabelle zu schreiben, wenn Du sie nicht direkt in die Zieltabelle 
schreiben kannst. Also nicht jedes mal die Zieltabelle löschen und neu 
anlegen, damit behältst Du den View.




QGis-Expression ist in dem Fall nicht praktikabel, weil die Ersetzungen
in allen QGis-Projekten identisch sein müssen. Und jeder User kann auch
ein neues Projekt anlegen, damit ggf Fehler in die Ersetzungen einbauen.

Was allerdings funktioniert ist ein Querylayer. Mit

SELECT *, labelname(name) as lname FROM table;

...bekomme ich das gewünschte Ergebnis, dann kann ich lname für die
Beschriftung auswählen. Leider ist das Anlegen eines Querylayers
umständlicher als einfach eine Tabelle zu laden.


Du kannst den QueryLayer als Layerdefinitionsdatei speichern und so 
verteilen (Achtung: Nutzername und Passwort werden darin gespeichert; 
Lösung: nur-Lese-Nutzer einrichten oder die Authentifizierung nutzen).


Es wird wohl tatsächlich auf postprocessing hinauslaufen.


Viele Grüße

Lars



Bernhard


__ Information from ESET Mail Security, version of virus signature 
database 15652 (20170627) __

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


--

OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
5.-7. Juli 2017, Universität Salzburg
http://agit.at

FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
https://europe.foss4g.org/2017/

OSGeo & OSM Subkonferenz auf der FrOSCon
19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
https://www.froscon.de/

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@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste


Re: [FOSSGIS-Talk] DB-Funktionen in QGis benutzen

2017-06-27 Thread Jürgen E . Fischer
Moin Lars,

On Tue, 27. Jun 2017 at 14:55:48 +0200, lars lingner wrote:
> Was allerdings funktioniert ist ein Querylayer. Mit
> 
> SELECT *, labelname(name) as lname FROM table;

Was auch den Vorteil hat, dass das jeder darf - und nachher nicht bei anderen
Dingen (Tabelle droppen oder umbenennen) im Wege steht...


Jürgen

-- 
Jürgen E. Fischer   norBIT GmbH Tel. +49-4931-918175-31
Dipl.-Inf. (FH) Rheinstraße 13  Fax. +49-4931-918175-50
Software Engineer   D-26506 Norden http://www.norbit.de
-- nächster Teil --
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : signature.asc
Dateityp: application/pgp-signature
Dateigröße  : 827 bytes
Beschreibung: nicht verfügbar
URL : 

-- 

OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
5.-7. Juli 2017, Universität Salzburg
http://agit.at

FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
https://europe.foss4g.org/2017/

OSGeo & OSM Subkonferenz auf der FrOSCon
19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
https://www.froscon.de/

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@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste


Re: [FOSSGIS-Talk] DB-Funktionen in QGis benutzen

2017-06-27 Thread lars lingner
Hallo,

Am 27.06.2017 um 15:06 schrieb Bernhard Ströbl:
[...]
>> Was allerdings funktioniert ist ein Querylayer. Mit
>>
>> SELECT *, labelname(name) as lname FROM table;
>>
>> ...bekomme ich das gewünschte Ergebnis, dann kann ich lname für die
>> Beschriftung auswählen. Leider ist das Anlegen eines Querylayers
>> umständlicher als einfach eine Tabelle zu laden.
> 
> Du kannst den QueryLayer als Layerdefinitionsdatei speichern und so
> verteilen (Achtung: Nutzername und Passwort werden darin gespeichert;
> Lösung: nur-Lese-Nutzer einrichten oder die Authentifizierung nutzen).

Das wäre in der Tat für einen Nutzer einfach umzusetzen. Einfach die
Layerdatei importieren. DANKE!

Wegen User/Password: Ich stelle gerade um auf .pg_service.conf so dass
in QGis-Projekten überhaupt keine Zugangsdaten mehr gespeichert werden.
Außerdem erledigen sich damit Probleme von unterschiedlichen Ports.


Viele Grüße aus Berlin

Lars

-- 

OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
5.-7. Juli 2017, Universität Salzburg
http://agit.at

FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
https://europe.foss4g.org/2017/

OSGeo & OSM Subkonferenz auf der FrOSCon
19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
https://www.froscon.de/

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@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste


Re: [FOSSGIS-Talk] DB-Funktionen in QGis benutzen

2017-06-27 Thread Walter Nordmann

Hi Lars,

ja, beim Beschriften gehen eigene PL/SQL-Funktionen leider nicht - 
könnte ich aber auch gebrauchen :(


Dagegen geht es problemlos in Abfragen. Das erscheint mir einfach nicht 
konsequent. Da funzt es und dort nicht.


Gruss
walter

ps: Zugriff auf den Hstore mit hstore->'key' macht die selben Probleme. 
Query ja, Beschriftung nein.


--

OSGeo Park & OSGeo Day auf der AGIT 2017 in Salzburg
5.-7. Juli 2017, Universität Salzburg
http://agit.at

FOSS4G Europe 2017 Paris Marne-la-Vallée, 18.-22. Juli 2017
https://europe.foss4g.org/2017/

OSGeo & OSM Subkonferenz auf der FrOSCon
19.-20. August 2017, Hochschule Bonn-Rhein-Sieg Sankt Augustin
https://www.froscon.de/

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@fossgis.de
https://lists.fossgis.de/mailman/listinfo/fossgis-talk-liste