GRASS 8 Programmer's Manual 8.6.0dev(2026)-1d1e47ad9d
Loading...
Searching...
No Matches
d_opendb.c
Go to the documentation of this file.
1/*!
2 * \file db/dbmi_driver/d_opendb.c
3 *
4 * \brief DBMI Library (driver) - open database connection
5 *
6 * (C) 1999-2008 by the GRASS Development Team
7 *
8 * This program is free software under the GNU General Public
9 * License (>=v2). Read the file COPYING that comes with GRASS
10 * for details.
11 *
12 * \author Joel Jones (CERL/UIUC), Radim Blazek
13 */
14
15#include <stdlib.h>
16#include <grass/dbmi.h>
17#include "macros.h"
18#include "dbstubs.h"
19
20/*!
21 \brief Open database connection
22
23 \return DB_OK on success
24 \return DB_FAILED on failure
25 */
27{
28 dbHandle handle;
29 int stat;
30
31 /* get the arg(s) */
32 db_init_handle(&handle);
33 DB_RECV_HANDLE(&handle);
34
35 /* see if there is a database already open */
37 db_error("Multiple open databases not allowed");
39 return DB_OK;
40 }
41
42 /* call the procedure */
44
45 /* send the return code */
46 if (stat != DB_OK) {
47 db_free_handle(&handle);
49 return DB_OK;
50 }
52
53 /* record the open in the driver state */
55 db_get_handle_dbschema(&handle));
56 /* DO NOT free the handle since we saved the pointers to the name,path */
57
58 /* no results */
59 return DB_OK;
60}
int db_d_open_database(void)
Open database connection.
Definition d_opendb.c:26
Main header of GRASS DataBase Management Interface.
#define DB_OK
Definition dbmi.h:71
int(* db_driver_open_database)(dbHandle *)
const char * db_get_handle_dbname(dbHandle *)
Get handle database name.
Definition handle.c:57
int db__test_database_open(void)
Test database connection.
void db__mark_database_open(const char *, const char *)
Mark database as opened.
void db_init_handle(dbHandle *)
Initialize handle (i.e database/schema)
Definition handle.c:23
void db_free_handle(dbHandle *)
Free dbHandle structure.
Definition handle.c:79
const char * db_get_handle_dbschema(dbHandle *)
Get handle schema name.
Definition handle.c:69
void db_error(const char *)
Report error message.
#define DB_SEND_SUCCESS()
Definition macros.h:13
#define DB_RECV_HANDLE(x)
Definition macros.h:131
#define DB_SEND_FAILURE()
Definition macros.h:18