On Mon, Jan 30, 2012 at 11:38 AM, Markus Neteler <nete...@osgeo.org> wrote:
> Hi
>
> to my knowledge no DBMI function exists yet to check if a column exists
> in (vector) table.
>
> Suggestions:
>
>     db_get_column(driver, hcolumn,key, &column);
>     if (!column)
>         G_fatal_error(_("Missing column <%s> in table <%s>"), hcolumn, table);
>

int db_get_column(dbDriver * Driver, const char *tname, const char *cname,
                  dbColumn ** Column);

exists in lib/db/dbmi_client/cloumn.c. This function sets *Column to
NULL and returns DB_Failed if the column does not exist.

Try v.extrude in trunk r50546 for an example.

Markus M


> Or this one (used in r50492, here modified):
>
>      if ((col_type =
>           db_column_Ctype(Driver, table, column)) == -1)
>           G_fatal_error(_("Column <%s> not found in table <%s>"),
> column, table);
>
> I am not familiar enough with DBMI but do see the need to have such a 
> function.
> Rationale: the SQLite backend happily accepts nonsensical names and the test
> should become a single line rather than the currently used workarounds in
> v.to.rast/support.c or v.extrude/main.c or the like.
>
> Markus
> _______________________________________________
> grass-dev mailing list
> grass-dev@lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-dev
_______________________________________________
grass-dev mailing list
grass-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-dev

Reply via email to