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
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
00056
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 }