GRASS Programmer's Manual 6.4.1(2011)
|
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 }