]> git.saurik.com Git - wxWidgets.git/blob - src/iodbc/henv.c
when the system is not yet start fully (macos not inited) mutexes and critical sectio...
[wxWidgets.git] / src / iodbc / henv.c
1 /*
2 * henv.c
3 *
4 * $Id$
5 *
6 * Environment object management functions
7 *
8 * The iODBC driver manager.
9 *
10 * Copyright (C) 1995 by Ke Jin <kejin@empress.com>
11 *
12 * This library is free software; you can redistribute it and/or
13 * modify it under the terms of the GNU Library General Public
14 * License as published by the Free Software Foundation; either
15 * version 2 of the License, or (at your option) any later version.
16 *
17 * This library is distributed in the hope that it will be useful,
18 * but WITHOUT ANY WARRANTY; without even the implied warranty of
19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 * Library General Public License for more details.
21 *
22 * You should have received a copy of the GNU Library General Public
23 * License along with this library; if not, write to the Free
24 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
25 */
26
27 #include "config.h"
28
29 #include "isql.h"
30 #include "isqlext.h"
31
32 #include "dlproc.h"
33
34 #include "herr.h"
35 #include "henv.h"
36
37 #include "itrace.h"
38
39 RETCODE SQL_API
40 SQLAllocEnv (HENV FAR * phenv)
41 {
42 GENV_t FAR *genv;
43
44 genv = (GENV_t *) MEM_ALLOC (sizeof (GENV_t));
45
46 if (genv == NULL)
47 {
48 *phenv = SQL_NULL_HENV;
49
50 return SQL_ERROR;
51 }
52
53 #if (ODBCVER >= 0x0300 )
54 genv->type = SQL_HANDLE_ENV;
55 #endif
56
57 genv->henv = SQL_NULL_HENV; /* driver's env list */
58 genv->hdbc = SQL_NULL_HDBC; /* driver's dbc list */
59 genv->herr = SQL_NULL_HERR; /* err list */
60
61 *phenv = (HENV) genv;
62
63 return SQL_SUCCESS;
64 }
65
66
67 RETCODE SQL_API
68 SQLFreeEnv (HENV henv)
69 {
70 GENV_t FAR *genv = (GENV_t *) henv;
71
72 if (henv == SQL_NULL_HENV)
73 {
74 return SQL_INVALID_HANDLE;
75 }
76
77 if (genv->hdbc != SQL_NULL_HDBC)
78 {
79 PUSHSQLERR (genv->herr, en_S1010);
80
81 return SQL_ERROR;
82 }
83
84 _iodbcdm_freesqlerrlist (genv->herr);
85
86 MEM_FREE (henv);
87
88 return SQL_SUCCESS;
89 }