GRASS 8 Programmer's Manual 8.6.0dev(2026)-4bb960b182
Loading...
Searching...
No Matches
db/dbmi_base/connect.c
Go to the documentation of this file.
1/*!
2 \file lib/db/dbmi_base/connect.c
3
4 \brief DBMI Library (base) - connect to DB
5
6 SPDX-FileCopyrightText: 1999-2009, 2011 GRASS Development Team
7 SPDX-License-Identifier: GPL-2.0-or-later
8
9 \author Joel Jones (CERL/UIUC), Radim Blazek
10 \author Doxygenized by Martin Landa <landa.martin gmail.com> (2011)
11 */
12
13#include <grass/gis.h>
14#include <grass/dbmi.h>
15
16/*!
17 \brief Set default DB connection settings
18
19 This function sets environmental variables as DB_DRIVER, DB_DATABASE,
20 DB_SCHEMA, DB_GROUP.
21
22 \param connection pointer to dbConnection with default settings
23
24 \return DB_OK
25 */
27{
28 /* TODO: add checks and return DB_* error code if needed */
29
30 G_unsetenv2("DB_DRIVER", G_VAR_MAPSET);
31 if (connection->driverName)
32 G_setenv2("DB_DRIVER", connection->driverName, G_VAR_MAPSET);
33
34 G_unsetenv2("DB_DATABASE", G_VAR_MAPSET);
35 if (connection->databaseName)
36 G_setenv2("DB_DATABASE", connection->databaseName, G_VAR_MAPSET);
37
38 G_unsetenv2("DB_SCHEMA", G_VAR_MAPSET);
39 if (connection->schemaName)
40 G_setenv2("DB_SCHEMA", connection->schemaName, G_VAR_MAPSET);
41
42 G_unsetenv2("DB_GROUP", G_VAR_MAPSET);
43 if (connection->group)
44 G_setenv2("DB_GROUP", connection->group, G_VAR_MAPSET);
45
46 /* below commented due to new mechanism:
47 if ( connection->hostName )
48 G_setenv("DB_HOST", connection->hostName);
49
50 if ( connection->location )
51 G_setenv("DB_LOCATION", connection->location);
52
53 if ( connection->user )
54 G_setenv("DB_USER", connection->user);
55
56 if ( connection->password )
57 G_setenv("DB_PASSWORD", connection->password);
58 */
59
60 return DB_OK;
61}
62
63/*!
64 \brief Get default DB connection settings for the current mapset
65
66 \param[out] connection pointer to dbConnection to be modified
67
68 \return DB_OK
69 \return DB_FAILED
70 */
72{
74
75 connection->driverName =
76 (char *)G_getenv_nofatal2("DB_DRIVER", G_VAR_MAPSET);
77 connection->databaseName =
78 (char *)G_getenv_nofatal2("DB_DATABASE", G_VAR_MAPSET);
79
80 if (connection->driverName == NULL || connection->databaseName == NULL)
81 return DB_FAILED;
82
83 connection->schemaName =
84 (char *)G_getenv_nofatal2("DB_SCHEMA", G_VAR_MAPSET);
85 connection->group = (char *)G_getenv_nofatal2("DB_GROUP", G_VAR_MAPSET);
86
87 /* try to get user/password */
88 db_get_login(connection->driverName, connection->databaseName,
89 (const char **)&(connection->user),
90 (const char **)&(connection->password),
91 (const char **)&(connection->hostName),
92 (const char **)&(connection->port));
93
94 return DB_OK;
95}
#define NULL
Definition ccmath.h:32
int db_get_connection(dbConnection *connection)
Get default DB connection settings for the current mapset.
int db_set_connection(dbConnection *connection)
Set default DB connection settings.
Main header of GRASS DataBase Management Interface.
#define DB_FAILED
Definition dbmi.h:70
#define DB_OK
Definition dbmi.h:69
int db_get_login(const char *, const char *, const char **, const char **, const char **, const char **)
Get login parameters for driver/database.
Definition login.c:379
void G_zero(void *, int)
Zero out a buffer, buf, of length i.
Definition gis/zero.c:21
void G_setenv2(const char *, const char *, int)
Set environment variable from specific place (updates .gisrc)
Definition env.c:457
void G_unsetenv2(const char *, int)
Remove name from environment from specific place.
Definition env.c:512
const char * G_getenv_nofatal2(const char *, int)
Get environment variable from specific place.
Definition env.c:422
#define G_VAR_MAPSET
Definition gis.h:179