1 /*!
2  * \file db/dbmi_driver/d_execute.c
3  *
4  * \brief DBMI Library (driver) - execute SQL statements
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 Execute SQL statements
22 
23   \return DB_OK on success
24   \return DB_FAILED on failure
25  */
db_d_execute_immediate(void)26 int db_d_execute_immediate(void)
27 {
28     int stat;
29     dbString SQLstatement;
30 
31     /* get the arg(s) */
32     db_init_string(&SQLstatement);
33     DB_RECV_STRING(&SQLstatement);
34 
35     /* call the procedure */
36     stat = db_driver_execute_immediate(&SQLstatement);
37     db_free_string(&SQLstatement);
38 
39     /* send the return code */
40     if (stat != DB_OK) {
41 	DB_SEND_FAILURE();
42 	return DB_OK;
43     }
44     DB_SEND_SUCCESS();
45 
46     /* no results */
47     return DB_OK;
48 }
49 
50 /*!
51   \brief Begin transaction
52 
53   \return DB_OK on success
54   \return DB_FAILED on failure
55  */
db_d_begin_transaction(void)56 int db_d_begin_transaction(void)
57 {
58     int stat;
59 
60     /* call the procedure */
61     stat = db_driver_begin_transaction();
62 
63     /* send the return code */
64     if (stat != DB_OK) {
65 	DB_SEND_FAILURE();
66 	return DB_OK;
67     }
68     DB_SEND_SUCCESS();
69 
70     /* no results */
71     return DB_OK;
72 }
73 
74 /*!
75   \brief Commit transaction
76 
77   \return DB_OK on success
78   \return DB_FAILED on failure
79  */
db_d_commit_transaction()80 int db_d_commit_transaction()
81 {
82     int stat;
83 
84     /* call the procedure */
85     stat = db_driver_commit_transaction();
86 
87     /* send the return code */
88     if (stat != DB_OK) {
89 	DB_SEND_FAILURE();
90 	return DB_OK;
91     }
92     DB_SEND_SUCCESS();
93 
94     /* no results */
95     return DB_OK;
96 }
97