[GRASS-SVN] r38786 - grass/trunk/gui/wxpython/gui_modules
svn_grass at osgeo.org
svn_grass at osgeo.org
Wed Aug 19 03:41:02 EDT 2009
Author: hamish
Date: 2009-08-19 03:41:02 -0400 (Wed, 19 Aug 2009)
New Revision: 38786
Modified:
grass/trunk/gui/wxpython/gui_modules/sqlbuilder.py
Log:
merge from devbr6-
double-quotes for WinGrass;
access tables not in the current mapset;
skip non-column lines of db.describe -c;
fix os.popen usage and quote DB (needs conversion to gcmd.RunCommand);
quote DB in os.system (needs conversion to gcmd.RunCommand)
Modified: grass/trunk/gui/wxpython/gui_modules/sqlbuilder.py
===================================================================
--- grass/trunk/gui/wxpython/gui_modules/sqlbuilder.py 2009-08-19 07:38:34 UTC (rev 38785)
+++ grass/trunk/gui/wxpython/gui_modules/sqlbuilder.py 2009-08-19 07:41:02 UTC (rev 38786)
@@ -52,7 +52,7 @@
self.vectmap = self.vectmap + "@" + grass.gisenv()['MAPSET']
self.mapname, self.mapset = self.vectmap.split("@")
self.layer,self.tablename, self.column, self.database, self.driver =\
- os.popen("v.db.connect -g fs='|' map=%s" %\
+ os.popen("v.db.connect -g fs=\"|\" map=%s" %\
(self.vectmap)).readlines()[0].strip().split("|")
self.qtype = qtype # type of the uqery: SELECT, UPDATE, DELETE, ...
@@ -224,10 +224,16 @@
quiet = True,
read = True,
flags = 'c',
- table = self.tablename)
+ table = self.tablename,
+ database = self.database,
+ driver = self.driver)
- # skip ncols and nrows lines
for line in ret.splitlines():
+ # skip ncols and nrows lines
+ linetype = line.strip().split(":")[0]
+ if linetype == "ncols" or linetype == "nrows":
+ continue
+
num, name, ctype, length = line.strip().split(":")
name.strip()
#self.columns_names.append(name)
@@ -243,7 +249,7 @@
self.list_values.Clear()
column = self.list_columns.GetString(idx)
i = 0
- for line in os.popen("""!db.select -c database=%s driver=%s sql="SELECT %s FROM %s" """ %\
+ for line in os.popen("db.select -c database=\"%s\" driver=%s sql=\"SELECT %s FROM %s\"" %\
(self.database,self.driver,column,self.tablename)):
if justsample and i < 256 or \
not justsample:
@@ -314,7 +320,7 @@
pass
def OnVerify(self,event):
if self.text_sql.GetValue():
- if os.system("""!db.select -t driver=%s database=%s sql="SELECT * FROM %s WHERE %s" """ % \
+ if os.system("""!db.select -t driver=%s database="%s" sql="SELECT * FROM %s WHERE %s" """ % \
(self.driver, self.database,self.tablename,
self.text_sql.GetValue().strip().replace("\n"," "))):
# FIXME: LOG
More information about the grass-commit
mailing list