]> git.saurik.com Git - wxWidgets.git/blob - src/iodbc/hdbc.h
Patch from Neil H.
[wxWidgets.git] / src / iodbc / hdbc.h
1 /*
2 * hdbc.h
3 *
4 * $Id$
5 *
6 * Data source connect 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 #ifndef _HDBC_H
27 #define _HDBC_H
28
29 typedef struct DBC
30 {
31 int type; /* must be 1st field */
32 struct DBC FAR *
33 next;
34
35 HENV genv; /* back point to global env object */
36
37 HDBC dhdbc; /* driver's private dbc */
38 HENV henv; /* back point to instant env object */
39 HSTMT hstmt; /* list of statement object handle(s) */
40 HERR herr;
41
42 int state;
43
44 /* options */
45 UDWORD access_mode;
46 UDWORD autocommit;
47
48 UDWORD login_timeout;
49 UDWORD odbc_cursors;
50 UDWORD packet_size;
51 UDWORD quiet_mode;
52 UDWORD txn_isolation;
53 SWORD cb_commit;
54 SWORD cb_rollback;
55
56 char FAR *
57 current_qualifier;
58
59 int trace; /* trace flag */
60 char FAR *
61 tfile;
62 void FAR *
63 tstm; /* trace stream */
64 }
65 DBC_t;
66
67 /*
68 * Note:
69 * - ODBC applications can see address of driver manager's
70 * connection object, i.e connection handle -- a void pointer,
71 * but not detail of it. ODBC applications can neither see
72 * detail driver's connection object nor its address.
73 *
74 * - ODBC driver manager knows its own connection objects and
75 * exposes their address to an ODBC application. Driver manager
76 * also knows address of driver's connection objects and keeps
77 * it via dhdbc field in driver manager's connection object.
78 *
79 * - ODBC driver exposes address of its own connection object to
80 * driver manager without detail.
81 *
82 * - Applications can get driver's connection object handle by
83 * SQLGetInfo() with fInfoType equals to SQL_DRIVER_HDBC.
84 */
85
86 enum
87 {
88 en_dbc_allocated,
89 en_dbc_needdata,
90 en_dbc_connected,
91 en_dbc_hstmt
92 };
93 #endif