GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
v.db.connect(1) Grass User's Manual v.db.connect(1)

v.db.connect - Prints/sets DB connection for a vector map to attribute table.

vector, attribute table, database, layer

v.db.connect
 
v.db.connect --help
 
v.db.connect [-pgcod] map=name [driver=name] [ database=name] [table=name] [ key=name] [layer=string] [ separator=character] [--overwrite] [-- help] [--verbose] [--quiet] [--ui]

-p
 
Print all map connection parameters and exit
-g
 
Print all map connection parameters in shell script style and exit
 
Format: layer[/layer name] table key database driver
-c
 
Print types/names of table columns for specified layer and exit
-o
 
Overwrite connection parameter for certain layer
-d
 
Delete connection for certain layer (not the table)
--overwrite
 
Allow output files to overwrite existing files
--help
 
Print usage summary
--verbose
 
Verbose module output
--quiet
 
Quiet module output
--ui
 
Force launching GUI dialog

map=name [required]
 
Name of vector map
 
Or data source for direct OGR access
driver=name
 
Name of database driver
 
Options: dbf, ogr, pg, sqlite
 
Default: sqlite
database=name
 
Name of database
 
Default: $GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db
table=name
 
Name of attribute table
key=name
 
Name of key column
 
Must refer to an integer column
 
Default: cat
layer=string
 
Layer number or name
 
Format: layer number[/layer name]
 
Default: 1
separator=character
 
Field separator for shell script style output
 
Special characters: pipe, comma, space, tab, newline
 
Default: pipe

v.db.connect prints or sets database connection for a vector map. The user can add or remove link to attribute table on the certain layer.

Connection information (driver, database, table, key) is stored for each map, in the file
 
<database>/<location>/<mapset>/vector/<map>/dbln
If parameters for database connection are already set with db.connect, they are taken as default values and do not need to be specified each time.
When printing database connection ( p or g flag) the parameter layer is ignored, i.e. all connections are printed to the output.
Attention: Removing a vector map will also delete all tables linked to it! If you use v.db.connect to link further tables to your map, it is advisable to make a copy from those tables first and connect the copied tables to the vector map (see also v.overlay).

Note: The default database backend setting is SQLite. Print all database connection parameters for vector map.
 
v.db.connect -p map=roads
Print column types and names of table linked to vector map.
 
v.db.connect -c map=roads

Connect vector map to DBF table without or with variables.
 
Using default DB connection:
 
v.db.connect map=vectormap table=table
Using hardcoded path to DBF directory (not recommended):
 
 
v.db.connect map=vectormap table=table \
             database=/home/user/grassdata/spearfish60/PERMANENT/dbf
Using variable as DBF directory definition, single quotes must be used:
 
 
v.db.connect map=vectormap table=table \
             database=’$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/’
Connect vector map layer 2 and key ID to database with variables (note: if needed, single quotes must be used for the database parameter):
 
v.db.connect map=vectormap table=table layer=2 key=ID

Very similar to DBF driver example above.
 
db.connect driver=sqlite database=’$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db’
db.tables -p
v.db.connect map=vectormap table=table driver=sqlite \
             database=’$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite/sqlite.db’
v.db.connect -p map=vectormap

# note: connection which requires password
db.connect driver=mysql database="host=dbserver.foo.org,dbname=my_database"
db.login user=joshua [password=xxx]
# ... or enter password interactively.
db.tables -p
# connect external table to layer 2:
v.db.connect map=my_map table=my_mysql_table key=baz layer=2
v.db.connect -p my_map

# note: connection without password being asked
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

This example illustrated a mixed data storage with possibility top update attributes in external PostgreSQL database:
 
# Check current settings for attribute storage:
db.connect -p
# Import table from PostgreSQL to new map
# (NOTE: output map name needs to be different from table name in
#        case that GRASS is connected to PostgreSQL):
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
# Cancel table connection between map and attribute table:
v.db.connect map=mytable -d
v.db.connect map=mytable -p
# Drop table which was replicated due to import:
db.tables -p
echo "DROP TABLE mytable" | db.execute
db.tables -p
# reconnect map to table in PostgreSQL:
v.db.connect map=mytable driver=pg database="host=localhost,dbname=meteo" \
        table=mytable key=cat
# Now the geometry is stored in GRASS while the attributes are stored
# in PostgreSQL.
An alternative is to create a "view" of only ID, x, y [,z] columns and to use v.in.db on this view, then connect the original table to the geometry. This will be faster if the original table is very large.

This example illustrated a mixed data storage with possibility top update attributes in external PostGIS database:
 
# Check current settings for attribute storage:
db.connect -p
# Import table from PostGIS to new map
# (NOTE: output map name needs to be different from table name in
#        case that GRASS is connected to PostGIS):
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
# Drop table which was replicated due to import:
db.tables -p
echo "DROP TABLE mytable" | db.execute
db.tables -p
# reconnect map to table in PostGIS:
v.db.connect map=mytable driver=pg database="host=localhost,dbname=meteo" \
        table=mytable key=cat
# Now the geometry is stored in GRASS while the attributes are stored
# in PostGIS.

db.connect, db.copy, db.tables, v.db.addtable, v.db.droptable, v.db.addcolumn, v.db.dropcolumn, v.external, v.in.db, v.overlay

Radim Blazek, ITC-Irst, Trento, Italy
Last changed: $Date: 2015-10-01 23:06:38 +0200 (Thu, 01 Oct 2015) $

Available at: v.db.connect source code (history)
Main index | Vector index | Topics index | Keywords index | Graphical index | Full index
© 2003-2018 GRASS Development Team, GRASS GIS 7.4.3 Reference Manual
GRASS 7.4.3

Search for    or go to Top of page |  Section 1 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.