[Gfoss] Ancora problemi con oid postgis

Emilia Venturato venturato a faunalia.it
Mar 22 Apr 2008 12:30:03 CEST


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Luca Delucchi ha scritto:
> Il giorno mar, 22/04/2008 alle 09.43 +0000, Eugenio Trumpy ha
> scritto:
>> Buongiorno, purtroppo mi trovo a ripresentare un problemino che
>> avevo qualche giorno fa e che ancora purtroppo non sono riuscito a
>> risolvere. Nella bancadati su cui sto lavorando c'è una tabella
>> spaziale e alcune altre semplici di attributi. Ho la necessità di
>> creare delle viste tra la tabella "geometrica" e quelle degli
>> attributi. La cosa strana è che per quasi tutte le tabelle sono
>> siuscito a creare le viste per poi visualizzarele con qgis, mentre
>> per un paio di tabelle non c'è verso, ottengo sempre il solito
>> messaggio di errore:
>> 
>> La vista 'public.pozzi_condt'  non ha una colonna utilizzabile come
>> chiave univoca. Qgis richiede che la vista abbia una colo nna
>> utilizzabile come chiave univoca. Tale colonna deve derivare da una
>> tabella con una colonna di tipo int4 ed essere una chiave primaria,
>> essere univoca, oppure una colonna di tipo oid PostgreSQL. Inoltre,
>> al fine di avere maggiori performance la colonna dovrebbe essere
>> anche indicizzata. La vista selezionata ha queste colonne, nessuna
>> di esse soddisfa le seguenti condizioni: ..... 'key' deriva da
>> 'public.condt.key' e non è utilizzabile (il tipo è int4 e non è
>> utilizzabile come vincolo) .... 'oid' deriva da
>> 'public.condt.id_condt' e non è utilizzabile (il tipo è int4 e non
>> è utilizzabile come vincolo) 'the_geom' deriva da
>> 'public.pozzi_corr_news.the_geom' e non è utilizzabile (il tipo è
>> geometry e non è utilizzabile come vincolo) successivamente: 
>> "public"."pozzi_condt" (the_geom) sql=GeometryType("the_geom") IN
>> ('POINT','MULTIPOINT') è un layer non valido e non può essere
>> caricato.
>> 
>> riassumendo: key è la chiave primaria della tabella spaziale, serve
>> a legare la stessa con tutte le tabelle attrributi, oid invece è la
>> chiave primaria delle varie tabelle attributi. La procedura che ho
>> usato è stata identica per tutte le viste che ho creato. Ho
>> aggiunto, perchè non era presente, un oid tramite phppgadmin alle
>> tab attributi, (ho notato però che con phppgadmin questo campo
>> nuovo non viene visualizzato mentre con pgadmin si, e risulta
>> perfettamente numerato con valori univoci), successivamente sempre
>> con phppgadmin creo la vista utilizzando le 2 tabelle d'interesse
>> (spaziale e non, selezionando il campo the_geom dalla prima), e
>> tutto sembra a posto, ma se visualizzo la vista con phppgadmin la
>> tabella è formattata male, nel senso che c'è un campo senza
>> intestazione...non so se è regolare...???... con pgadmin ho tutte
>> le intestazioni corrette compreso l'oid. Osservando bene quel
>> campo, vedo che: non c'è una numerazione completa degli oid, cosa
>> che dovrebbe essere e in più un record è ripetuto 2 volte, infatti
>> non essendo più univoco il campo non mi si visualizza tale vista in
>> qgis. Ho provato anche a reimportare la tabella e a rifare la vista
>> molte volte...
>> 
>> Qualcuno ha suggerimenti?
>> 
> 

Scusa Eugenio, non ho molto tempo per valutare tutto quello che hai
scritto. Pero' se hai una chiave primaria nella tabella i cui valori,
per come hai scritto la vista (dipende da cosa chiedi), si ripetono piu'
volte e' chiaro che non possa essere usata come chiave primaria per la
vista.

Secondo me devi capire, leggendo bene la tua query, cosa stai chiedendo
al db e perche' ti vengono key ripetuti, magari e' quello che vuoi, ma
in questo caso non puoi usare quel campo come primary key.

Per il fatto che l'intestazione del campo oid non si veda in
phppgadmin... lo fa. Puoi cambiare la select e scrivere 'select oid as
oid' in questo caso lo dovresti vedere anche di li', ma non e' un
problema comunque per qgis.

Secondo me comunque fai molto meglio a lavorare direttamente con un db
che abbia gli oid di default invece che metterli in seguito, almeno fino
a che non ti ci orienti meglio.
ciao
lia




- --
Emilia Venturato
email+jabber: venturato a faunalia.it
www.faunalia.it
Tel: (+39) 347-2770007 Tel+Fax: (+39) 0587-213742
Piazza Garibaldi 5 - 56025 Pontedera (PI), Italy
http://www.faunalia.it/ev
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFIDb4rOsndmJr6cvYRApAuAJ4gE/Yqwh5/NmVxS7fDpFyhmt+GmACgh1d4
ZhynElSBIY6Vp7RRzs97ABQ=
=PNp5
-----END PGP SIGNATURE-----



Maggiori informazioni sulla lista Gfoss