[QGIS-it-user] Spatialite - Suggerimenti per Trigger

Totò Fiandaca pigrecoinfinito a gmail.com
Sab 22 Giu 2019 03:42:04 PDT


Ciao Aldo,
sei OT (Off Topic) qui di discute solo di QGIS.

Scrivi la stessa mail a GFOSS

saluti

Il giorno sab 22 giu 2019 alle ore 00:30 Aldo Gessa <aldogessa78 a gmail.com>
ha scritto:

> Salve, non riesco a risolvere questo problema.
> Ho creato un DB e sto cercando di impostare un trigger su una tabella
> nominata "ATTO_AMMINISTRATIVO",  capace di NON PERMETTERE L'INSERT solo
> qualora siano soddisfatte contemporaneamente le seguenti condizioni:
> 1) se nella colonna "tipo_atto" il valore è diverso da 1 o 2;
> 2)se la colonna "id_atto_impegno_di_spesa" è valorizzata (NOT NULL).
> Ho scritto dopo mille peripezie il seguente trigger:
>
> CREATE TRIGGER ControllaNumImpegno_Insert AFTER INSERT ON
> ATTO_AMMINISTRATIVO
>
> BEGIN
>
> SELECT
>
> CASE
>
> WHEN NEW.tipo_atto NOT IN (1,2)  *AND* NEW.id_atto_impegno_di_spesa NOT
> NULL
>
> THEN
>
> RAISE (ABORT, 'IL TIPO DI ATTO AMMINISTRATIVO SELEZIONATO NON GENERA UN
> IMPEGNO DI SPESA')
>
> END;
>
> END;
>
> Purtroppo fallisce miseramente in quanto, nonostante la clausola AND
> nell'istruzione WHEN, questa non viene considerata ed il trigger controlla
> solo la condizione 1) con la conseguenza che vieta qualsiasi INSERT per
> "tipo_atto" NOT IN (1,2) anche qualora "id_atto_impegno_di_spesa " è NULLO.
>
> E' COME SE LA CLAUSOLA *AND* NON FOSSE AMMESSA.
> Ho fatto prove con la clausola OR e funziona (ma purtroppo non soddisfa la
> condizione da me cercata).
>
> Sono certo che sto sbagliando tutto ma prima di arrendermi mi farebbe
> piacere conoscere la soluzione.
> Spero di essermi spiegato e che ci sia qualcuno che possa illuminarmi.
>
> Saluti
>
> Aldo
>
>
>
>
>
>
> --
> Sent from:
> http://osgeo-org.1560.x6.nabble.com/QGIS-Italian-User-f5250612.html
> _______________________________________________
> QGIS-it-user mailing list
> QGIS-it-user a lists.osgeo.org
> https://lists.osgeo.org/mailman/listinfo/qgis-it-user
>


-- 
*Ing. Salvatore Fiandaca*
*mobile*.:+39 327.493.8955
*m*: *pigrecoinfinito a gmail.com <pigrecoinfinito a gmail.com>*
*C.F*.: FNDSVT71E29Z103G
*P.IVA*: 06597870820
*membro QGIS Italia - http://qgis.it/ <http://qgis.it/>*
*socio GFOSS.it - *http://gfoss.it/
*blog:*
* https://pigrecoinfinito.wordpress.com/
<https://pigrecoinfinito.wordpress.com/> FB: Co-admin
- https://www.facebook.com/qgis.it/ <https://www.facebook.com/qgis.it/>**
<https://www.facebook.com/qgis.it/> *
*TW:  <http://goog_95411464>**https://twitter.com/totofiandaca
<https://twitter.com/totofiandaca>*

43°51'0.54"N  10°34'27.62"E - EPSG:4326

“Se la conoscenza deve essere aperta a tutti,
perchè mai limitarne l’accesso?”
R. Stallman

Questo documento, allegati inclusi, contiene informazioni di proprietà di
FIANDACA SALVATORE e deve essere utilizzato esclusivamente dal destinatario
in relazione alle finalità per le quali è stato ricevuto. E' vietata
qualsiasi forma di riproduzione o divulgazione senza l'esplicito consenso
di FIANDACA SALVATORE. Qualora fosse stato ricevuto per errore si prega di
informare tempestivamente il mittente e distruggere la copia in proprio
possesso.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.osgeo.org/pipermail/qgis-it-user/attachments/20190622/f18d9182/attachment.html>


Maggiori informazioni sulla lista QGIS-it-user