delete_tab.c

Go to the documentation of this file.
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     /* Open driver and database */
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     /* Delete table */
00037     /* TODO test if the tables exist */
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 

Generated on Sun Apr 6 17:31:38 2008 for GRASS by  doxygen 1.5.5