[PostNAS] Antworten zu Delete/Replace
Bernd Kamjunke
bernd.kamjunke at csogis.de
Mo Nov 19 06:52:08 PST 2012
Hallo Herr Jäger!
Danke für die Infos. Hab das Problem erkannt, kann leider in
SQLite keine Procedures oder Variablen innerhalb von Triggern
verwenden... da hab ich noch einiges zu tun.
Und gdal mal eben selbst kompilieren unter Windows und Visual
Studio ist ja auch nicht ganz ohne, oder?
Gruß und Dank
Bernd Kamjunke
_________________________________________________________________
CSO GmbH
Informations-Lösungen
Forsthausstrasse 2
75180 Pforzheim
Fon +49 (0) 72 31 . 97 35 63 (direkt)
Fon +49 (0) 72 31 . 97 35 10 (Zentrale)
Fax +49 (0) 72 31 . 97 35 90
eMail Bernd.Kamjunke at csogis.de
web www.csogis.de
_________________________________________________________________
Geschäftsführer Jörg Schempf, Dipl.-Ing. (FH)
Amtsgericht Mannheim . HRB 503836
UST-ID DE 144 17 16 31
_________________________________________________________________
-----Ursprüngliche Nachricht-----
Von: nas-bounces at lists.osgeo.org [mailto:nas-bounces at lists.osgeo.org] Im Auftrag von "Jäger, Frank (KRZ)"
Gesendet: Montag, 19. November 2012 12:10
An: 'NAS Schnittstelle via ogr2ogr'
Betreff: Re: [PostNAS] Antworten zu Delete/Replace
Hallo,
bei uns treten die Fehler nach der Aktualisierung inzwischen nicht mehr auf.
> Gibt es eine verbesserte gdal-Version dazu? Wir haben bisher 1.9.2 verwendet.
Man sollte die aktuelle Entwicklungs-Version verwenden.
Auschecken des Quellcodes und selbst compilieren.
> Oder ist in einem Datenbank-Template ein Trigger geändert worden?
Ja, siehe
http://trac.wheregroup.com/PostNAS/browser/trunk/data/konvert/postnas_0.7/alkis_PostNAS_0.7_schema.sql
-- 2012-10-31 FJ Trigger fuer NAS-Replace-Saetze repariert:
...
CREATE OR REPLACE FUNCTION delete_feature_kill() RETURNS TRIGGER AS $ ...
-- Nur alte Objekte entfernen
query := 'DELETE FROM ' || NEW.typename
|| ' WHERE gml_id = ''' || gml_id || ''' AND beginnt < ''' || aktbeg || '''';
Und
http://trac.wheregroup.com/PostNAS/browser/trunk/data/konvert/postnas_0.7/pp_laden.sql
2012-10-29 Redundanzen aus alkis_beziehungen beseitigen, die nach NAS replace auftreten ...
DELETE
FROM alkis_beziehungen AS bezalt -- Beziehung Alt
WHERE EXISTS
...
> und haben daher die Vorgehensweise ... nur prinzipiell befolgt
Der Konverter fügt bei "replace" das geänderte Objekt in die Objekt-Tabelle ein und macht einen Eintrag in der Tabelle "delete".
Der Eintrag in "delete" löst den Trigger aus. Der Trigger soll die alten Objekte finden und löschen.
Bisher wurde nur nach "gml_id" gesucht und gelöscht, das war der Fehler.
Da zuerst das neue Objekt eingetragen wird (gleiche "gml_id" wie das alte) und erst dann der "replace" in die "delete"-Tabelle eingetragen wird, hat der Trigger das alte *und* auch das neue Objekt gelöscht. Daher die "Löcher" in der Karte.
Über die neue WHERE-Clausel im DELETE versuche ich das nun zu vermeiden.
Die redundanten Einträge in der Tabelle "alkis_beziehungen" werden derzeit mit einem SQL-Befehl nach dem Konverter-Lauf bereinigt.
Hier könnte man auch noch was in den Trigger einbauen damit die Datenbank während des Laufes konsistenter bleibt.
Mfg
F. Jäger
Von: nas-bounces at lists.osgeo.org [mailto:nas-bounces at lists.osgeo.org] Im Auftrag von Bernd Kamjunke
Gesendet: Montag, 19. November 2012 11:46
An: nas at lists.osgeo.org
Betreff: Re: [PostNAS] Antworten zu Delete/Replace
Hallo Herr Jäger, hallo an alle weiteren Beteiligten!
In meiner Firma haben wir das gleiche Problem mit NAS-Aktualisierungsdaten aus NRW:
..
Wir benutzen allerdings eine SQLite-Datenbank und haben daher die Vorgehensweise wie unter http://trac.wheregroup.com/PostNAS/wiki/SchrittfuerSchritt#
beschrieben nur prinzipiell befolgt.
Leider bin ich aus den Inhalten der Emails zu diesem Fehler abschließend nicht wirklich schlau geworden, daher meine Fragen:
Gibt es schon eine Lösung zu diesem Problem und wenn ja, wo genau "liegt" die?
Gibt es eine verbesserte gdal-Version dazu? Wir haben bisher 1.9.2 verwendet.
Oder ist in einem Datenbank-Template ein Trigger geändert worden?
Schönen Gruß
Bernd Kamjunke
_______________________________________________
NAS mailing list
NAS at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/nas
More information about the NAS
mailing list