[Gfoss] qGIS con PostGIS Views

Vorrei chiedere un'aiuto su come far funzionare VIEWs di PostGIS per
vederli da qGIS.

Ho fatto prove inserendo la view nella tabella "geometry_culumns"
come suggerito qui [1] e [2] ma non funziona. Il problema sembra relato
al fatto che qGIS non trova una colonna con un id unico.

Sembra che nel passato, qGIS poteva usare VIEWS di PostGIS soltanto se
la tabella di origine usava un oid. Ma il fatto che [2] sembra
abbastanza vecchio (menziona qGIS 0.7 come futura versione), che
shp2psql non crea piu' tabelle con oid, e che qGIS guarda le colonne
per vedere se c'e' una idonea [3] mi da l'impressione che dovrebbe
funzionare anche senza oid.

Il problema da me sembra che qGIS non riesce l'introspezione, i.e., di
capire che colonne ci siano (non lista nessuna colonna..). Potrebbe
essere magari un problema di permessi?

qualsiasi suggerimento/esempio e' molto benvenuto!

grazie antecipatemente

-b

[1] http://qgis.org/content/view/25/75/
[2]
http://www.rigacci.org/wiki/doku.php/tecnica/gps_cartografia_gis/postgis
nella sezione "Quinto esempio"
[3] il messaggio di errore dice:
<quote>
The view 'public.test3' has no column
suitable for use as a unique key.

Qgis requires that the view has a column that can be used as a unique
key. Such a column should be derived from a table column of type int4
and be a primary key, have a unique constraint on it, or be a
PostgreSQL oid column. To improve performance the column should also be
indexed.

The view you selected has the following columns, none of which satisfy
the above conditions:
</quote>

--
Bud P. Bruegger, Ph.D. +39-0564-488577 (voice), -21139 (fax)
   European Chair, Global Collaboration Forum on eID
   Chair, Porvoo Subgroup on collab. govs/operating systems
   Leader of the Permanent eID Status Observatory (PESO) project
Servizio Elaborazione Dati e-mail: bud@comune.grosseto.it
Comune di Grosseto jabber: bud@jabber.no
Via Ginori, 43 http://www.comune.grosseto.it/
58100 Grosseto (Tuscany, Italy)
http://www.comune.grosseto.it/interopEID/

ciao,
non so se ti aiuta, ma prova a controllare se l’utente con il quale ti connetti al database ha i GRANT di SELECT sulla geometry_columns…

hth
flavio


io uso Debian GNU/Linux
user #413018 counter.li.org

Se ti è possibile non inviarmi files .doc, .xls, .ppt, .dwg, .mdb.
Puoi usare formati aperti: .odt, .txt, .html, .pdf, .shp, dump SQL :slight_smile:

On Wed, 23 Jan 2008 17:07:17 +0100
"Flavio Rigolon" <flavio.rigolon@gmail.com> wrote:

ciao,
non so se ti aiuta, ma prova a controllare se l'utente con il quale ti
connetti al database ha i GRANT di SELECT sulla geometry_columns........

L'ho dato a public:
GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES, TRIGGER ON TABLE
test3 TO public;

e ora anche esplicitamente a gisUser (come quale accedo postgres da
qGIS)
GRANT SELECT ON TABLE test3 TO "gisUser";

Man non funziona...

grazie
-b

hth
flavio

--
io uso Debian GNU/Linux
user #413018 counter.li.org

Se ti è possibile non inviarmi files .doc, .xls, .ppt, .dwg, .mdb.
Puoi usare formati aperti: .odt, .txt, .html, .pdf, .shp, dump SQL :slight_smile:

--
Bud P. Bruegger, Ph.D. +39-0564-488577 (voice), -21139 (fax)
   European Chair, Global Collaboration Forum on eID
   Chair, Porvoo Subgroup on collab. govs/operating systems
   Leader of the Permanent eID Status Observatory (PESO) project
Servizio Elaborazione Dati e-mail: bud@comune.grosseto.it
Comune di Grosseto jabber: bud@jabber.no
Via Ginori, 43 http://www.comune.grosseto.it/
58100 Grosseto (Tuscany, Italy)
http://www.comune.grosseto.it/interopEID/

On Wed, 23 Jan 2008 17:43:21 +0100
"Bud P. Bruegger" <bud@comune.grosseto.it> wrote:

On Wed, 23 Jan 2008 17:07:17 +0100
"Flavio Rigolon" <flavio.rigolon@gmail.com> wrote:

[cut]

Man non funziona...

comincio ora a muovermi nel gis e abbi pazienza se non ho capito bene il problema;

ho provato a fare una view selezionando alcuni dati da una tabella (vedi view.sql) e l'ho visualizzato correttamente in qgis (vedi temp.qgs: e' caricata una tabella [f04_strade] e la view [temp]); il risultato in temp.png;

1) l'utente con cui ho creato la view ed accedo da qgis a postgis e' lo stesso;

2) non ho messo la view nelle geometry_columns: qgis si comporta diversamente da gvsig, come ho gia' notato in altra occasione;

3) uso una versione vecchia (0.7.4) di qgis: l'ultima disponibile, mi sembra, per debian stable :frowning:

grazie
-b

ciao,
giuliano

view.sql (210 Bytes)

temp.qgs (7.38 KB)

temp.png

Bud P. Bruegger wrote:

On Wed, 23 Jan 2008 17:07:17 +0100
"Flavio Rigolon" <flavio.rigolon@gmail.com> wrote:

ciao,
non so se ti aiuta, ma prova a controllare se l'utente con il quale ti
connetti al database ha i GRANT di SELECT sulla geometry_columns........

L'ho dato a public:
GRANT SELECT, UPDATE, INSERT, DELETE, REFERENCES, TRIGGER ON TABLE
test3 TO public;

e ora anche esplicitamente a gisUser (come quale accedo postgres da
qGIS)
GRANT SELECT ON TABLE test3 TO "gisUser";

Man non funziona...

grazie
-b

Non lo so se questo ti può aiutare, ma io avevo il tuo stesso problema
ed ho risolto aggiungendo la OIDs alla vista! ovviamente l'OID deve essere
quello della tua tabella contenente la geometry!

ciao

-----
Salvatore Larosa
GPG: 0xE504BBE2 (FP: D9B2 CA87 81CD 1B91 E24D 3B42 D0F7 FA01 E504 BBE2)
--
View this message in context: http://www.nabble.com/qGIS-con-PostGIS-Views-tp15045212p15053140.html
Sent from the Gfoss mailing list archive at Nabble.com.

Grazie mille a tutti per l'aiuto.

Con le istruzioni sotto sono riuscito anche io di vedere la view (anche
senza scriverlo nella tabella geometry_columns.

La soluzione era di farlo come utente "gisSuper" che ha piu' di diritti
(troppi per darlo a altri). Sembra che solo SELECT non basta e o nella
vista e/o nella tabella sottostante sono richiesti altri privileggi.
Devo sperimentare quali sono...

grazie mille
-b

On Wed, 23 Jan 2008 00:15:50 +0100
giuliano curti <giulianc@tiscali.it> wrote:

On Wed, 23 Jan 2008 17:43:21 +0100
"Bud P. Bruegger" <bud@comune.grosseto.it> wrote:

> On Wed, 23 Jan 2008 17:07:17 +0100
> "Flavio Rigolon" <flavio.rigolon@gmail.com> wrote:

[cut]

> Man non funziona...

comincio ora a muovermi nel gis e abbi pazienza se non ho capito bene il problema;

ho provato a fare una view selezionando alcuni dati da una tabella (vedi view.sql) e l'ho visualizzato correttamente in qgis (vedi temp.qgs: e' caricata una tabella [f04_strade] e la view [temp]); il risultato in temp.png;

1) l'utente con cui ho creato la view ed accedo da qgis a postgis e' lo stesso;

2) non ho messo la view nelle geometry_columns: qgis si comporta diversamente da gvsig, come ho gia' notato in altra occasione;

3) uso una versione vecchia (0.7.4) di qgis: l'ultima disponibile, mi sembra, per debian stable :frowning:

> grazie
> -b

ciao,
giuliano

--
Bud P. Bruegger, Ph.D. +39-0564-488577 (voice), -21139 (fax)
   European Chair, Global Collaboration Forum on eID
   Chair, Porvoo Subgroup on collab. govs/operating systems
   Leader of the Permanent eID Status Observatory (PESO) project
Servizio Elaborazione Dati e-mail: bud@comune.grosseto.it
Comune di Grosseto jabber: bud@jabber.no
Via Ginori, 43 http://www.comune.grosseto.it/
58100 Grosseto (Tuscany, Italy)
http://www.comune.grosseto.it/interopEID/