GRASS Programmer's Manual  6.5.svn(2012)-r51648
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Defines
delete_tab.c
Go to the documentation of this file.
00001 
00015 #include <grass/dbmi.h>
00016 #include <grass/glocale.h>
00017 #include "macros.h"
00018 
00029 int db_delete_table(const char *drvname, const char *dbname, const char *tblname)
00030 {
00031     dbDriver *driver;
00032     dbString sql;
00033 
00034     G_debug(3, "db_delete_table(): driver = %s, db = %s, table = %s\n",
00035             drvname, dbname, tblname);
00036 
00037     /* Open driver and database */
00038     driver = db_start_driver_open_database(drvname, dbname);
00039     if (driver == NULL) {
00040         G_warning(_("Unable open database <%s> by driver <%s>"), dbname,
00041                   drvname);
00042         return DB_FAILED;
00043     }
00044 
00045     /* Delete table */
00046     /* TODO test if the tables exist */
00047     db_init_string(&sql);
00048     db_set_string(&sql, "drop table ");
00049     db_append_string(&sql, tblname);
00050     G_debug(3, db_get_string(&sql));
00051 
00052     if (db_execute_immediate(driver, &sql) != DB_OK) {
00053         G_warning(_("Unable to drop table: '%s'"),
00054                   db_get_string(&sql));
00055         db_close_database_shutdown_driver(driver);
00056         return DB_FAILED;
00057     }
00058 
00059     db_close_database_shutdown_driver(driver);
00060 
00061     return DB_OK;
00062 }