GRASS Programmer's Manual 6.4.1(2011)
|
00001 00015 #include <grass/dbmi.h> 00016 #include <grass/glocale.h> 00017 #include "macros.h" 00018 00028 dbDriver *db_start_driver_open_database(const char *drvname, 00029 const char *dbname) 00030 { 00031 dbHandle handle; 00032 dbDriver *driver; 00033 00034 G_debug(3, "db_start_driver_open_database():\n drvname = %s, dbname = %s", 00035 drvname, dbname); 00036 00037 db_init_handle(&handle); 00038 00039 driver = db_start_driver(drvname); 00040 if (driver == NULL) { 00041 G_warning(_("Unable to start driver <%s>"), drvname); 00042 return NULL; 00043 } 00044 db_set_handle(&handle, dbname, NULL); 00045 if (db_open_database(driver, &handle) != DB_OK) { 00046 G_warning(_("Unable to open database <%s> by driver <%s>"), 00047 dbname, drvname); 00048 db_shutdown_driver(driver); 00049 return NULL; 00050 } 00051 00052 return driver; 00053 } 00054 00062 int db_close_database_shutdown_driver(dbDriver * driver) 00063 { 00064 int status = db_close_database(driver); 00065 if (db_shutdown_driver(driver) != 0) 00066 status = DB_FAILED; 00067 00068 return status; 00069 }