GRASS logo

NOME

v.db.connect - Visualizza/imposta la connessione per una mappa vettoriale alla tabella degli attributi

PAROLE CHIAVE

vettoriale, database, tabella degli attributi

SINOSSI

v.db.connect
v.db.connect help
v.db.connect [-pglcod] map=nome [driver=nome] [database=nome] [table=nome] [key=nome] [layer=integer] [fs=character] [--verbose] [--quiet]

Flag:

-p
Stampa tutti i parametri di connessione al database della mappa ed esce
-g
Stampa tutti i parametri di connessione della mappa ed esce in stile script per la shell
Format: layer[/layer name] table key database driver
-l
Limita la stampa al layer specificato dall'opzione layer
-c
Stampa i tipi/nomi delle colonne della tabella del layer selezionato ed esce
-o
Sovrascrive il parametro di connessione per alcuni layer
-d
Cancella la connessione al database di alcuni layer (ma non la tabella)
--verbose
Output verboso del modulo
--quiet
Output quieto del modulo

Parametri:

map=nome
Nome della mappa vettoriale di input
driver=nome
Nome del driver
Opzioni: dbf,sqlite,ogr,pg
Predefinito: dbf
database=nome
Nome del database
Predefinito: $GISDBASE/$LOCATION_NOME/$MAPSET/dbf/
table=nome
Nome della tabella
key=nome
Nome della colonna chiave
Deve riferirsi a una colonna di tipo integer
Predefinito: cat
layer=integer
Numero del layer
Una singola mappa vettoriale può essere connessa a più tabelle di un database. Questo numero determina quale tabella viene utilizzata.
Predefinito: 1
fs=character
Separatore di campo per l'output in stile script per la shell
Predefinito:

DESCRIZIONE

v.db.connect visualizza o imposta una connessione al database per una mappa vettoriale. L'utente può aggiungere o rimuovere il collegamento alla tabella degli attributi sul layer stabilito.

NOTE

Se i parametri per la connessione al database sono già stati impostati con db.connect, essi sono presi come valori predefiniti e non è necessario che siano definiti ogni volta.

Quando si stampa a video la connessione al database (flag p o g) il parametro layer viene ignorato, cioé tutte le connessioni sono stampate sull'output, a meno che non sia dato il flag l.

Attenzione: La rimozione di una mappa vettoriale comporta l'eliminazione di tutte le tabelle collegate ad essa! Se si utilizza v.db.connect per collegare ulteriori tabelle alla mappa, è consigliabile fare prima una copia (si veda anche v.overlay).

ESEMPIO

Visualizza la connessione al database

Stampa a video tutti i parametri di connessione per la mappa vettoriale.
v.db.connect -p map=roads

Mostra il tipo e il nome delle colonne della tabella collegata alla mappa vettoriale.

v.db.connect -c map=roads

Collegare una mappa vettoriale al database (driver DBF)

Collegare la mappa vettoriale alla tabella DBF senza variabili o con variabili.

Utilizzando la connessione predefinita DB:

v.db.connect map=vectormap table=table

Utilizzando il percorso della directory DBF rigidamente definito (non raccomandato):

v.db.connect map=vectormap table=table \
             database=/home/user/grassdata/spearfish60/PERMANENT/dbf

Se si utilizzano le variabili per definire la directory DBF, si devono usare gli apici singoli:

v.db.connect map=vectormap table=table \
             database='$GISDBASE/$LOCATION_NOME/$MAPSET/dbf/'

Collegare una mappa vettoriale con layer 2 e chiave ID al database con variabili (nota: se necessario, per il parametro database devono essere usati gli apici singoli):

v.db.connect map=vectormap table=table layer=2 key=ID

Collegare una mappa vettoriale al database (driver SQLite)

Molto simile all'esempio col driver DBF visto prima.
db.connect driver=sqlite database='$GISDBASE/$LOCATION_NOME/$MAPSET/sqlite.db'
db.tables -p
v.db.connect map=vectormap table=table driver=sqlite \
             database='$GISDBASE/$LOCATION_NOME/$MAPSET/sqlite.db'
v.db.connect -p map=vectormap

Collegare una mappa vettoriale al database (driver MySQL)

# nota: connessione che richiede la password
db.connect driver=mysql database="host=dbserver.foo.org,dbname=my_database"
db.login user=joshua [password=xxx]
# ... o immettere la password interattivamente.

db.tables -p

# collegare una tabella esterna al layer 2:
v.db.connect map=my_map table=my_mysql_table key=baz layer=2
v.db.connect -p my_map

Collegare una mappa vettoriale al database (driver PostgreSQL)

# nota: connessione senza richiesta di password
v.db.connect map=vectormap table=table layer=1 key=oid driver=pg \
             database="host=myserver.itc.it,dbname=mydb,user=name" \
             table=mytable key=id

Memorizzare i dati geometrici in GRASS e gli attributi in PostgreSQL

Questo esempio illustra un sistema misto di archiviazione dei dati con la possibilità di aggiornare gli attributi in un database PostgreSQL esterno:
# Controllare le impostazioni correnti per l'archiviazione degli attributi:
db.connect -p

# Importare la tabella da PostgreSQL in una nuova mappa:
# (NOTA: nel caso che GRASS sia connesso a PostreSQL il nome della mappa di
#        output dev'essere diverso dal nome della tabella):
v.in.db driver=pg database="host=localhost,dbname=meteo" \
        table=mytable x=lon y=lat key=cat out=mytable

v.db.connect map=mytable -p

# Cancellare il collegamento tra la mappa e la tabella degli attributi:
v.db.connect map=mytable -d
v.db.connect map=mytable -p

# Eliminare la tabella che è stata duplicata in seguito all'importazione:
db.tables -p
echo "DROP TABLE mytable" | db.execute
db.tables -p

# ricollegare la mappa alla tabella in PostgreSQL:
v.db.connect map=mytable driver=pg database="host=localhost,dbname=meteo" \
        table=mytable key=cat

# Ora i dati geometrici sono memorizzati in GRASS mentre gli attributi
# in PostgreSQL.
Un'alternativa sarebbe quella di creare una "vista" con le sole colonne ID, x, y [,z] e usare v.in.db su questa vista, quindi collegare la tabella originale ai dati geometrici. Se la tabella originale è molto grande questo metodo è &piugrave; veloce.

Memorizzare i dati geometrici in GRASS e gli attributi in PostGIS

Questo esempio illustra un sistema misto di archiviazione dei dati con la possibilità di aggiornare gli attributi in un database PostGIS esterno:
# Controllare le impostazioni correnti per l'archiviazione degli attributi:
db.connect -p

# Importare la tabella da PostGIS in una nuova mappa:
# (NOTA: nel caso che GRASS sia connesso a PostGIS il nome della mappa di
#        output dev'essere diverso dal nome della tabella):
v.in.db driver=pg database="host=localhost,dbname=meteo" \
        table=mytable x="x(geom)" y="y(geom)" key=cat out=mytable

v.db.connect map=mytable -p

# Cancel table connection between map and attribute table:
v.db.connect map=mytable -d
v.db.connect map=mytable -p

# Eliminare la tabella che è stata duplicata in seguito all'importazione:
db.tables -p
echo "DROP TABLE mytable" | db.execute
db.tables -p

# ricollegare la mappa alla tabella in PostGIS:
v.db.connect map=mytable driver=pg database="host=localhost,dbname=meteo" \
        table=mytable key=cat

# Ora i dati geometrici sono memorizzati in GRASS mentre gli attributi
# in PostGIS.

VEDI ANCHE

db.connect, db.copy, db.tables, v.db.addtable, v.db.droptable, v.db.addcol, v.db.dropcol, v.external, v.in.db, v.overlay

AUTORE

Radim Blazek, ITC-Irst, Trento, Italy

Last changed: $Date: 2011-11-08 12:29:50 +0100(mar, 08 nov 2011) $


Main index - vector index - Full index

© 2003-2011 GRASS Development Team