SQL-Beispiel: Validierung

Mithilfe von SQL können Sie eigene, komplexere Validierungsregeln erstellen.

Im fraglichen Beispielnetz darf ein Pumpenstationsobjekt nicht direkt mit einem anderen Pumpenstationsobjekt verbunden sein. Bei diesen SQL-Abfragen werden die Verbindungen zu Pumpstationen anhand des benutzerdefinierten Felds user_number_2 gezählt. Am Ende werden alle Pumpstationen ausgewählt, die direkt mit einer anderen Pumpstation verbunden sind.

Schritt Schrittbeschreibung Abfrage Beispielbild

A

Zuerst wird der Wert des Benutzerfelds in allen Knoten auf null festgelegt.

Wichtig: Stellen Sie zuvor sicher, dass das verwendete Feld keine wichtigen Informationen enthält.
SQL query context:
  • Objekttyp: Alle Knoten


SET user_number_2 = 0

B

Jetzt werden alle Verbindungen zu Pumpstationsobjekten gezählt, indem die Anzahl im Feld Benutzernummer für jede Verbindung angegebene Nummer inkrementiert wird. Beachten Sie, dass das Feld Objekttyp für diese Abfrage auf Pumpstation festgelegt ist.

  • Das Feld SQL enthält zwei durch ein Semikolon getrennte SQL-Abfragen.
  • Mit der Syntax us_node.user_number_2/ds_node.user_number_2 können Sie auf die Datenfelder für den stromaufwärts/stromabwärts des aktuellen Objekts liegenden Knoten zugreifen. Dieses Werkzeug ist sehr nützlich.
  • Die beiden SQL-Abfragen fügen den Feldern für die Benutzernummer der verbundenen Knoten den Wert eins hinzu, um anzugeben, dass sie mit einer Pumpstation verbunden sind.
SQL query context:
  • Objekttyp: Pumpstation


SET us_node.user_number_2 = us_node.user_number_2 + 1;
SET ds_node.user_number_2 = ds_node.user_number_2 + 1

C

Als Nächstes werden alle Pumpstationen ermittelt, die mit anderen Pumpstationen verbunden sind. Diese werden nun ausgewählt.

SQL query context:
  • Objekttyp: Pumpstation


us_node.user_number_2 > 1 OR ds_node.user_number_2 > 1

D

Abschließend wird die Anzahl aus den Feldern für Benutzernummer 2 gelöscht, da diese nicht mehr benötigt wird.

SQL query context:
  • Objekttyp: Alle Knoten


SET user_number_2 = NULL

E

Die SQL-Abfragen, aus denen dieser Validierungsprozess besteht, können in einer gespeicherten Abfragegruppe platziert werden. Anschließend können Sie alle Abfragen in der Gruppe im Netz ausführen, indem Sie das Objekt Gruppe Gespeicherte Abfrage auf den GeoPlan ziehen und dort ablegen. Abfragen werden in alphabetischer Reihenfolge ausgeführt. Gehen Sie daher bei der Benennung vorsichtig vor.