[GRASS-SVN] r34494 - grass/trunk/vector/v.to.db
svn_grass at osgeo.org
svn_grass at osgeo.org
Wed Nov 26 04:28:14 EST 2008
Author: neteler
Date: 2008-11-26 04:28:13 -0500 (Wed, 26 Nov 2008)
New Revision: 34494
Modified:
grass/trunk/vector/v.to.db/query.c
grass/trunk/vector/v.to.db/update.c
Log:
fix to use qlayer to find table to read from (fixes wrong access if layer>1 is used)
Modified: grass/trunk/vector/v.to.db/query.c
===================================================================
--- grass/trunk/vector/v.to.db/query.c 2008-11-26 08:17:34 UTC (rev 34493)
+++ grass/trunk/vector/v.to.db/query.c 2008-11-26 09:28:13 UTC (rev 34494)
@@ -81,6 +81,8 @@
if ((Fi = Vect_get_field(Map, options.qfield)) == NULL)
G_fatal_error(_("Database connection not defined for layer %d. Use v.db.connect first."),
options.qfield);
+ G_debug(3, "Reading from map <%s>, query layer %d: updating table <%s>, column <%s>",
+ options.name, options.qfield, Fi->table, Fi->key);
/* Open driver */
driver = db_start_driver_open_database(Fi->driver, Fi->database);
Modified: grass/trunk/vector/v.to.db/update.c
===================================================================
--- grass/trunk/vector/v.to.db/update.c 2008-11-26 08:17:34 UTC (rev 34493)
+++ grass/trunk/vector/v.to.db/update.c 2008-11-26 09:28:13 UTC (rev 34494)
@@ -10,7 +10,7 @@
{
int i, *catexst, *cex, upd, fcat;
char buf1[2000], buf2[2000], left[20], right[20];
- struct field_info *Fi;
+ struct field_info *qFi, *Fi;
dbString stmt;
dbDriver *driver;
@@ -22,9 +22,16 @@
db_init_string(&stmt);
+ /* layer to find table to read from */
+ if ((qFi = Vect_get_field(Map, options.qfield)) == NULL)
+ G_fatal_error(_("Database connection not defined for layer %d. Use v.db.connect first."),
+ options.qfield);
+ /* layer to find table to write to */
if ((Fi = Vect_get_field(Map, options.field)) == NULL)
G_fatal_error(_("Database connection not defined for layer %d. Use v.db.connect first."),
options.field);
+ G_debug(3, "Reading from map <%s>, query layer %d: updating table <%s>, column <%s>",
+ options.name, options.qfield, Fi->table, Fi->key);
/* Open driver */
driver = db_start_driver_open_database(Fi->driver, Fi->database);
@@ -36,7 +43,7 @@
db_begin_transaction(driver);
/* select existing categories to array (array is sorted) */
- vstat.select = db_select_int(driver, Fi->table, Fi->key, NULL, &catexst);
+ vstat.select = db_select_int(driver, qFi->table, Fi->key, NULL, &catexst);
/* create beginning of stmt */
switch (options.option) {
@@ -62,6 +69,8 @@
break;
}
+ G_debug(3, "Existing categories: %d", vstat.rcat);
+
/* update */
G_message(_("Updating database..."));
for (i = 0; i < vstat.rcat; i++) {
@@ -180,6 +189,7 @@
}
}
+ G_debug(3, "SQL: %s", buf2);
db_set_string(&stmt, buf2);
/* category exist in DB ? */
More information about the grass-commit
mailing list