Esempio SQL: convalida

È possibile utilizzare SQL per creare regole di convalida personalizzate e più complesse.

Nella rete di esempio in questione, non è consentito collegare direttamente un oggetto stazione di pompaggio ad un altro oggetto stazione di pompaggio. Questa serie di query SQL utilizza il campo definito dall'utente user_number_2 per contare le connessioni alle stazioni di pompaggio. Alla fine, verrà selezionata qualsiasi stazione di pompaggio collegata direttamente ad un'altra stazione di pompaggio.

Passo Descrizione del passo Query Immagine di esempio

A

Per prima cosa il valore del campo utente in tutti i nodi viene impostato su zero.

Importante: Prima di eseguire questa operazione, assicurarsi che il campo utilizzato non contenga informazioni utili.
SQL query context:
  • Tipo di oggetto: Tutti i nodi


SET user_number_2 = 0

B

Ora vengono conteggiati tutti i collegamenti agli oggetti stazione di pompaggio incrementando il numero nel campo del numero utente per ciascun collegamento. Notare che il campo Tipo di oggetto per questa query è impostato su Stazione di pompaggio.

  • la casella SQL contiene in realtà due query SQL separate da un punto e virgola.
  • la sintassi us_node.user_number_2/ds_node.user_number_2 consente di accedere ai campi dati per il nodo a monte/a valle dell'oggetto corrente. Si tratta di uno strumento molto utile.
  • le due query SQL aggiungono uno ai campi numero utente dei nodi connessi per indicare che sono connessi ad una stazione di pompaggio.
SQL query context:
  • Tipo di oggetto: stazione di pompaggio


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

Quindi, individuare tutte le stazioni di pompaggio collegate ad altre stazioni di pompaggio. Queste saranno ora selezionate.

SQL query context:
  • Tipo di oggetto: stazione di pompaggio


us_node.user_number_2 > 1 OR ds_node.user_number_2 > 1

D

Infine, eliminare il conteggio dai campi Numero utente 2, poiché non è più necessario.

SQL query context:
  • Tipo di oggetto: Tutti i nodi


SET user_number_2 = NULL

E

Le query SQL che costituiscono questo processo di convalida possono essere inserite in un gruppo di query memorizzate. È quindi possibile eseguire tutte le query del gruppo sulla propria rete trascinando l'oggetto Cartella query sulla Planimetria. Le query vengono eseguite in ordine alfabetico, pertanto è sufficiente fare attenzione alla loro denominazione.