Go to the documentation of this file.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 }