[Gfoss] geometry from vista?

Antonio Falciano afalciano a yahoo.it
Lun 7 Gen 2008 23:20:25 CET


Salvator*eL*arosa ha scritto:
> Salve a tutti e buon anno!

Ciao, auguroni!

> Stavo provando ad interrogare il mio db (Postgresql/Postgis) sia da 
> p.mapper, qgis che da sql commander facendo una select su una vista
> anzichè una tabella, ma evidentemente sbaglio qualcosa!!!!

E' proprio necessario? La frequenza di aggiornamento dei tuoi dati è
talmente alta da giustificare l'uso di una vista oppure ci stai provando
per il semplice gusto di farlo? ;) Tieni conto che ad ogni connessione la
vista comporta l'esecuzione della query che la definisce e pertanto è
molto più lenta in lettura di una normale tabella ed, inoltre, non puoi
definire indici per velocizzare le ricerche (idx).

> L'errore che mi dà shp2pgsql è:
> 
> sam a debian:~$ shp2img -m /home/sam/www/SISNCMS/config/default/CMS.map -l
> vista_sen -o /home/sam/Desktop/vis.png
> msDrawMap(): Image handling error. Failed to draw layer named 'vista_sen'.
> <br>
> prepare_database(): Query error. Error executing POSTGIS DECLARE (the actual
> query) statement: 'DECLARE mycursor BINARY CURSOR FOR SELECT
> "cod_cai"::text,asbinary(force_collection(force_2d(the_geom)),'NDR'),OID::text
> from public.vista_sen WHERE the_geom && setSRID('BOX3D(2614649.00000002
> 4312948.99999991,2653614.00000012 4351913.99999999)'::BOX3D,
> find_srid('','public.vista_sen','the_geom') )'
> 
> Postgresql reports the error as 'ERROR:  la colonna "oid" non esiste at
> character 112
> '
> 
> More Help:
> 
> Error with POSTGIS data variable. You specified 'check your .map file'.
> Standard ways of specifiying are :
> (1) 'geometry_column from geometry_table'
> (2) 'geometry_column from (sub query) as foo using unique column name using
> SRID=srid#'
> 
> Make sure you put in the 'using unique  column name' and 'using SRID=#'
> clauses in.
> 
> For more help, please see http://postgis.refractions.net/documentation/
> 
> Mappostgis.c - version of Jan 23/2004.
>  <br>
> 
> Invece Qgis mi da come errore: sintetizzo io: "non trovo la colonna chiave
> primaria"
> 
> 
> Sia il primo che il secondo errore di solito mi si presentava 
> quando non  impostavo una chiave primaria
> oppure quando creavo una tabella con geometrie WITHOUT OIDS!
> 
> Quello che gradirei sapere è se la vista di una tabella si 
> porta dietro anche le costrizioni (tipo PK ecc) oppure no?...

La vista è una sorta di "tabella virtuale dinamica", definita da una
select su tabelle, e come tale si porta dietro alcuni campi delle tabelle
sorgenti, ma non credo le constraint (smentitemi se sbaglio). Definito
un record opportuno nella tabella geometry_columns del tuo schema
(analogamente a quanto si fa per le tabelle), nella query di definizione
della vista prova a portarti dietro anche un gid o qualcosa di simile
preferibilmente univoco e credo che mapserver, qgis o quant'altro
leggano la vista. In gvSIG ci ho provato in passato (sempre per il gusto
di sperimentare, come te...) e lì non ho avuto problemi. Good luck!

Ciao
Antonio





Maggiori informazioni sulla lista Gfoss