]>
Commit | Line | Data |
---|---|---|
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 |