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     dbHandle handle;
00033     dbString sql;
00034 
00035     G_debug(3, "db_delete_table(): driver = %s, db = %s, table = %s\n",
00036             drvname, dbname, tblname);
00037 
00038     db_init_handle(&handle);
00039     db_init_string(&sql);
00040 
00041     /* Open driver and database */
00042     driver = db_start_driver(drvname);
00043     if (driver == NULL) {
00044         G_warning(_("Unable to open driver <%s>"), drvname);
00045         return DB_FAILED;
00046     }
00047     db_set_handle(&handle, dbname, NULL);
00048     if (db_open_database(driver, &handle) != DB_OK) {
00049         G_warning(_("Unable to open database <%s> by driver <%s>"),
00050                   dbname, drvname);
00051         db_shutdown_driver(driver);
00052         return DB_FAILED;
00053     }
00054 
00055     /* Delete table */
00056     /* TODO test if the tables exist */
00057     db_set_string(&sql, "drop table ");
00058     db_append_string(&sql, tblname);
00059     G_debug(3, db_get_string(&sql));
00060 
00061     if (db_execute_immediate(driver, &sql) != DB_OK) {
00062         G_warning(_("Unable to drop table: '%s'"),
00063                   db_get_string(&sql));
00064         db_close_database(driver);
00065         db_shutdown_driver(driver);
00066         return DB_FAILED;
00067     }
00068 
00069     db_close_database(driver);
00070     db_shutdown_driver(driver);
00071 
00072     return DB_OK;
00073 }

Generated on Sat Oct 24 03:24:24 2009 for GRASS Programmer's Manual by  doxygen 1.6.1