GRASS Programmer's Manual  6.4.3(2013)-r
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties 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 }
struct driver * driver
Definition: driver/init.c:26
int db_shutdown_driver(dbDriver *driver)
Closedown the driver, and free the driver structure.
Definition: shutdown.c:36
int db_close_database(dbDriver *driver)
Close database connection.
Definition: c_closedb.c:26
int db_execute_immediate(dbDriver *driver, dbString *SQLstatement)
Execute SQL statements.
Definition: c_execute.c:27
int db_append_string(dbString *x, const char *s)
Definition: string.c:193
int db_delete_table(const char *drvname, const char *dbname, const char *tblname)
Delete table.
Definition: delete_tab.c:29
int db_set_handle(dbHandle *handle, const char *dbName, const char *dbSchema)
Definition: handle.c:22
return NULL
Definition: dbfopen.c:1394
G_warning("category support for [%s] in mapset [%s] %s", name, mapset, type)
char * db_get_string(dbString *x)
Definition: string.c:131
int G_debug(int level, const char *msg,...)
Print debugging message.
Definition: gis/debug.c:51
void db_init_handle(dbHandle *handle)
Definition: handle.c:10
int db_set_string(dbString *x, const char *s)
Definition: string.c:33
int db_open_database(dbDriver *driver, dbHandle *handle)
Open database connection.
Definition: c_opendb.c:27
dbDriver * db_start_driver(const char *name)
Initialize a new dbDriver for db transaction.
Definition: start.c:43
void db_init_string(dbString *x)
Definition: string.c:11