GRASS Programmer's Manual  6.4.2(2012)
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
delete_tab.c
Go to the documentation of this file.
1 
15 #include <grass/dbmi.h>
16 #include <grass/glocale.h>
17 #include "macros.h"
18 
29 int db_delete_table(const char *drvname, const char *dbname, const char *tblname)
30 {
31  dbDriver *driver;
32  dbHandle handle;
33  dbString sql;
34 
35  G_debug(3, "db_delete_table(): driver = %s, db = %s, table = %s\n",
36  drvname, dbname, tblname);
37 
38  db_init_handle(&handle);
39  db_init_string(&sql);
40 
41  /* Open driver and database */
42  driver = db_start_driver(drvname);
43  if (driver == NULL) {
44  G_warning(_("Unable to open driver <%s>"), drvname);
45  return DB_FAILED;
46  }
47  db_set_handle(&handle, dbname, NULL);
48  if (db_open_database(driver, &handle) != DB_OK) {
49  G_warning(_("Unable to open database <%s> by driver <%s>"),
50  dbname, drvname);
51  db_shutdown_driver(driver);
52  return DB_FAILED;
53  }
54 
55  /* Delete table */
56  /* TODO test if the tables exist */
57  db_set_string(&sql, "drop table ");
58  db_append_string(&sql, tblname);
59  G_debug(3, db_get_string(&sql));
60 
61  if (db_execute_immediate(driver, &sql) != DB_OK) {
62  G_warning(_("Unable to drop table: '%s'"),
63  db_get_string(&sql));
64  db_close_database(driver);
65  db_shutdown_driver(driver);
66  return DB_FAILED;
67  }
68 
69  db_close_database(driver);
70  db_shutdown_driver(driver);
71 
72  return DB_OK;
73 }