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 | SQLRETURN SQL_API SQLAllocConnect(SQLHENV EnvironmentHandle, |
578 | SQLHDBC *ConnectionHandle); |
579 | |
580 | SQLRETURN SQL_API SQLAllocEnv(SQLHENV *EnvironmentHandle); |
581 | |
582 | #if (ODBCVER >= 0x0300) |
583 | SQLRETURN SQL_API SQLAllocHandle(SQLSMALLINT HandleType, |
584 | SQLHANDLE InputHandle, SQLHANDLE *OutputHandle); |
585 | #endif |
586 | |
587 | SQLRETURN SQL_API SQLAllocStmt(SQLHDBC ConnectionHandle, |
588 | SQLHSTMT *StatementHandle); |
589 | |
590 | 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 | 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 | SQLRETURN SQL_API SQLCloseCursor(SQLHSTMT StatementHandle); |
612 | |
613 | 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 | 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 | 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 | SQLRETURN SQL_API SQLCopyDesc(SQLHDESC SourceDescHandle, |
639 | SQLHDESC TargetDescHandle); |
640 | #endif |
641 | |
642 | 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 | 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 | SQLRETURN SQL_API SQLDisconnect(SQLHDBC ConnectionHandle); |
655 | |
656 | #if (ODBCVER >= 0x0300) |
657 | SQLRETURN SQL_API SQLEndTran(SQLSMALLINT HandleType, SQLHANDLE Handle, |
658 | SQLSMALLINT CompletionType); |
659 | #endif |
660 | |
661 | 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 | SQLRETURN SQL_API SQLExecDirect(SQLHSTMT StatementHandle, |
668 | SQLCHAR *StatementText, SQLINTEGER TextLength); |
669 | |
670 | SQLRETURN SQL_API SQLExecute(SQLHSTMT StatementHandle); |
671 | |
672 | SQLRETURN SQL_API SQLFetch(SQLHSTMT StatementHandle); |
673 | |
674 | #if (ODBCVER >= 0x0300) |
675 | SQLRETURN SQL_API SQLFetchScroll(SQLHSTMT StatementHandle, |
676 | SQLSMALLINT FetchOrientation, SQLLEN FetchOffset); |
677 | #endif |
678 | |
679 | SQLRETURN SQL_API SQLFreeConnect(SQLHDBC ConnectionHandle); |
680 | |
681 | SQLRETURN SQL_API SQLFreeEnv(SQLHENV EnvironmentHandle); |
682 | |
683 | #if (ODBCVER >= 0x0300) |
684 | SQLRETURN SQL_API SQLFreeHandle(SQLSMALLINT HandleType, SQLHANDLE Handle); |
685 | #endif |
686 | |
687 | SQLRETURN SQL_API SQLFreeStmt(SQLHSTMT StatementHandle, |
688 | SQLUSMALLINT Option); |
689 | |
690 | #if (ODBCVER >= 0x0300) |
691 | SQLRETURN SQL_API SQLGetConnectAttr(SQLHDBC ConnectionHandle, |
692 | SQLINTEGER Attribute, SQLPOINTER Value, |
693 | SQLINTEGER BufferLength, SQLINTEGER *StringLength); |
694 | #endif |
695 | |
696 | SQLRETURN SQL_API SQLGetConnectOption(SQLHDBC ConnectionHandle, |
697 | SQLUSMALLINT Option, SQLPOINTER Value); |
698 | |
699 | SQLRETURN SQL_API SQLGetCursorName(SQLHSTMT StatementHandle, |
700 | SQLCHAR *CursorName, SQLSMALLINT BufferLength, |
701 | SQLSMALLINT *NameLength); |
702 | |
703 | 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 | SQLRETURN SQLGetDescField(SQLHDESC DescriptorHandle, |
710 | SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, |
711 | SQLPOINTER Value, SQLINTEGER BufferLength, |
712 | SQLINTEGER *StringLength); |
713 | |
714 | 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 | SQLRETURN SQL_API SQLGetDiagField(SQLSMALLINT HandleType, SQLHANDLE Handle, |
722 | SQLSMALLINT RecNumber, SQLSMALLINT DiagIdentifier, |
723 | SQLPOINTER DiagInfo, SQLSMALLINT BufferLength, |
724 | SQLSMALLINT *StringLength); |
725 | |
726 | 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 | SQLRETURN SQL_API SQLGetEnvAttr(SQLHENV EnvironmentHandle, |
732 | SQLINTEGER Attribute, SQLPOINTER Value, |
733 | SQLINTEGER BufferLength, SQLINTEGER *StringLength); |
734 | #endif /* ODBCVER >= 0x0300 */ |
735 | |
736 | SQLRETURN SQL_API SQLGetFunctions(SQLHDBC ConnectionHandle, |
737 | SQLUSMALLINT FunctionId, SQLUSMALLINT *Supported); |
738 | |
739 | SQLRETURN SQL_API SQLGetInfo(SQLHDBC ConnectionHandle, |
740 | SQLUSMALLINT InfoType, SQLPOINTER InfoValue, |
741 | SQLSMALLINT BufferLength, SQLSMALLINT *StringLength); |
742 | |
743 | #if (ODBCVER >= 0x0300) |
744 | SQLRETURN SQL_API SQLGetStmtAttr(SQLHSTMT StatementHandle, |
745 | SQLINTEGER Attribute, SQLPOINTER Value, |
746 | SQLINTEGER BufferLength, SQLINTEGER *StringLength); |
747 | #endif /* ODBCVER >= 0x0300 */ |
748 | |
749 | SQLRETURN SQL_API SQLGetStmtOption(SQLHSTMT StatementHandle, |
750 | SQLUSMALLINT Option, SQLPOINTER Value); |
751 | |
752 | SQLRETURN SQL_API SQLGetTypeInfo(SQLHSTMT StatementHandle, |
753 | SQLSMALLINT DataType); |
754 | |
755 | SQLRETURN SQL_API SQLNumResultCols(SQLHSTMT StatementHandle, |
756 | SQLSMALLINT *ColumnCount); |
757 | |
758 | SQLRETURN SQL_API SQLParamData(SQLHSTMT StatementHandle, |
759 | SQLPOINTER *Value); |
760 | |
761 | SQLRETURN SQL_API SQLPrepare(SQLHSTMT StatementHandle, |
762 | SQLCHAR *StatementText, SQLINTEGER TextLength); |
763 | |
764 | SQLRETURN SQL_API SQLPutData(SQLHSTMT StatementHandle, |
765 | SQLPOINTER Data, SQLLEN StrLen_or_Ind); |
766 | |
767 | SQLRETURN SQL_API SQLRowCount(SQLHSTMT StatementHandle, |
768 | SQLLEN *RowCount); |
769 | |
770 | #if (ODBCVER >= 0x0300) |
771 | SQLRETURN SQL_API SQLSetConnectAttr(SQLHDBC ConnectionHandle, |
772 | SQLINTEGER Attribute, SQLPOINTER Value, |
773 | SQLINTEGER StringLength); |
774 | #endif /* ODBCVER >= 0x0300 */ |
775 | |
776 | SQLRETURN SQL_API SQLSetConnectOption(SQLHDBC ConnectionHandle, |
777 | SQLUSMALLINT Option, SQLULEN Value); |
778 | |
779 | SQLRETURN SQL_API SQLSetCursorName(SQLHSTMT StatementHandle, |
780 | SQLCHAR *CursorName, SQLSMALLINT NameLength); |
781 | |
782 | #if (ODBCVER >= 0x0300) |
783 | SQLRETURN SQL_API SQLSetDescField(SQLHDESC DescriptorHandle, |
784 | SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier, |
785 | SQLPOINTER Value, SQLINTEGER BufferLength); |
786 | |
787 | 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 | SQLRETURN SQL_API SQLSetEnvAttr(SQLHENV EnvironmentHandle, |
795 | SQLINTEGER Attribute, SQLPOINTER Value, |
796 | SQLINTEGER StringLength); |
797 | #endif /* ODBCVER >= 0x0300 */ |
798 | |
799 | 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 | SQLRETURN SQL_API SQLSetStmtAttr(SQLHSTMT StatementHandle, |
807 | SQLINTEGER Attribute, SQLPOINTER Value, |
808 | SQLINTEGER StringLength); |
809 | #endif |
810 | |
811 | SQLRETURN SQL_API SQLSetStmtOption(SQLHSTMT StatementHandle, |
812 | SQLUSMALLINT Option, SQLULEN Value); |
813 | |
814 | 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 | 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 | 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 | SQLRETURN SQL_API SQLTransact(SQLHENV EnvironmentHandle, |
834 | SQLHDBC ConnectionHandle, SQLUSMALLINT CompletionType); |
835 | |
836 | #ifdef __cplusplus |
837 | } |
838 | #endif |
839 | #endif |
840 | |