Hallo an Alle,
ich bräuchte eine Trigger-Funktion die bei dem Ändern einer der x/y-Koordinaten-Spalten automatisch ein SQL-Statement für ein Update der Geometrie-Spalte absetzt!
Da meine Programmierkenntnisse gegen Null tendieren, bitte ich Euch mir mal auszuhelfen.
Das System ist Postgre 8.1x und PostGIS 1.2x
Ich hoffe jemand kann mir schnell weiterhelfen.
Danke schon mal im Voraus,
Christian
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Bei Geodaten ist (fast) alles erlaubt. Die Geometrie liegt in einem Binärformat vor. Da aber oft die Koordinaten direkt benötigt werden, halte ich die auch bei Bedarf in numerischer Form vor, weil das manche Abfrage beschleunigt, da ich sonst immer erst die Geometrie zerlegen muß. Oder ich erzeuge die Geometrie halt in einem View nach meinen Bedürfnissen. Ausserdem vereinfacht es die Kommunikation mit Menschen, die nicht in relationalen Modellen denken, z.B. Ingenieuren...
Aber prinzipiell hast du natürlich recht.
Leider hab ich keine Erfahrung mit Triggern, aber ich wüsste nicht, was dem Erzeugen der Geometrie in einem Trigger entgegenspräche.
Das SQL-Statement sähe etwa so aus:
Ohne Gewähr aus dem hohlen Bauch und ohne KaffeeCode:update MeineTabelle set [geometry]=geomfromtext[WKT-Format siehe PostGIS-Doku]
Schöne Woche Uwe
Have a lot of fun!
Ja in Geodatenbanken macht das schon Sinn die Koordinaten nochmal als Klartext abzulegen. Hier können dann Nutzer auch mal manuell Punkt-Koordinaten ändern, resp. korrigieren.
Wie das Statement für das Update auszusehen hat weiß ich selbst. Danach wurde auch nicht gefragt;-)
Aber wie muss die Trigger funktion aussehen. Keiner eine Idee?
Du erzeugts eine Function, die einen TRIGGER als Result liefert, und sagts einfach, daß diese dann Dein Trigger ist.
PostgreSQL: Documentation: Manuals: PostgreSQL 8.1: A Complete Example
(der Quoting-Stil dort mit ' ist veraltet, einfacher ist Dollarquoting:
PostgreSQL: Documentation: Manuals: PostgreSQL 8.1: Trigger Procedures)
Andreas
--
https://www.xing.com/profile/Andreas_Kretschmer7ads Das hatte dir akretschmer gestern schon gesagt und siehe da sobald du das machst, funktioniert es ;-)
Links: Tobias Bauer - IT- und Funkdienstleistungen - Bilderrahmen-kaufen.de - Der Onlineshop für Bilderrahmen & Fotorahmen - Funkforum
Lesezeichen