[Gfoss] Un'altra questione su PG

Andrea Peri aperi2007 a gmail.com
Dom 19 Lug 2015 18:49:14 CEST


Per quale ragioni fai uso di un trigger anziche' una query di update ?


Il 19 luglio 2015 18:02,  <alessandro.ciali a gmail.com> ha scritto:
> Ciao a tutti,
> mi sono arenato su un problema cui non riesco a trovare una soluzione…
> Vorrei estrarre alcuni dati da una copertura e passarli ai campi di una
> tabella puntuale, in base  alla posizione di nuovi punti che inserisco,
> ossia nel caso specifico passare il codice provincia e comune ai nuovi punti
> inseriti in una tabella “sito_puntuale”. I dati comune e provincia sono su
> una tabella spaziale “am_com”. Il tutto è in un database PGsql.
> Come in precedenza pensavo di risolvere il problema con un trigger, e quindi
> ho creato la seguente funzione sfruttando ST_Wtithin di postgis:
>
> CREATE OR REPLACE FUNCTION indagini.cal_idn()
>   RETURNS trigger AS
> $BODY$DECLARE
>         cod          character(6);
> BEGIN
>         -- codcom da public.am_com
>  cod = codcom FROM public.am_com AS c,indagini."Sito_Puntuale" AS s WHERE
> (ST_Within(NEW.the_geom,c.geom));
>  -- calcola ubicazione_prov e ubicazione_com
>         NEW.ubicazione_prov = substr(cod, 1, 3);
>         NEW.ubicazione_com = substr(cod, 4, 3);
>         RETURN NEW;
> END;
> $BODY$
>   LANGUAGE plpgsql VOLATILE
>   COST 100;
> ALTER FUNCTION indagini.cal_idn()
>   OWNER TO postgres;
> GRANT EXECUTE ON FUNCTION indagini.cal_idn() TO public;
> GRANT EXECUTE ON FUNCTION indagini.cal_idn() TO postgres;
>
> Purtroppo quando però vado a salvare mi viene restituito il seguente
> messaggio di errore:
>
> Could not commit changes to layer Sito_Puntuale
>
> Errors: ERROR: 1 feature(s) not added.
>
> Provider errors:
>
> PostGIS error while adding features: ERRORE: la query "SELECT codcom FROM
> public.am_com AS c,indagini."Sito_Puntuale" AS s WHERE (ST_Within( $1
> ,c.geom))" ha restituito più di una riga
>
> CONTEXT: funzione PL/pgSQL "cal_idn" riga 5 a assegnazione
>
>
> Il tutto funziona solo con il 1° punto inserito in una tabella vuota. Mi
> sembra di aver capito che il problema risieda nel fatto che la funzione
> ST_Within considera tutte le geometriepresenti nella tabella “Sito_puntuale”
> e non solo la NEW….
>
> Qualche buon anima mi saprebbe aiutare?
>
> Grazie in anticipo
>
>
> Alessandro Ciali
>
> Da: Luca Lanteri
> Data invio: ‎lunedì‎ ‎13‎ ‎luglio‎ ‎2015 ‎09‎:‎21
> A: Alessandro Ciali
> Cc: GFOSS.it
>
> CIao Alessandro,
> grazie mille per la disponibilità.
>
> Non ti preoccupare, tutto quello che vedi è stato fatto da autodidatti con
> conoscenze minime di programmazione, e proprio per questo che è ancora più
> importante unire forze e le competenze.
> In Piemonte diversi professionisti hanno iniziato ad utilizzare questi
> strumenti (mi pare di capire con soddisfazione) per realizzare i propri
> approfondimenti di microzonazione sismica con QGIS e stanno svolgendo un bel
> lavoro di testing.
>
> A  disposizione per qualsiasi chiarimento.
> a presto
> Luca
>
>
> Il giorno 11 luglio 2015 17:46, Alessandro Ciali
> <alessandro.ciali a gmail.com> ha scritto:
>>
>>
>>
>> Sarei ben lieto di partecipare al miglioramento, a che non sono un genio
>> della programmazione .a piuttosto un autodidatta coatto. Intanto scarichero'
>> il tutto dal sito dell'ARPA per vedere se e come il mio lavoro possa
>> integrare ciò che è stato fatto. Lavorando in parte nel campo della geologia
>> per la pianificazione territoriale, ma lavorando prev. In toscana, ho
>> sviluppato librerie di simboli che si attengono alle specifiche di questa
>> regione; non mi sembra di aver trovato sul sito della RT librerie specifiche
>> per QGIS, io le condividerei volentieri;  anzi visto che alcuni membri di RT
>> partecipa a questa lista, potrebbero, se sono interessati, a darmi
>> informazioni in merito. Per adesso grazie per le dritte, spero di poter
>> contribuire. Saluti a tutti
>>
>> Inviato da Samsung Mobile.
>>
>>
>
>
> _______________________________________________
> Gfoss a lists.gfoss.it
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> I messaggi di questa lista non hanno relazione diretta con le posizioni
> dell'Associazione GFOSS.it.
> 750 iscritti al 18.3.2015



-- 
-----------------
Andrea Peri
. . . . . . . . .
qwerty àèìòù
-----------------


Maggiori informazioni sulla lista Gfoss