Line data Source code
1 : /**************************************************
2 : * sql.h
3 : *
4 : * These should be consistent with the MS version.
5 : *
6 : **************************************************/
7 : #ifndef __SQL_H
8 : #define __SQL_H
9 :
10 :
11 : /****************************
12 : * default to 3.51 declare something else before here and you get a whole new ball of wax
13 : ***************************/
14 : #ifndef ODBCVER
15 : #define ODBCVER 0x0380
16 : #endif
17 :
18 : #ifndef __SQLTYPES_H
19 : #include "sqltypes.h"
20 : #endif
21 :
22 : #ifdef __cplusplus
23 : extern "C" {
24 : #endif
25 :
26 : /****************************
27 : * some ret values
28 : ***************************/
29 : #define SQL_NULL_DATA (-1)
30 : #define SQL_DATA_AT_EXEC (-2)
31 : #define SQL_SUCCESS 0
32 : #define SQL_SUCCESS_WITH_INFO 1
33 : #if (ODBCVER >= 0x0300)
34 : #define SQL_NO_DATA 100
35 : #endif
36 : #define SQL_ERROR (-1)
37 : #define SQL_INVALID_HANDLE (-2)
38 : #define SQL_STILL_EXECUTING 2
39 : #define SQL_NEED_DATA 99
40 : #define SQL_SUCCEEDED(rc) (((rc)&(~1))==0)
41 :
42 : #if (ODBCVER >= 0x0380)
43 : #define SQL_PARAM_DATA_AVAILABLE 101
44 : #endif
45 :
46 : /****************************
47 : * use these to indicate string termination to some function
48 : ***************************/
49 : #define SQL_NTS (-3)
50 : #define SQL_NTSL (-3L)
51 :
52 : /* maximum message length */
53 : #define SQL_MAX_MESSAGE_LENGTH 512
54 :
55 : /* date/time length constants */
56 : #if (ODBCVER >= 0x0300)
57 : #define SQL_DATE_LEN 10
58 : #define SQL_TIME_LEN 8 /* add P+1 if precision is nonzero */
59 : #define SQL_TIMESTAMP_LEN 19 /* add P+1 if precision is nonzero */
60 : #endif
61 :
62 : /* handle type identifiers */
63 : #if (ODBCVER >= 0x0300)
64 : #define SQL_HANDLE_ENV 1
65 : #define SQL_HANDLE_DBC 2
66 : #define SQL_HANDLE_STMT 3
67 : #define SQL_HANDLE_DESC 4
68 : #endif
69 :
70 : /* environment attribute */
71 : #if (ODBCVER >= 0x0300)
72 : #define SQL_ATTR_OUTPUT_NTS 10001
73 : #endif
74 :
75 : /* connection attributes */
76 : #if (ODBCVER >= 0x0300)
77 : #define SQL_ATTR_AUTO_IPD 10001
78 : #define SQL_ATTR_METADATA_ID 10014
79 : #endif /* ODBCVER >= 0x0300 */
80 :
81 : /* statement attributes */
82 : #if (ODBCVER >= 0x0300)
83 : #define SQL_ATTR_APP_ROW_DESC 10010
84 : #define SQL_ATTR_APP_PARAM_DESC 10011
85 : #define SQL_ATTR_IMP_ROW_DESC 10012
86 : #define SQL_ATTR_IMP_PARAM_DESC 10013
87 : #define SQL_ATTR_CURSOR_SCROLLABLE (-1)
88 : #define SQL_ATTR_CURSOR_SENSITIVITY (-2)
89 : #endif
90 :
91 : /* SQL_ATTR_CURSOR_SCROLLABLE values */
92 : #if (ODBCVER >= 0x0300)
93 : #define SQL_NONSCROLLABLE 0
94 : #define SQL_SCROLLABLE 1
95 : #endif /* ODBCVER >= 0x0300 */
96 :
97 : /* identifiers of fields in the SQL descriptor */
98 : #if (ODBCVER >= 0x0300)
99 : #define SQL_DESC_COUNT 1001
100 : #define SQL_DESC_TYPE 1002
101 : #define SQL_DESC_LENGTH 1003
102 : #define SQL_DESC_OCTET_LENGTH_PTR 1004
103 : #define SQL_DESC_PRECISION 1005
104 : #define SQL_DESC_SCALE 1006
105 : #define SQL_DESC_DATETIME_INTERVAL_CODE 1007
106 : #define SQL_DESC_NULLABLE 1008
107 : #define SQL_DESC_INDICATOR_PTR 1009
108 : #define SQL_DESC_DATA_PTR 1010
109 : #define SQL_DESC_NAME 1011
110 : #define SQL_DESC_UNNAMED 1012
111 : #define SQL_DESC_OCTET_LENGTH 1013
112 : #define SQL_DESC_ALLOC_TYPE 1099
113 : #endif
114 :
115 : /* identifiers of fields in the diagnostics area */
116 : #if (ODBCVER >= 0x0300)
117 : #define SQL_DIAG_RETURNCODE 1
118 : #define SQL_DIAG_NUMBER 2
119 : #define SQL_DIAG_ROW_COUNT 3
120 : #define SQL_DIAG_SQLSTATE 4
121 : #define SQL_DIAG_NATIVE 5
122 : #define SQL_DIAG_MESSAGE_TEXT 6
123 : #define SQL_DIAG_DYNAMIC_FUNCTION 7
124 : #define SQL_DIAG_CLASS_ORIGIN 8
125 : #define SQL_DIAG_SUBCLASS_ORIGIN 9
126 : #define SQL_DIAG_CONNECTION_NAME 10
127 : #define SQL_DIAG_SERVER_NAME 11
128 : #define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12
129 : #endif
130 :
131 : /* dynamic function codes */
132 : #if (ODBCVER >= 0x0300)
133 : #define SQL_DIAG_ALTER_DOMAIN 3
134 : #define SQL_DIAG_ALTER_TABLE 4
135 : #define SQL_DIAG_CALL 7
136 : #define SQL_DIAG_CREATE_ASSERTION 6
137 : #define SQL_DIAG_CREATE_CHARACTER_SET 8
138 : #define SQL_DIAG_CREATE_COLLATION 10
139 : #define SQL_DIAG_CREATE_DOMAIN 23
140 : #define SQL_DIAG_CREATE_INDEX (-1)
141 : #define SQL_DIAG_CREATE_SCHEMA 64
142 : #define SQL_DIAG_CREATE_TABLE 77
143 : #define SQL_DIAG_CREATE_TRANSLATION 79
144 : #define SQL_DIAG_CREATE_VIEW 84
145 : #define SQL_DIAG_DELETE_WHERE 19
146 : #define SQL_DIAG_DROP_ASSERTION 24
147 : #define SQL_DIAG_DROP_CHARACTER_SET 25
148 : #define SQL_DIAG_DROP_COLLATION 26
149 : #define SQL_DIAG_DROP_DOMAIN 27
150 : #define SQL_DIAG_DROP_INDEX (-2)
151 : #define SQL_DIAG_DROP_SCHEMA 31
152 : #define SQL_DIAG_DROP_TABLE 32
153 : #define SQL_DIAG_DROP_TRANSLATION 33
154 : #define SQL_DIAG_DROP_VIEW 36
155 : #define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38
156 : #define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81
157 : #define SQL_DIAG_GRANT 48
158 : #define SQL_DIAG_INSERT 50
159 : #define SQL_DIAG_REVOKE 59
160 : #define SQL_DIAG_SELECT_CURSOR 85
161 : #define SQL_DIAG_UNKNOWN_STATEMENT 0
162 : #define SQL_DIAG_UPDATE_WHERE 82
163 : #endif /* ODBCVER >= 0x0300 */
164 :
165 : /* SQL data type codes */
166 : #define SQL_UNKNOWN_TYPE 0
167 : #define SQL_CHAR 1
168 : #define SQL_NUMERIC 2
169 : #define SQL_DECIMAL 3
170 : #define SQL_INTEGER 4
171 : #define SQL_SMALLINT 5
172 : #define SQL_FLOAT 6
173 : #define SQL_REAL 7
174 : #define SQL_DOUBLE 8
175 : #if (ODBCVER >= 0x0300)
176 : #define SQL_DATETIME 9
177 : #endif
178 : #define SQL_VARCHAR 12
179 :
180 : /* One-parameter shortcuts for date/time data types */
181 : #if (ODBCVER >= 0x0300)
182 : #define SQL_TYPE_DATE 91
183 : #define SQL_TYPE_TIME 92
184 : #define SQL_TYPE_TIMESTAMP 93
185 : #endif
186 :
187 : /* Statement attribute values for cursor sensitivity */
188 : #if (ODBCVER >= 0x0300)
189 : #define SQL_UNSPECIFIED 0
190 : #define SQL_INSENSITIVE 1
191 : #define SQL_SENSITIVE 2
192 : #endif
193 :
194 : /* GetTypeInfo() request for all data types */
195 : #define SQL_ALL_TYPES 0
196 :
197 : /* Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData() */
198 : #if (ODBCVER >= 0x0300)
199 : #define SQL_DEFAULT 99
200 : #endif
201 :
202 : /* SQLGetData() code indicating that the application row descriptor
203 : * specifies the data type
204 : */
205 : #if (ODBCVER >= 0x0300)
206 : #define SQL_ARD_TYPE (-99)
207 : #endif
208 :
209 : /* SQL date/time type subcodes */
210 : #if (ODBCVER >= 0x0300)
211 : #define SQL_CODE_DATE 1
212 : #define SQL_CODE_TIME 2
213 : #define SQL_CODE_TIMESTAMP 3
214 : #endif
215 :
216 : /* CLI option values */
217 : #if (ODBCVER >= 0x0300)
218 : #define SQL_FALSE 0
219 : #define SQL_TRUE 1
220 : #endif
221 :
222 : /* values of NULLABLE field in descriptor */
223 : #define SQL_NO_NULLS 0
224 : #define SQL_NULLABLE 1
225 :
226 : /* Value returned by SQLGetTypeInfo() to denote that it is
227 : * not known whether or not a data type supports null values.
228 : */
229 : #define SQL_NULLABLE_UNKNOWN 2
230 :
231 : /* Values returned by SQLGetTypeInfo() to show WHERE clause
232 : * supported
233 : */
234 : #if (ODBCVER >= 0x0300)
235 : #define SQL_PRED_NONE 0
236 : #define SQL_PRED_CHAR 1
237 : #define SQL_PRED_BASIC 2
238 : #endif
239 :
240 : /* values of UNNAMED field in descriptor */
241 : #if (ODBCVER >= 0x0300)
242 : #define SQL_NAMED 0
243 : #define SQL_UNNAMED 1
244 : #endif
245 :
246 : /* values of ALLOC_TYPE field in descriptor */
247 : #if (ODBCVER >= 0x0300)
248 : #define SQL_DESC_ALLOC_AUTO 1
249 : #define SQL_DESC_ALLOC_USER 2
250 : #endif
251 :
252 : /* FreeStmt() options */
253 : #define SQL_CLOSE 0
254 : #define SQL_DROP 1
255 : #define SQL_UNBIND 2
256 : #define SQL_RESET_PARAMS 3
257 :
258 : /* Codes used for FetchOrientation in SQLFetchScroll(),
259 : and in SQLDataSources()
260 : */
261 : #define SQL_FETCH_NEXT 1
262 : #define SQL_FETCH_FIRST 2
263 :
264 : /* Other codes used for FetchOrientation in SQLFetchScroll() */
265 : #define SQL_FETCH_LAST 3
266 : #define SQL_FETCH_PRIOR 4
267 : #define SQL_FETCH_ABSOLUTE 5
268 : #define SQL_FETCH_RELATIVE 6
269 :
270 : /* SQLEndTran() options */
271 : #define SQL_COMMIT 0
272 : #define SQL_ROLLBACK 1
273 :
274 : /* null handles returned by SQLAllocHandle() */
275 : #define SQL_NULL_HENV 0
276 : #define SQL_NULL_HDBC 0
277 : #define SQL_NULL_HSTMT 0
278 : #if (ODBCVER >= 0x0300)
279 : #define SQL_NULL_HDESC 0
280 : #define SQL_NULL_DESC 0
281 : #endif
282 :
283 : /* null handle used in place of parent handle when allocating HENV */
284 : #if (ODBCVER >= 0x0300)
285 : #define SQL_NULL_HANDLE 0L
286 : #endif
287 :
288 : /* Values that may appear in the result set of SQLSpecialColumns() */
289 : #define SQL_SCOPE_CURROW 0
290 : #define SQL_SCOPE_TRANSACTION 1
291 : #define SQL_SCOPE_SESSION 2
292 :
293 : #define SQL_PC_UNKNOWN 0
294 : #if (ODBCVER >= 0x0300)
295 : #define SQL_PC_NON_PSEUDO 1
296 : #endif
297 : #define SQL_PC_PSEUDO 2
298 :
299 : /* Reserved value for the IdentifierType argument of SQLSpecialColumns() */
300 : #if (ODBCVER >= 0x0300)
301 : #define SQL_ROW_IDENTIFIER 1
302 : #endif
303 :
304 : /* Reserved values for UNIQUE argument of SQLStatistics() */
305 : #define SQL_INDEX_UNIQUE 0
306 : #define SQL_INDEX_ALL 1
307 :
308 : /* Values that may appear in the result set of SQLStatistics() */
309 : #define SQL_INDEX_CLUSTERED 1
310 : #define SQL_INDEX_HASHED 2
311 : #define SQL_INDEX_OTHER 3
312 :
313 : /* SQLGetFunctions() values to identify ODBC APIs */
314 : #define SQL_API_SQLALLOCCONNECT 1
315 : #define SQL_API_SQLALLOCENV 2
316 : #if (ODBCVER >= 0x0300)
317 : #define SQL_API_SQLALLOCHANDLE 1001
318 : #endif
319 : #define SQL_API_SQLALLOCSTMT 3
320 : #define SQL_API_SQLBINDCOL 4
321 : #if (ODBCVER >= 0x0300)
322 : #define SQL_API_SQLBINDPARAM 1002
323 : #endif
324 : #define SQL_API_SQLCANCEL 5
325 : #if (ODBCVER >= 0x0300)
326 : #define SQL_API_SQLCLOSECURSOR 1003
327 : #define SQL_API_SQLCOLATTRIBUTE 6
328 : #endif
329 : #define SQL_API_SQLCOLUMNS 40
330 : #define SQL_API_SQLCONNECT 7
331 : #if (ODBCVER >= 0x0300)
332 : #define SQL_API_SQLCOPYDESC 1004
333 : #endif
334 : #define SQL_API_SQLDATASOURCES 57
335 : #define SQL_API_SQLDESCRIBECOL 8
336 : #define SQL_API_SQLDISCONNECT 9
337 : #if (ODBCVER >= 0x0300)
338 : #define SQL_API_SQLENDTRAN 1005
339 : #endif
340 : #define SQL_API_SQLERROR 10
341 : #define SQL_API_SQLEXECDIRECT 11
342 : #define SQL_API_SQLEXECUTE 12
343 : #define SQL_API_SQLFETCH 13
344 : #if (ODBCVER >= 0x0300)
345 : #define SQL_API_SQLFETCHSCROLL 1021
346 : #endif
347 : #define SQL_API_SQLFREECONNECT 14
348 : #define SQL_API_SQLFREEENV 15
349 : #if (ODBCVER >= 0x0300)
350 : #define SQL_API_SQLFREEHANDLE 1006
351 : #endif
352 : #define SQL_API_SQLFREESTMT 16
353 : #if (ODBCVER >= 0x0300)
354 : #define SQL_API_SQLGETCONNECTATTR 1007
355 : #endif
356 : #define SQL_API_SQLGETCONNECTOPTION 42
357 : #define SQL_API_SQLGETCURSORNAME 17
358 : #define SQL_API_SQLGETDATA 43
359 : #if (ODBCVER >= 0x0300)
360 : #define SQL_API_SQLGETDESCFIELD 1008
361 : #define SQL_API_SQLGETDESCREC 1009
362 : #define SQL_API_SQLGETDIAGFIELD 1010
363 : #define SQL_API_SQLGETDIAGREC 1011
364 : #define SQL_API_SQLGETENVATTR 1012
365 : #endif
366 : #define SQL_API_SQLGETFUNCTIONS 44
367 : #define SQL_API_SQLGETINFO 45
368 : #if (ODBCVER >= 0x0300)
369 : #define SQL_API_SQLGETSTMTATTR 1014
370 : #endif
371 : #define SQL_API_SQLGETSTMTOPTION 46
372 : #define SQL_API_SQLGETTYPEINFO 47
373 : #define SQL_API_SQLNUMRESULTCOLS 18
374 : #define SQL_API_SQLPARAMDATA 48
375 : #define SQL_API_SQLPREPARE 19
376 : #define SQL_API_SQLPUTDATA 49
377 : #define SQL_API_SQLROWCOUNT 20
378 : #if (ODBCVER >= 0x0300)
379 : #define SQL_API_SQLSETCONNECTATTR 1016
380 : #endif
381 : #define SQL_API_SQLSETCONNECTOPTION 50
382 : #define SQL_API_SQLSETCURSORNAME 21
383 : #if (ODBCVER >= 0x0300)
384 : #define SQL_API_SQLSETDESCFIELD 1017
385 : #define SQL_API_SQLSETDESCREC 1018
386 : #define SQL_API_SQLSETENVATTR 1019
387 : #endif
388 : #define SQL_API_SQLSETPARAM 22
389 : #if (ODBCVER >= 0x0300)
390 : #define SQL_API_SQLSETSTMTATTR 1020
391 : #endif
392 : #define SQL_API_SQLSETSTMTOPTION 51
393 : #define SQL_API_SQLSPECIALCOLUMNS 52
394 : #define SQL_API_SQLSTATISTICS 53
395 : #define SQL_API_SQLTABLES 54
396 : #define SQL_API_SQLTRANSACT 23
397 :
398 : #if (ODBCVER >= 0x0380)
399 : #define SQL_API_SQLCANCELHANDLE 1022
400 : #endif
401 :
402 : /* Information requested by SQLGetInfo() */
403 : #if (ODBCVER >= 0x0300)
404 : #define SQL_MAX_DRIVER_CONNECTIONS 0
405 : #define SQL_MAXIMUM_DRIVER_CONNECTIONS SQL_MAX_DRIVER_CONNECTIONS
406 : #define SQL_MAX_CONCURRENT_ACTIVITIES 1
407 : #define SQL_MAXIMUM_CONCURRENT_ACTIVITIES SQL_MAX_CONCURRENT_ACTIVITIES
408 : #endif
409 : #define SQL_DATA_SOURCE_NAME 2
410 : #define SQL_FETCH_DIRECTION 8
411 : #define SQL_SERVER_NAME 13
412 : #define SQL_SEARCH_PATTERN_ESCAPE 14
413 : #define SQL_DBMS_NAME 17
414 : #define SQL_DBMS_VER 18
415 : #define SQL_ACCESSIBLE_TABLES 19
416 : #define SQL_ACCESSIBLE_PROCEDURES 20
417 : #define SQL_CURSOR_COMMIT_BEHAVIOR 23
418 : #define SQL_DATA_SOURCE_READ_ONLY 25
419 : #define SQL_DEFAULT_TXN_ISOLATION 26
420 : #define SQL_IDENTIFIER_CASE 28
421 : #define SQL_IDENTIFIER_QUOTE_CHAR 29
422 : #define SQL_MAX_COLUMN_NAME_LEN 30
423 : #define SQL_MAXIMUM_COLUMN_NAME_LENGTH SQL_MAX_COLUMN_NAME_LEN
424 : #define SQL_MAX_CURSOR_NAME_LEN 31
425 : #define SQL_MAXIMUM_CURSOR_NAME_LENGTH SQL_MAX_CURSOR_NAME_LEN
426 : #define SQL_MAX_SCHEMA_NAME_LEN 32
427 : #define SQL_MAXIMUM_SCHEMA_NAME_LENGTH SQL_MAX_SCHEMA_NAME_LEN
428 : #define SQL_MAX_CATALOG_NAME_LEN 34
429 : #define SQL_MAXIMUM_CATALOG_NAME_LENGTH SQL_MAX_CATALOG_NAME_LEN
430 : #define SQL_MAX_TABLE_NAME_LEN 35
431 : #define SQL_SCROLL_CONCURRENCY 43
432 : #define SQL_TXN_CAPABLE 46
433 : #define SQL_TRANSACTION_CAPABLE SQL_TXN_CAPABLE
434 : #define SQL_USER_NAME 47
435 : #define SQL_TXN_ISOLATION_OPTION 72
436 : #define SQL_TRANSACTION_ISOLATION_OPTION SQL_TXN_ISOLATION_OPTION
437 : #define SQL_INTEGRITY 73
438 : #define SQL_GETDATA_EXTENSIONS 81
439 : #define SQL_NULL_COLLATION 85
440 : #define SQL_ALTER_TABLE 86
441 : #define SQL_ORDER_BY_COLUMNS_IN_SELECT 90
442 : #define SQL_SPECIAL_CHARACTERS 94
443 : #define SQL_MAX_COLUMNS_IN_GROUP_BY 97
444 : #define SQL_MAXIMUM_COLUMNS_IN_GROUP_BY SQL_MAX_COLUMNS_IN_GROUP_BY
445 : #define SQL_MAX_COLUMNS_IN_INDEX 98
446 : #define SQL_MAXIMUM_COLUMNS_IN_INDEX SQL_MAX_COLUMNS_IN_INDEX
447 : #define SQL_MAX_COLUMNS_IN_ORDER_BY 99
448 : #define SQL_MAXIMUM_COLUMNS_IN_ORDER_BY SQL_MAX_COLUMNS_IN_ORDER_BY
449 : #define SQL_MAX_COLUMNS_IN_SELECT 100
450 : #define SQL_MAXIMUM_COLUMNS_IN_SELECT SQL_MAX_COLUMNS_IN_SELECT
451 : #define SQL_MAX_COLUMNS_IN_TABLE 101
452 : #define SQL_MAX_INDEX_SIZE 102
453 : #define SQL_MAXIMUM_INDEX_SIZE SQL_MAX_INDEX_SIZE
454 : #define SQL_MAX_ROW_SIZE 104
455 : #define SQL_MAXIMUM_ROW_SIZE SQL_MAX_ROW_SIZE
456 : #define SQL_MAX_STATEMENT_LEN 105
457 : #define SQL_MAXIMUM_STATEMENT_LENGTH SQL_MAX_STATEMENT_LEN
458 : #define SQL_MAX_TABLES_IN_SELECT 106
459 : #define SQL_MAXIMUM_TABLES_IN_SELECT SQL_MAX_TABLES_IN_SELECT
460 : #define SQL_MAX_USER_NAME_LEN 107
461 : #define SQL_MAXIMUM_USER_NAME_LENGTH SQL_MAX_USER_NAME_LEN
462 : #if (ODBCVER >= 0x0300)
463 : #define SQL_OJ_CAPABILITIES 115
464 : #define SQL_OUTER_JOIN_CAPABILITIES SQL_OJ_CAPABILITIES
465 : #endif /* ODBCVER >= 0x0300 */
466 :
467 : #if (ODBCVER >= 0x0300)
468 : #define SQL_XOPEN_CLI_YEAR 10000
469 : #define SQL_CURSOR_SENSITIVITY 10001
470 : #define SQL_DESCRIBE_PARAMETER 10002
471 : #define SQL_CATALOG_NAME 10003
472 : #define SQL_COLLATION_SEQ 10004
473 : #define SQL_MAX_IDENTIFIER_LEN 10005
474 : #define SQL_MAXIMUM_IDENTIFIER_LENGTH SQL_MAX_IDENTIFIER_LEN
475 : #endif /* ODBCVER >= 0x0300 */
476 :
477 : /* SQL_ALTER_TABLE bitmasks */
478 : #if (ODBCVER >= 0x0200)
479 : #define SQL_AT_ADD_COLUMN 0x00000001L
480 : #define SQL_AT_DROP_COLUMN 0x00000002L
481 : #endif /* ODBCVER >= 0x0200 */
482 :
483 : #if (ODBCVER >= 0x0300)
484 : #define SQL_AT_ADD_CONSTRAINT 0x00000008L
485 :
486 : /* The following bitmasks are ODBC extensions and defined in sqlext.h
487 : *#define SQL_AT_COLUMN_SINGLE 0x00000020L
488 : *#define SQL_AT_ADD_COLUMN_DEFAULT 0x00000040L
489 : *#define SQL_AT_ADD_COLUMN_COLLATION 0x00000080L
490 : *#define SQL_AT_SET_COLUMN_DEFAULT 0x00000100L
491 : *#define SQL_AT_DROP_COLUMN_DEFAULT 0x00000200L
492 : *#define SQL_AT_DROP_COLUMN_CASCADE 0x00000400L
493 : *#define SQL_AT_DROP_COLUMN_RESTRICT 0x00000800L
494 : *#define SQL_AT_ADD_TABLE_CONSTRAINT 0x00001000L
495 : *#define SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE 0x00002000L
496 : *#define SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT 0x00004000L
497 : *#define SQL_AT_CONSTRAINT_NAME_DEFINITION 0x00008000L
498 : *#define SQL_AT_CONSTRAINT_INITIALLY_DEFERRED 0x00010000L
499 : *#define SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE 0x00020000L
500 : *#define SQL_AT_CONSTRAINT_DEFERRABLE 0x00040000L
501 : *#define SQL_AT_CONSTRAINT_NON_DEFERRABLE 0x00080000L
502 : */
503 : #endif /* ODBCVER >= 0x0300 */
504 :
505 :
506 : /* SQL_ASYNC_MODE values */
507 : #if (ODBCVER >= 0x0300)
508 : #define SQL_AM_NONE 0
509 : #define SQL_AM_CONNECTION 1
510 : #define SQL_AM_STATEMENT 2
511 : #endif
512 :
513 : /* SQL_CURSOR_COMMIT_BEHAVIOR values */
514 : #define SQL_CB_DELETE 0
515 : #define SQL_CB_CLOSE 1
516 : #define SQL_CB_PRESERVE 2
517 :
518 : /* SQL_FETCH_DIRECTION bitmasks */
519 : #define SQL_FD_FETCH_NEXT 0x00000001L
520 : #define SQL_FD_FETCH_FIRST 0x00000002L
521 : #define SQL_FD_FETCH_LAST 0x00000004L
522 : #define SQL_FD_FETCH_PRIOR 0x00000008L
523 : #define SQL_FD_FETCH_ABSOLUTE 0x00000010L
524 : #define SQL_FD_FETCH_RELATIVE 0x00000020L
525 :
526 : /* SQL_GETDATA_EXTENSIONS bitmasks */
527 : #define SQL_GD_ANY_COLUMN 0x00000001L
528 : #define SQL_GD_ANY_ORDER 0x00000002L
529 :
530 : /* SQL_IDENTIFIER_CASE values */
531 : #define SQL_IC_UPPER 1
532 : #define SQL_IC_LOWER 2
533 : #define SQL_IC_SENSITIVE 3
534 : #define SQL_IC_MIXED 4
535 :
536 : /* SQL_OJ_CAPABILITIES bitmasks */
537 : /* NB: this means 'outer join', not what you may be thinking */
538 :
539 :
540 : #if (ODBCVER >= 0x0201)
541 : #define SQL_OJ_LEFT 0x00000001L
542 : #define SQL_OJ_RIGHT 0x00000002L
543 : #define SQL_OJ_FULL 0x00000004L
544 : #define SQL_OJ_NESTED 0x00000008L
545 : #define SQL_OJ_NOT_ORDERED 0x00000010L
546 : #define SQL_OJ_INNER 0x00000020L
547 : #define SQL_OJ_ALL_COMPARISON_OPS 0x00000040L
548 : #endif
549 :
550 : /* SQL_SCROLL_CONCURRENCY bitmasks */
551 : #define SQL_SCCO_READ_ONLY 0x00000001L
552 : #define SQL_SCCO_LOCK 0x00000002L
553 : #define SQL_SCCO_OPT_ROWVER 0x00000004L
554 : #define SQL_SCCO_OPT_VALUES 0x00000008L
555 :
556 : /* SQL_TXN_CAPABLE values */
557 : #define SQL_TC_NONE 0
558 : #define SQL_TC_DML 1
559 : #define SQL_TC_ALL 2
560 : #define SQL_TC_DDL_COMMIT 3
561 : #define SQL_TC_DDL_IGNORE 4
562 :
563 : /* SQL_TXN_ISOLATION_OPTION bitmasks */
564 : #define SQL_TXN_READ_UNCOMMITTED 0x00000001L
565 : #define SQL_TRANSACTION_READ_UNCOMMITTED SQL_TXN_READ_UNCOMMITTED
566 : #define SQL_TXN_READ_COMMITTED 0x00000002L
567 : #define SQL_TRANSACTION_READ_COMMITTED SQL_TXN_READ_COMMITTED
568 : #define SQL_TXN_REPEATABLE_READ 0x00000004L
569 : #define SQL_TRANSACTION_REPEATABLE_READ SQL_TXN_REPEATABLE_READ
570 : #define SQL_TXN_SERIALIZABLE 0x00000008L
571 : #define SQL_TRANSACTION_SERIALIZABLE SQL_TXN_SERIALIZABLE
572 :
573 : /* SQL_NULL_COLLATION values */
574 : #define SQL_NC_HIGH 0
575 : #define SQL_NC_LOW 1
576 :
577 0 : SQLRETURN SQL_API SQLAllocConnect(SQLHENV EnvironmentHandle,
578 : SQLHDBC *ConnectionHandle);
579 :
580 0 : SQLRETURN SQL_API SQLAllocEnv(SQLHENV *EnvironmentHandle);
581 :
582 : #if (ODBCVER >= 0x0300)
583 12 : SQLRETURN SQL_API SQLAllocHandle(SQLSMALLINT HandleType,
584 : SQLHANDLE InputHandle, SQLHANDLE *OutputHandle);
585 : #endif
586 :
587 11 : SQLRETURN SQL_API SQLAllocStmt(SQLHDBC ConnectionHandle,
588 : SQLHSTMT *StatementHandle);
589 :
590 12 : SQLRETURN SQL_API SQLBindCol(SQLHSTMT StatementHandle,
591 : SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType,
592 : SQLPOINTER TargetValue, SQLLEN BufferLength,
593 : SQLLEN *StrLen_or_Ind);
594 :
595 : #if (ODBCVER >= 0x0300)
596 : SQLRETURN SQL_API SQLBindParam(SQLHSTMT StatementHandle,
597 : SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType,
598 : SQLSMALLINT ParameterType, SQLULEN LengthPrecision,
599 : SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue,
600 : SQLLEN *StrLen_or_Ind);
601 : #endif
602 :
603 0 : SQLRETURN SQL_API SQLCancel(SQLHSTMT StatementHandle);
604 :
605 : #if (ODBCVER >= 0x0380)
606 : SQLRETURN SQL_API SQLCancelHandle(SQLSMALLINT HandleType, SQLHANDLE InputHandle);
607 : #endif
608 :
609 :
610 : #if (ODBCVER >= 0x0300)
611 85 : SQLRETURN SQL_API SQLCloseCursor(SQLHSTMT StatementHandle);
612 :
613 6 : SQLRETURN SQL_API SQLColAttribute(SQLHSTMT StatementHandle,
614 : SQLUSMALLINT ColumnNumber, SQLUSMALLINT FieldIdentifier,
615 : SQLPOINTER CharacterAttribute, SQLSMALLINT BufferLength,
616 : SQLSMALLINT *StringLength, SQLLEN *NumericAttribute );
617 :
618 : /* spec says (SQLPOINTER) not (SQLEN*) - PAH */
619 : /* Ms now say SQLLEN*
620 : http://msdn.microsoft.com/library/en-us/odbc/htm/dasdkodbcoverview_64bit.asp - NG */
621 :
622 : #endif
623 :
624 :
625 4 : SQLRETURN SQL_API SQLColumns(SQLHSTMT StatementHandle,
626 : SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
627 : SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
628 : SQLCHAR *TableName, SQLSMALLINT NameLength3,
629 : SQLCHAR *ColumnName, SQLSMALLINT NameLength4);
630 :
631 :
632 5 : SQLRETURN SQL_API SQLConnect(SQLHDBC ConnectionHandle,
633 : SQLCHAR *ServerName, SQLSMALLINT NameLength1,
634 : SQLCHAR *UserName, SQLSMALLINT NameLength2,
635 : SQLCHAR *Authentication, SQLSMALLINT NameLength3);
636 :
637 : #if (ODBCVER >= 0x0300)
638 0 : SQLRETURN SQL_API SQLCopyDesc(SQLHDESC SourceDescHandle,
639 : SQLHDESC TargetDescHandle);
640 : #endif
641 :
642 0 : SQLRETURN SQL_API SQLDataSources(SQLHENV EnvironmentHandle,
643 : SQLUSMALLINT Direction, SQLCHAR *ServerName,
644 : SQLSMALLINT BufferLength1, SQLSMALLINT *NameLength1,
645 : SQLCHAR *Description, SQLSMALLINT BufferLength2,
646 : SQLSMALLINT *NameLength2);
647 :
648 1580 : SQLRETURN SQL_API SQLDescribeCol(SQLHSTMT StatementHandle,
649 : SQLUSMALLINT ColumnNumber, SQLCHAR *ColumnName,
650 : SQLSMALLINT BufferLength, SQLSMALLINT *NameLength,
651 : SQLSMALLINT *DataType, SQLULEN *ColumnSize,
652 : SQLSMALLINT *DecimalDigits, SQLSMALLINT *Nullable);
653 :
654 6 : SQLRETURN SQL_API SQLDisconnect(SQLHDBC ConnectionHandle);
655 :
656 : #if (ODBCVER >= 0x0300)
657 2 : SQLRETURN SQL_API SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle,
658 : SQLSMALLINT CompletionType);
659 : #endif
660 :
661 0 : SQLRETURN SQL_API SQLError(SQLHENV EnvironmentHandle,
662 : SQLHDBC ConnectionHandle, SQLHSTMT StatementHandle,
663 : SQLCHAR *Sqlstate, SQLINTEGER *NativeError,
664 : SQLCHAR *MessageText, SQLSMALLINT BufferLength,
665 : SQLSMALLINT *TextLength);
666 :
667 18 : SQLRETURN SQL_API SQLExecDirect(SQLHSTMT StatementHandle,
668 : SQLCHAR *StatementText, SQLINTEGER TextLength);
669 :
670 2004 : SQLRETURN SQL_API SQLExecute(SQLHSTMT StatementHandle);
671 :
672 1647 : SQLRETURN SQL_API SQLFetch(SQLHSTMT StatementHandle);
673 :
674 : #if (ODBCVER >= 0x0300)
675 1001 : SQLRETURN SQL_API SQLFetchScroll(SQLHSTMT StatementHandle,
676 : SQLSMALLINT FetchOrientation, SQLLEN FetchOffset);
677 : #endif
678 :
679 0 : SQLRETURN SQL_API SQLFreeConnect(SQLHDBC ConnectionHandle);
680 :
681 0 : SQLRETURN SQL_API SQLFreeEnv(SQLHENV EnvironmentHandle);
682 :
683 : #if (ODBCVER >= 0x0300)
684 22 : SQLRETURN SQL_API SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle);
685 : #endif
686 :
687 10 : SQLRETURN SQL_API SQLFreeStmt(SQLHSTMT StatementHandle,
688 : SQLUSMALLINT Option);
689 :
690 : #if (ODBCVER >= 0x0300)
691 0 : SQLRETURN SQL_API SQLGetConnectAttr(SQLHDBC ConnectionHandle,
692 : SQLINTEGER Attribute, SQLPOINTER Value,
693 : SQLINTEGER BufferLength, SQLINTEGER *StringLength);
694 : #endif
695 :
696 0 : SQLRETURN SQL_API SQLGetConnectOption(SQLHDBC ConnectionHandle,
697 : SQLUSMALLINT Option, SQLPOINTER Value);
698 :
699 0 : SQLRETURN SQL_API SQLGetCursorName(SQLHSTMT StatementHandle,
700 : SQLCHAR *CursorName, SQLSMALLINT BufferLength,
701 : SQLSMALLINT *NameLength);
702 :
703 6420 : SQLRETURN SQL_API SQLGetData(SQLHSTMT StatementHandle,
704 : SQLUSMALLINT ColumnNumber, SQLSMALLINT TargetType,
705 : SQLPOINTER TargetValue, SQLLEN BufferLength,
706 : SQLLEN *StrLen_or_Ind);
707 :
708 : #if (ODBCVER >= 0x0300)
709 0 : SQLRETURN SQLGetDescField(SQLHDESC DescriptorHandle,
710 : SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier,
711 : SQLPOINTER Value, SQLINTEGER BufferLength,
712 : SQLINTEGER *StringLength);
713 :
714 0 : SQLRETURN SQL_API SQLGetDescRec(SQLHDESC DescriptorHandle,
715 : SQLSMALLINT RecNumber, SQLCHAR *Name,
716 : SQLSMALLINT BufferLength, SQLSMALLINT *StringLength,
717 : SQLSMALLINT *Type, SQLSMALLINT *SubType,
718 : SQLLEN *Length, SQLSMALLINT *Precision,
719 : SQLSMALLINT *Scale, SQLSMALLINT *Nullable);
720 :
721 0 : SQLRETURN SQL_API SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle,
722 : SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier,
723 : SQLPOINTER DiagInfo, SQLSMALLINT BufferLength,
724 : SQLSMALLINT *StringLength);
725 :
726 15 : SQLRETURN SQL_API SQLGetDiagRec(SQLSMALLINT HandleType, SQLHANDLE Handle,
727 : SQLSMALLINT RecNumber, SQLCHAR *Sqlstate,
728 : SQLINTEGER *NativeError, SQLCHAR *MessageText,
729 : SQLSMALLINT BufferLength, SQLSMALLINT *TextLength);
730 :
731 6 : SQLRETURN SQL_API SQLGetEnvAttr(SQLHENV EnvironmentHandle,
732 : SQLINTEGER Attribute, SQLPOINTER Value,
733 : SQLINTEGER BufferLength, SQLINTEGER *StringLength);
734 : #endif /* ODBCVER >= 0x0300 */
735 :
736 6 : SQLRETURN SQL_API SQLGetFunctions(SQLHDBC ConnectionHandle,
737 : SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported);
738 :
739 160 : SQLRETURN SQL_API SQLGetInfo(SQLHDBC ConnectionHandle,
740 : SQLUSMALLINT InfoType, SQLPOINTER InfoValue,
741 : SQLSMALLINT BufferLength, SQLSMALLINT *StringLength);
742 :
743 : #if (ODBCVER >= 0x0300)
744 68 : SQLRETURN SQL_API SQLGetStmtAttr(SQLHSTMT StatementHandle,
745 : SQLINTEGER Attribute, SQLPOINTER Value,
746 : SQLINTEGER BufferLength, SQLINTEGER *StringLength);
747 : #endif /* ODBCVER >= 0x0300 */
748 :
749 0 : SQLRETURN SQL_API SQLGetStmtOption(SQLHSTMT StatementHandle,
750 : SQLUSMALLINT Option, SQLPOINTER Value);
751 :
752 3 : SQLRETURN SQL_API SQLGetTypeInfo(SQLHSTMT StatementHandle,
753 : SQLSMALLINT DataType);
754 :
755 86 : SQLRETURN SQL_API SQLNumResultCols(SQLHSTMT StatementHandle,
756 : SQLSMALLINT *ColumnCount);
757 :
758 0 : SQLRETURN SQL_API SQLParamData(SQLHSTMT StatementHandle,
759 : SQLPOINTER *Value);
760 :
761 3 : SQLRETURN SQL_API SQLPrepare(SQLHSTMT StatementHandle,
762 : SQLCHAR *StatementText, SQLINTEGER TextLength);
763 :
764 0 : SQLRETURN SQL_API SQLPutData(SQLHSTMT StatementHandle,
765 : SQLPOINTER Data, SQLLEN StrLen_or_Ind);
766 :
767 86 : SQLRETURN SQL_API SQLRowCount(SQLHSTMT StatementHandle,
768 : SQLLEN *RowCount);
769 :
770 : #if (ODBCVER >= 0x0300)
771 3 : SQLRETURN SQL_API SQLSetConnectAttr(SQLHDBC ConnectionHandle,
772 : SQLINTEGER Attribute, SQLPOINTER Value,
773 : SQLINTEGER StringLength);
774 : #endif /* ODBCVER >= 0x0300 */
775 :
776 0 : SQLRETURN SQL_API SQLSetConnectOption(SQLHDBC ConnectionHandle,
777 : SQLUSMALLINT Option, SQLULEN Value);
778 :
779 0 : SQLRETURN SQL_API SQLSetCursorName(SQLHSTMT StatementHandle,
780 : SQLCHAR *CursorName, SQLSMALLINT NameLength);
781 :
782 : #if (ODBCVER >= 0x0300)
783 0 : SQLRETURN SQL_API SQLSetDescField(SQLHDESC DescriptorHandle,
784 : SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier,
785 : SQLPOINTER Value, SQLINTEGER BufferLength);
786 :
787 0 : SQLRETURN SQL_API SQLSetDescRec(SQLHDESC DescriptorHandle,
788 : SQLSMALLINT RecNumber, SQLSMALLINT Type,
789 : SQLSMALLINT SubType, SQLLEN Length,
790 : SQLSMALLINT Precision, SQLSMALLINT Scale,
791 : SQLPOINTER Data, SQLLEN *StringLength,
792 : SQLLEN *Indicator);
793 :
794 6 : SQLRETURN SQL_API SQLSetEnvAttr(SQLHENV EnvironmentHandle,
795 : SQLINTEGER Attribute, SQLPOINTER Value,
796 : SQLINTEGER StringLength);
797 : #endif /* ODBCVER >= 0x0300 */
798 :
799 0 : SQLRETURN SQL_API SQLSetParam(SQLHSTMT StatementHandle,
800 : SQLUSMALLINT ParameterNumber, SQLSMALLINT ValueType,
801 : SQLSMALLINT ParameterType, SQLULEN LengthPrecision,
802 : SQLSMALLINT ParameterScale, SQLPOINTER ParameterValue,
803 : SQLLEN *StrLen_or_Ind);
804 :
805 : #if (ODBCVER >= 0x0300)
806 12 : SQLRETURN SQL_API SQLSetStmtAttr(SQLHSTMT StatementHandle,
807 : SQLINTEGER Attribute, SQLPOINTER Value,
808 : SQLINTEGER StringLength);
809 : #endif
810 :
811 0 : SQLRETURN SQL_API SQLSetStmtOption(SQLHSTMT StatementHandle,
812 : SQLUSMALLINT Option, SQLULEN Value);
813 :
814 10 : SQLRETURN SQL_API SQLSpecialColumns(SQLHSTMT StatementHandle,
815 : SQLUSMALLINT IdentifierType, SQLCHAR *CatalogName,
816 : SQLSMALLINT NameLength1, SQLCHAR *SchemaName,
817 : SQLSMALLINT NameLength2, SQLCHAR *TableName,
818 : SQLSMALLINT NameLength3, SQLUSMALLINT Scope,
819 : SQLUSMALLINT Nullable);
820 :
821 14 : SQLRETURN SQL_API SQLStatistics(SQLHSTMT StatementHandle,
822 : SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
823 : SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
824 : SQLCHAR *TableName, SQLSMALLINT NameLength3,
825 : SQLUSMALLINT Unique, SQLUSMALLINT Reserved);
826 :
827 9 : SQLRETURN SQL_API SQLTables(SQLHSTMT StatementHandle,
828 : SQLCHAR *CatalogName, SQLSMALLINT NameLength1,
829 : SQLCHAR *SchemaName, SQLSMALLINT NameLength2,
830 : SQLCHAR *TableName, SQLSMALLINT NameLength3,
831 : SQLCHAR *TableType, SQLSMALLINT NameLength4);
832 :
833 0 : SQLRETURN SQL_API SQLTransact(SQLHENV EnvironmentHandle,
834 : SQLHDBC ConnectionHandle, SQLUSMALLINT CompletionType);
835 :
836 : #ifdef __cplusplus
837 : }
838 : #endif
839 : #endif
|