default_name.c

Go to the documentation of this file.
00001 #include <stdlib.h>
00002 #include <string.h>
00003 #include <grass/gis.h>
00004 #include <grass/dbmi.h>
00005 
00011 const char *db_get_default_driver_name(void)
00012 {
00013     const char *drv;
00014 
00015     if ((drv = G__getenv2("DB_DRIVER", G_VAR_MAPSET)))
00016         return G_store(drv);
00017 
00018     return NULL;
00019 }
00020 
00026 const char *db_get_default_database_name(void)
00027 {
00028     const char *drv;
00029 
00030     if ((drv = G__getenv2("DB_DATABASE", G_VAR_MAPSET)))
00031         return G_store(drv);
00032 
00033     return NULL;
00034 }
00035 
00041 const char *db_get_default_schema_name(void)
00042 {
00043     const char *sch;
00044 
00045     if ((sch = G__getenv2("DB_SCHEMA", G_VAR_MAPSET)))
00046         return G_store(sch);
00047 
00048     return NULL;
00049 }
00050 
00056 const char *db_get_default_group_name(void)
00057 {
00058     const char *gr;
00059 
00060     if ((gr = G__getenv2("DB_GROUP", G_VAR_MAPSET)))
00061         return G_store(gr);
00062 
00063     return NULL;
00064 }
00065 
00066 
00067 
00073 int db_set_default_connection(void)
00074 {
00075     dbConnection connection;
00076     char buf[GPATH_MAX];
00077 
00078     G_debug(1,
00079             "Creating new default DB params with db_set_default_connection()");
00080 
00081     /* is this really needed ? */
00082     db_get_connection(&connection);
00083 
00084     if (strcmp(DB_DEFAULT_DRIVER, "dbf") == 0) {
00085         /* Set default values and create dbf db dir */
00086 
00087         connection.driverName = "dbf";
00088         connection.databaseName = "$GISDBASE/$LOCATION_NAME/$MAPSET/dbf/";
00089         db_set_connection(&connection);
00090 
00091         sprintf(buf, "%s/%s/dbf", G_location_path(), G_mapset());
00092         G__make_mapset_element("dbf");
00093     }
00094     else if (strcmp(DB_DEFAULT_DRIVER, "sqlite") == 0) {
00095         /* Set default values and create dbf db dir */
00096 
00097         connection.driverName = "sqlite";
00098         /*
00099          * TODO: Use one DB for entire mapset (LFS problems?)
00100          *      or per-map DBs in $MASPET/vector/mapname/sqlite.db (how to set that here?)
00101          *      or $MAPSET/sqlite/mapname.sql as with dbf?
00102          */
00103         connection.databaseName =
00104             "$GISDBASE/$LOCATION_NAME/$MAPSET/sqlite.db";
00105         db_set_connection(&connection);
00106     }
00107     else
00108         G_fatal_error("Programmer error");
00109 
00110     return DB_OK;
00111 }
Generated on Tue Apr 6 13:27:21 2010 for GRASS Programmer's Manual by  doxygen 1.6.3