[GRASS-dev] how to find out current working db driver and
database?
Glynn Clements
glynn at gclements.plus.com
Sat Oct 11 23:28:59 EDT 2008
Michael Barton wrote:
> As a start to fixing the currently broken table and column select
> combo boxes in the wxPython GUI, is there some way to find out what
> the current working setting is for the database driver and database
> (i.e., path)?
The defaults can be obtained with "db.connect -p", while the
parameters used by a specific vector map can be obtained with
"v.db.connect -g".
lib/python/grass.py has interfaces to both of these:
def db_connection():
"""Return the current database connection parameters
(interface to `db.connect -p').
"""
returns a dictionary:
kv = grass.db_connection()
database = kv['database']
driver = kv['driver']
while:
def vector_db(map, layer = None, **args):
"""Return the database connection details for a vector map
(interface to `v.db.connect -g').
"""
returns either a list:
f = grass.vector_db(map, layer)
if not f:
grass.fatal("An error occured while running v.db.connect")
layr = f[0]
table = f[1]
keycol = f[2]
database = f[3]
driver = f[4]
or a list of such lists if the "layer" argument is omitted.
Note: if you intend to parse the output from "v.db.connect -g"
yourself, use the (recently-added) fs= option. The default field
separator is a space, but the database may be a pathname, which might
contain spaces, particularly on Windows.
--
Glynn Clements <glynn at gclements.plus.com>
More information about the grass-dev
mailing list