Open ralfkoenig opened 4 years ago
Hallo Herr König, zunächst mal vielen Dank für die genauen Fehlerbeschreibungen. Aus
compiled by Visual C++
entnehme ich, dass Ihr Postgres-Server auf Windows läuft. Ich weiß, dass da manchmal Probleme auftreten, weiß aber weder, ob die PgSql-Syntax dort anders ist als unter Linux noch kann ich es testen. Der erste Fehler zeigt ein Problem mit doppelten und einfachen Anführungszeichen auf. Doppelte Anführungszeichen umschliessen hier einen Feldnamen mit Großschreibung "Code"
, während der Server dies offenbar als String interpretiert, obwohl Strings mit einfachen Anführungszeichen eingeschlossen werden. Ihr Fix sollte das Problem beheben, besser wäre natürlich, dass das Skript unverändert funktioniert. Ich vermute hier irgendeine Fehlinterpretation der einfachen und doppelten Anführungszeichen, evtl. auch ein Zeichenkodierungsproblem, ebenso wie bei den Fehlern mit den Stilen.
Wie führen Sie die SQL-Skripte aus? Die Skripte sind UTF-8 kodiert, Ihre Datenbank sollte das auch sein.
auf github finden Sie das Schulungspaper der letzten FOSSGIS, das eine Einführung enthält.
Sehr geehrter Herr Stroebl, vielen Dank für die Hinweise.
Die DB habe ich als UTF-8 eingerichtet. Insofern dürfte es von dieser Seite her kein Problem geben.
Die o.g. Zeile 53095 habe ich auf
<property key="labeling/fieldName" value="CASE WHEN "zweckbestimmung" = 1000 THEN "P
" ELSE "
	" CASE WHEN "zweckbestimmung" = 1200 THEN "V
	" ELSE "
		" CASE WHEN "zweckbestimmung" = 1300 THEN "RF
		" ELSE "
			" CASE WHEN "zweckbestimmung" = 1400 THEN "R
			" ELSE "
				" CASE WHEN "zweckbestimmung" = 1500 THEN "FW
				ELSE
					" CASE WHEN "zweckbestimmung" = 1600 THEN "AF
					" ELSE "
						" CASE WHEN "zweckbestimmung" = 1700 THEN "Br
						" ELSE "
							" CASE WHEN "zweckbestimmung" = 1800 THEN "D
							" ELSE "
								" CASE WHEN "zweckbestimmung" IN (2000,2200) THEN "Anschlussflaeche
								" ELSE "
									" CASE WHEN "zweckbestimmung" = 2100 THEN "Platz
									" END "
								" END "
							" END "
						" END "
					" END "
				" END "
			" END "
		" END "
	" END 
" END "/>
geändert. Zumindest lief das Script dann reibungslos durch. Ich werde mir bei näherer Beschäftigung mit Ihrem vorgenannten Tutorial ansehen, ob die daraus entstandene Symbologie plausibel erscheint und mich dann ggf. gesondert melden.
Viele Grüße
Hallo! Die genannten Fehler stammen alle aus dem Layerstil zu BP_Verkehr.BP_VerkehrsFlaecheBesondererZweckbestimmungFlaeche
ERROR: FEHLER: Syntaxfehler bei »P« LINE 53095: ...SE WHEN "zweckbestimmung" = 1000 THEN 'P'
&#x..
Hier geht es um Strings, die in einfache Anführungszeichen zu setzten sind. Entsprechend der Syntax der anderen Stile benötigen diese als escape character ein zusätzliches einfaches Anführungszeichen, also:
CASE WHEN "zweckbestimmung" = 1000 THEN ''P''

und so weiter.
P.S. Die drei erstgenannten Fehler betreffen wie schon gesagt Feldnamen und haben daher die einfachen Anführungszeichen zu viel. Beste Grüße
Sehr geehrter Herr Stroebl,
ich habe zur Ersteinrichtung einer Datenbank für die Stadtplanung unter PostgreSQL 11.6, compiled by Visual C++ build 1914, 64-bit
POSTGIS="2.5.3 r17699" [EXTENSION] PGSQL="110" GEOS="3.7.2-CAPI-1.11.0 3.7.2" PROJ="Rel. 4.9.3, 15 August 2016" GDAL="GDAL 2.2.4, released 2018/03/19" LIBXML="2.7.8" LIBJSON="0.12" LIBPROTOBUF="1.2.1" RASTER
das Script DB_User.sql problemlos ausgeführt.
Dann jeweils versucht, Ihr XP_Basisschema.sql auszuführen. Dieses endete jedoch für Zeile 784 mit folgender Fehlermeldung:
(Ich habe diese Zeile testweise geändert in ...'1000000'...)
Dann habe ich nach der problemlosen Ausführung der übrigen sql-Scripte das Script layer_styles_QGIS.sql ausgeführt.
Dieses endete mit verschiedenen Fehlermeldungen: (Die danach folgenden Fehlermeldungen wurden nach beschriebener Korrektur erzeugt)
(geändert in ="P & R")
(geändert in ="Anschlussflaeche")
(geändert in ="Platz")
Haben Sie eine Idee, wie diese Fehler (insb. der letzte F.) vermieden werden kann? Sind die Korrekturvorschläge richtig ? Wo liegt mein Anwendungsfehler ? Welchen Link empfehlen Sie als Tutorial für die Anwendung Ihres Plugins unter QGIS ? Viele Grüße