/
iodbcext.h
400 lines (344 loc) · 15.8 KB
/
iodbcext.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
/*
* iodbcext.h
*
* $Id$
*
* iODBC extensions and changes to the SAG specifications
* for third party drivers
*
* The iODBC driver manager.
*
* Copyright (C) 1996-2024 OpenLink Software <iodbc@openlinksw.com>
* All Rights Reserved.
*
* This software is released under the terms of either of the following
* licenses:
*
* - GNU Library General Public License (see LICENSE.LGPL)
* - The BSD License (see LICENSE.BSD).
*
* Note that the only valid version of the LGPL license as far as this
* project is concerned is the original GNU Library General Public License
* Version 2, dated June 1991.
*
* While not mandated by the BSD license, any patches you make to the
* iODBC source code may be contributed back into the iODBC project
* at your discretion. Contributions will benefit the Open Source and
* Data Access community as a whole. Submissions may be made at:
*
* http://www.iodbc.org
*
*
* GNU Library Generic Public License Version 2
* ============================================
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; only
* Version 2 of the License dated June 1991.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the Free
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*
*
* The BSD License
* ===============
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name of OpenLink Software Inc. nor the names of its
* contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL OPENLINK OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#ifndef _IODBCEXT_H
#define _IODBCEXT_H
/*
* OpenLink API Extensions
*/
#define SQL_GETLASTROWID 1048L
#define SQL_GETLASTSERIAL 1049L
#define SQL_CONCUR_VAL_EXTENT 1050L
#define SQL_APPLICATION_NAME 1051L /* connect option */
#define SQL_PARSE_FWD_ONLY_REQ 1052L
#define SQL_DESC_KEY 1053L
#define SQL_APPEND_KEYS 1054L
#define SQL_DESC_EXPR 1055L
#define SQL_ATTR_WCHAR_SIZE 1056L
#define SQL_COLUMN_ROWVER SQL_DESC_ROWVER
#define SQL_COLUMN_KEY SQL_DESC_KEY
#define SQL_COLUMN_EXPR SQL_DESC_EXPR
#define SQL_ATTR_PARSE_FWD_ONLY_REQ SQL_PARSE_FWD_ONLY_REQ
#define SQL_ATTR_APPEND_KEYS SQL_APPEND_KEYS
/*
* Microsoft extensions for SQLServer
*/
/*
* SQLSetConnectOption/SQLSetStmtOption driver specific defines.
* Microsoft has 1200 thru 1249 reserved for Microsoft SQL Server
* driver usage.
*/
#define SQL_ATTR_ENLIST_IN_DTC 1207
#define SQL_ATTR_ENLIST_IN_XA 1208
#define SQL_ATTR_CONNECTION_DEAD 1209 /* GetConnectAttr only */
#define SQL_COPT_SS_BASE 1200
#define SQL_COPT_SS_REMOTE_PWD (SQL_COPT_SS_BASE+1) /* dbrpwset SQLSetConnectOption only */
#define SQL_COPT_SS_USE_PROC_FOR_PREP (SQL_COPT_SS_BASE+2) /* Use create proc for SQLPrepare */
#define SQL_COPT_SS_INTEGRATED_SECURITY (SQL_COPT_SS_BASE+3) /* Force integrated security on login */
#define SQL_COPT_SS_PRESERVE_CURSORS (SQL_COPT_SS_BASE+4) /* Preserve server cursors after SQLTransact */
#define SQL_COPT_SS_USER_DATA (SQL_COPT_SS_BASE+5) /* dbgetuserdata/dbsetuserdata */
#define SQL_COPT_SS_ANSI_OEM (SQL_COPT_SS_BASE+6) /* dbsetopt/DBANSItoOEM/DBOEMtoANSI */
#define SQL_COPT_SS_ENLIST_IN_DTC SQL_ATTR_ENLIST_IN_DTC /* Enlist in a DTC transaction */
#define SQL_COPT_SS_ENLIST_IN_XA SQL_ATTR_ENLIST_IN_XA /* Enlist in a XA transaction */
#define SQL_COPT_SS_CONNECTION_DEAD SQL_ATTR_CONNECTION_DEAD /* dbdead SQLGetConnectOption only */
#define SQL_COPT_SS_FALLBACK_CONNECT (SQL_COPT_SS_BASE+10) /* Enables FallBack connections */
#define SQL_COPT_SS_PERF_DATA (SQL_COPT_SS_BASE+11) /* Used to access SQL Server ODBC driver performance data */
#define SQL_COPT_SS_PERF_DATA_LOG (SQL_COPT_SS_BASE+12) /* Used to set the logfile name for the Performance data */
#define SQL_COPT_SS_PERF_QUERY_INTERVAL (SQL_COPT_SS_BASE+13) /* Used to set the query logging threshold in milliseconds. */
#define SQL_COPT_SS_PERF_QUERY_LOG (SQL_COPT_SS_BASE+14) /* Used to set the logfile name for saving queries. */
#define SQL_COPT_SS_PERF_QUERY (SQL_COPT_SS_BASE+15) /* Used to start and stop query logging. */
#define SQL_COPT_SS_PERF_DATA_LOG_NOW (SQL_COPT_SS_BASE+16) /* Used to make a statistics log entry to disk. */
#define SQL_COPT_SS_QUOTED_IDENT (SQL_COPT_SS_BASE+17) /* Enable/Disable Quoted Identifiers */
#define SQL_COPT_SS_ANSI_NPW (SQL_COPT_SS_BASE+18) /* Enable/Disable ANSI NULL, Padding and Warnings */
#define SQL_COPT_SS_BCP (SQL_COPT_SS_BASE+19) /* Allow BCP usage on connection */
#define SQL_COPT_SS_MAX_USED SQL_COPT_SS_BCP
#define SQL_SOPT_SS_BASE 1225
#define SQL_SOPT_SS_TEXTPTR_LOGGING (SQL_SOPT_SS_BASE+0) /* Text pointer logging */
#define SQL_SOPT_SS_CURRENT_COMMAND (SQL_SOPT_SS_BASE+1) /* dbcurcmd SQLGetStmtOption only */
#define SQL_SOPT_SS_HIDDEN_COLUMNS (SQL_SOPT_SS_BASE+2) /* Expose FOR BROWSE hidden columns */
#define SQL_SOPT_SS_NOBROWSETABLE (SQL_SOPT_SS_BASE+3) /* Set NOBROWSETABLE option */
#define SQL_SOPT_SS_REGIONALIZE (SQL_SOPT_SS_BASE+4) /* Regionalize output character conversions */
#define SQL_SOPT_SS_MAX_USED SQL_SOPT_SS_REGIONALIZE
/* Defines for use with SQL_COPT_SS_USE_PROC_FOR_PREP */
#define SQL_UP_OFF 0L /*Procedures won't be used for prepare*/
#define SQL_UP_ON 1L /*Procedures will be used for prepare*/
#define SQL_UP_ON_DROP 2L /*Temp procedures will be explicitly dropped*/
#define SQL_UP_DEFAULT SQL_UP_ON
/* Defines for use with SQL_COPT_SS_INTEGRATED_SECURITY - Pre-Connect Option only */
#define SQL_IS_OFF 0L /* Integrated security isn't used */
#define SQL_IS_ON 1L /* Integrated security is used */
#define SQL_IS_DEFAULT SQL_IS_OFF
/* Defines for use with SQL_COPT_SS_PRESERVE_CURSORS */
#define SQL_PC_OFF 0L /* Cursors are closed on SQLTransact */
#define SQL_PC_ON 1L /* Cursors remain open on SQLTransact */
#define SQL_PC_DEFAULT SQL_PC_OFF
/* Defines for use with SQL_COPT_SS_USER_DATA */
#define SQL_UD_NOTSET NULL /* No user data pointer set */
/* Defines for use with SQL_COPT_SS_ANSI_OEM */
#define SQL_AO_OFF 0L /* ANSI/OEM translation is not performed */
#define SQL_AO_ON 1L /* ANSI/OEM translation is performed */
#define SQL_AO_DEFAULT SQL_AO_OFF /* Default unless DSN OEM/ANSI checkbox is checked */
/* Defines for use with SQL_COPT_SS_FALLBACK_CONNECT */
#define SQL_FB_OFF 0L /* FallBack connections are disabled */
#define SQL_FB_ON 1L /* FallBack connections are enabled */
#define SQL_FB_DEFAULT SQL_FB_OFF
/* Defines for use with SQL_COPT_SS_BCP */
#define SQL_BCP_OFF 0L /* BCP is not allowed on connection */
#define SQL_BCP_ON 1L /* BCP is allowed on connection */
#define SQL_BCP_DEFAULT SQL_BCP_OFF
/* Defines for use with SQL_COPT_SS_QUOTED_IDENT - Pre-Connect Option only */
#define SQL_QI_OFF 0L /* Quoted identifiers are not supported */
#define SQL_QI_ON 1L /* Quoted identifiers are supported */
#define SQL_QI_DEFAULT SQL_QI_ON
/* Defines for use with SQL_COPT_SS_ANSI_NPW - Pre-Connect Option only */
#define SQL_AD_OFF 0L /* ANSI NULLs, Padding and Warnings are not supported */
#define SQL_AD_ON 1L /* ANSI NULLs, Padding and Warnings are supported */
#define SQL_AD_DEFAULT SQL_AD_ON
/* Defines for use with SQL_SOPT_SS_TEXTPTR_LOGGING */
#define SQL_TL_OFF 0L /* No logging on text pointer ops */
#define SQL_TL_ON 1L /* Logging occurs on text pointer ops */
#define SQL_TL_DEFAULT SQL_TL_ON
/* Defines for use with SQL_SOPT_SS_HIDDEN_COLUMNS */
#define SQL_HC_OFF 0L /* FOR BROWSE columns are hidden */
#define SQL_HC_ON 1L /* FOR BROWSE columns are exposed */
#define SQL_HC_DEFAULT SQL_HC_OFF
/* Defines for use with SQL_SOPT_SS_NOBROWSETABLE */
#define SQL_NB_OFF 0L /* NO_BROWSETABLE is off */
#define SQL_NB_ON 1L /* NO_BROWSETABLE is on */
#define SQL_NB_DEFAULT SQL_NB_OFF
/* Defines for use with SQL_SOPT_SS_REGIONALIZE */
#define SQL_RE_OFF 0L /* No regionalization occurs on output character conversions */
#define SQL_RE_ON 1L /* Regionalization occurs on output character conversions */
#define SQL_RE_DEFAULT SQL_RE_OFF
#define SQL_ATTR_APP_WCHAR_TYPE 1061
#define SQL_ATTR_APP_UNICODE_TYPE 1064
#define SQL_ATTR_DRIVER_UNICODE_TYPE 1065
#define SQL_DM_CP_UTF16 1
#define SQL_DM_CP_UTF8 2
#define SQL_DM_CP_UCS4 3
#if defined(SIZEOF_WCHAR)
# if (SIZEOF_WCHAR == 2)
# define SQL_DM_CP_DEF SQL_DM_CP_UTF16
# else
# define SQL_DM_CP_DEF SQL_DM_CP_UCS4
# endif
#else
# define SQL_DM_CP_DEF SQL_DM_CP_UCS4
#endif
/* DataDirect options for Connection/Env Attributes. */
#define SQL_DD_CP_ANSI 0
#define SQL_DD_CP_UCS2 SQL_DM_CP_UTF16
#define SQL_DD_CP_UTF8 SQL_DM_CP_UTF8
#define SQL_DD_CP_UTF16 SQL_DD_CP_UCS2
/*
* IBM extensions for DB2
*/
/* Options for SQLGetStmtOption/SQLSetStmtOption extensions */
#define SQL_CURSOR_HOLD 1250
#define SQL_ATTR_CURSOR_HOLD 1250
#define SQL_NODESCRIBE_OUTPUT 1251
#define SQL_ATTR_NODESCRIBE_OUTPUT 1251
#define SQL_NODESCRIBE_INPUT 1264
#define SQL_ATTR_NODESCRIBE_INPUT 1264
#define SQL_NODESCRIBE SQL_NODESCRIBE_OUTPUT
#define SQL_ATTR_NODESCRIBE SQL_NODESCRIBE_OUTPUT
#define SQL_CLOSE_BEHAVIOR 1257
#define SQL_ATTR_CLOSE_BEHAVIOR 1257
#define SQL_ATTR_CLOSEOPEN 1265
#define SQL_ATTR_CURRENT_PACKAGE_SET 1276
#define SQL_ATTR_DEFERRED_PREPARE 1277
#define SQL_ATTR_EARLYCLOSE 1268
#define SQL_ATTR_PROCESSCTL 1278
/* SQL_CLOSE_BEHAVIOR values. */
#define SQL_CC_NO_RELEASE 0
#define SQL_CC_RELEASE 1
#define SQL_CC_DEFAULT SQL_CC_NO_RELEASE
/* SQL_ATTR_DEFERRED_PREPARE values */
#define SQL_DEFERRED_PREPARE_ON 1
#define SQL_DEFERRED_PREPARE_OFF 0
#define SQL_DEFERRED_PREPARE_DEFAULT SQL_DEFERRED_PREPARE_ON
/* SQL_ATTR_EARLYCLOSE values */
#define SQL_EARLYCLOSE_ON 1
#define SQL_EARLYCLOSE_OFF 0
#define SQL_EARLYCLOSE_DEFAULT SQL_EARLYCLOSE_ON
/* SQL_ATTR_PROCESSCTL masks */
#define SQL_PROCESSCTL_NOTHREAD 0x00000001L
#define SQL_PROCESSCTL_NOFORK 0x00000002L
/* Options for SQL_CURSOR_HOLD */
#define SQL_CURSOR_HOLD_ON 1
#define SQL_CURSOR_HOLD_OFF 0
#define SQL_CURSOR_HOLD_DEFAULT SQL_CURSOR_HOLD_ON
/* Options for SQL_NODESCRIBE_INPUT/SQL_NODESCRIBE_OUTPUT */
#define SQL_NODESCRIBE_ON 1
#define SQL_NODESCRIBE_OFF 0
#define SQL_NODESCRIBE_DEFAULT SQL_NODESCRIBE_OFF
/* Options for SQLGetConnectOption/SQLSetConnectOption extensions */
#define SQL_WCHARTYPE 1252
#define SQL_LONGDATA_COMPAT 1253
#define SQL_CURRENT_SCHEMA 1254
#define SQL_DB2EXPLAIN 1258
#define SQL_DB2ESTIMATE 1259
#define SQL_PARAMOPT_ATOMIC 1260
#define SQL_STMTTXN_ISOLATION 1261
#define SQL_MAXCONN 1262
#define SQL_ATTR_WCHARTYPE SQL_WCHARTYPE
#define SQL_ATTR_LONGDATA_COMPAT SQL_LONGDATA_COMPAT
#define SQL_ATTR_CURRENT_SCHEMA SQL_CURRENT_SCHEMA
#define SQL_ATTR_DB2EXPLAIN SQL_DB2EXPLAIN
#define SQL_ATTR_DB2ESTIMATE SQL_DB2ESTIMATE
#define SQL_ATTR_PARAMOPT_ATOMIC SQL_PARAMOPT_ATOMIC
#define SQL_ATTR_STMTTXN_ISOLATION SQL_STMTTXN_ISOLATION
#define SQL_ATTR_MAXCONN SQL_MAXCONN
/* Options for SQLSetConnectOption, SQLSetEnvAttr */
#define SQL_CONNECTTYPE 1255
#define SQL_SYNC_POINT 1256
#define SQL_MINMEMORY_USAGE 1263
#define SQL_CONN_CONTEXT 1269
#define SQL_ATTR_INHERIT_NULL_CONNECT 1270
#define SQL_ATTR_FORCE_CONVERSION_ON_CLIENT 1275
#define SQL_ATTR_CONNECTTYPE SQL_CONNECTTYPE
#define SQL_ATTR_SYNC_POINT SQL_SYNC_POINT
#define SQL_ATTR_MINMEMORY_USAGE SQL_MINMEMORY_USAGE
#define SQL_ATTR_CONN_CONTEXT SQL_CONN_CONTEXT
/* Options for SQL_LONGDATA_COMPAT */
#define SQL_LD_COMPAT_YES 1
#define SQL_LD_COMPAT_NO 0
#define SQL_LD_COMPAT_DEFAULT SQL_LD_COMPAT_NO
/* Options for SQL_PARAMOPT_ATOMIC */
#define SQL_ATOMIC_YES 1
#define SQL_ATOMIC_NO 0
#define SQL_ATOMIC_DEFAULT SQL_ATOMIC_YES
/* Options for SQL_CONNECT_TYPE */
#define SQL_CONCURRENT_TRANS 1
#define SQL_COORDINATED_TRANS 2
#define SQL_CONNECTTYPE_DEFAULT SQL_CONCURRENT_TRANS
/* Options for SQL_SYNCPOINT */
#define SQL_ONEPHASE 1
#define SQL_TWOPHASE 2
#define SQL_SYNCPOINT_DEFAULT SQL_ONEPHASE
/* Options for SQL_DB2ESTIMATE */
#define SQL_DB2ESTIMATE_ON 1
#define SQL_DB2ESTIMATE_OFF 0
#define SQL_DB2ESTIMATE_DEFAULT SQL_DB2ESTIMATE_OFF
/* Options for SQL_DB2EXPLAIN */
#define SQL_DB2EXPLAIN_OFF 0x00000000L
#define SQL_DB2EXPLAIN_SNAPSHOT_ON 0x00000001L
#define SQL_DB2EXPLAIN_MODE_ON 0x00000002L
#define SQL_DB2EXPLAIN_SNAPSHOT_MODE_ON SQL_DB2EXPLAIN_SNAPSHOT_ON+SQL_DB2EXPLAIN_MODE_ON
#define SQL_DB2EXPLAIN_ON SQL_DB2EXPLAIN_SNAPSHOT_ON
#define SQL_DB2EXPLAIN_DEFAULT SQL_DB2EXPLAIN_OFF
/* Options for SQL_WCHARTYPE
* Note that you can only specify SQL_WCHARTYPE_CONVERT if you have an
* external compile flag SQL_WCHART_CONVERT defined
*/
#ifdef SQL_WCHART_CONVERT
#define SQL_WCHARTYPE_CONVERT 1
#endif
#define SQL_WCHARTYPE_NOCONVERT 0
#define SQL_WCHARTYPE_DEFAULT SQL_WCHARTYPE_NOCONVERT
/******************* Virtuoso ODBC Extensions *******************/
/*
* ODBC extensions for SQLGetDescField
*/
#define SQL_DESC_COL_DV_TYPE 1057L
#define SQL_DESC_COL_DT_DT_TYPE 1058L
#define SQL_DESC_COL_LITERAL_ATTR 1059L
#define SQL_DESC_COL_BOX_FLAGS 1060L
#define SQL_DESC_COL_LITERAL_LANG 1061L
#define SQL_DESC_COL_LITERAL_TYPE 1062L
/*
* Virtuoso - ODBC SQL_DESC_COL_DV_TYPE
*/
#define VIRTUOSO_DV_DATE 129
#define VIRTUOSO_DV_DATETIME 211
#define VIRTUOSO_DV_DOUBLE_FLOAT 191
#define VIRTUOSO_DV_IRI_ID 243
#define VIRTUOSO_DV_LONG_INT 189
#define VIRTUOSO_DV_NUMERIC 219
#define VIRTUOSO_DV_RDF 246
#define VIRTUOSO_DV_SINGLE_FLOAT 190
#define VIRTUOSO_DV_STRING 182
#define VIRTUOSO_DV_TIME 210
#define VIRTUOSO_DV_TIMESTAMP 128
#define VIRTUOSO_DV_TIMESTAMP_OBJ 208
/*
* Virtuoso - ODBC SQL_DESC_COL_DT_DT_TYPE
*/
#define VIRTUOSO_DT_TYPE_DATETIME 1
#define VIRTUOSO_DT_TYPE_DATE 2
#define VIRTUOSO_DT_TYPE_TIME 3
#endif /* _IODBCEXT_H */