00001 #include <grass/dbmi.h>
00002 #include "macros.h"
00003
00010 int
00011 db_delete_table ( char *drvname, char *dbname, char *tblname )
00012 {
00013 dbDriver *driver;
00014 dbHandle handle;
00015 dbString sql;
00016
00017 G_debug ( 3, "db_delete_table(): driver = %s, db = %s, table = %s\n",
00018 drvname, dbname, tblname);
00019
00020 db_init_handle (&handle);
00021 db_init_string (&sql);
00022
00023
00024 driver = db_start_driver(drvname);
00025 if ( driver == NULL) {
00026 G_warning ( "Cannot open driver '%s'", drvname);
00027 return DB_FAILED;
00028 }
00029 db_set_handle (&handle, dbname, NULL);
00030 if (db_open_database(driver, &handle) != DB_OK) {
00031 G_warning ( "Cannot open database '%s'", dbname);
00032 db_shutdown_driver(driver);
00033 return DB_FAILED;
00034 }
00035
00036
00037
00038 db_set_string ( &sql, "drop table ");
00039 db_append_string ( &sql, tblname);
00040 G_debug ( 3, db_get_string(&sql) );
00041
00042 if (db_execute_immediate (driver, &sql) != DB_OK ) {
00043 G_warning ( "Cannot drop table: '%s'", db_get_string(&sql) );
00044 db_close_database(driver);
00045 db_shutdown_driver(driver);
00046 return DB_FAILED;
00047 }
00048
00049 db_close_database(driver);
00050 db_shutdown_driver(driver);
00051
00052 return DB_OK;
00053 }
00054