root/trunk/win32/sqlext.d

Revision 155, 49.9 kB (checked in by Don Clugston, 6 years ago)

Committed on behalf of Stewart.

Line 
1 /***********************************************************************\
2 *                                sqlext.d                               *
3 *                                                                       *
4 *                       Windows API header module                       *
5 *                                                                       *
6 *                 Translated from MinGW Windows headers                 *
7 *                                                                       *
8 *                       Placed into public domain                       *
9 \***********************************************************************/
10 module win32.sqlext;
11
12 /* Conversion notes:
13    The MinGW file was a horrible mess. All of the #defines were sorted alphabetically,
14    which is crazy. This file needs a lot of work.
15    In MinGW, sqlext #includes sqlucode, but sqlucode #includes sqlext,
16    creating a circular dependency!
17 */
18
19 public import win32.sql;
20 private import win32.windef;
21
22 const SQL_SPEC_MAJOR = 3;
23 const SQL_SPEC_MINOR = 51;
24 const char[] SQL_SPEC_STRING = "03.51";
25 const SQL_ACCESS_MODE = 101;
26 const SQL_ACTIVE_CONNECTIONS = 0;
27 const SQL_ACTIVE_STATEMENTS  = 1;
28
29 const SQL_DATE = 9;
30 const SQL_TIME = 10;
31 const SQL_SIGNED_OFFSET = -20;
32 const SQL_TINYINT = -6;
33 const SQL_TIMESTAMP = 11;
34 const SQL_UNSIGNED_OFFSET = -22;
35
36 const SQL_ADD = 4;
37 const SQL_ALL_EXCEPT_LIKE = 2;
38
39 const SQL_API_ALL_FUNCTIONS       =   0;
40 const SQL_API_SQLCOLATTRIBUTES    =   6;
41 const SQL_API_SQLDRIVERCONNECT    =  41;
42 const SQL_API_SQLBROWSECONNECT    =  55;
43 const SQL_API_SQLCOLUMNPRIVILEGES =  56;
44 const SQL_API_SQLDESCRIBEPARAM    =  58;
45 const SQL_API_SQLEXTENDEDFETCH    =  59;
46 const SQL_API_SQLFOREIGNKEYS      =  60;
47 const SQL_API_SQLMORERESULTS      =  61;
48 const SQL_API_SQLNATIVESQL        =  62;
49 const SQL_API_SQLNUMPARAMS        =  63;
50 const SQL_API_SQLPARAMOPTIONS     =  64;
51 const SQL_API_SQLPRIMARYKEYS      =  65;
52 const SQL_API_SQLPROCEDURECOLUMNS =  66;
53 const SQL_API_SQLPROCEDURES       =  67;
54 const SQL_API_SQLSETPOS           =  68;
55 const SQL_API_SQLSETSCROLLOPTIONS =  69;
56 const SQL_API_SQLTABLEPRIVILEGES  =  70;
57 const SQL_API_SQLDRIVERS          =  71;
58 const SQL_API_SQLBINDPARAMETER    =  72;
59 const SQL_API_LOADBYORDINAL       = 199;
60
61 const SQL_ASYNC_ENABLE = 4;
62 const SQL_ASYNC_ENABLE_OFF = 0UL;
63 const SQL_ASYNC_ENABLE_ON = 1UL;
64 const SQL_ASYNC_ENABLE_DEFAULT = SQL_ASYNC_ENABLE_OFF;
65
66 const SQL_ATTR_CONNECTION_DEAD = 1209;
67 const SQL_ATTR_READONLY = 0;
68 const SQL_ATTR_READWRITE_UNKNOWN = 2;
69 const SQL_ATTR_WRITE = 1;
70
71 const SQL_AUTOCOMMIT = 102;
72 const SQL_AUTOCOMMIT_OFF = 0UL;
73 const SQL_AUTOCOMMIT_ON = 1UL;
74 const SQL_AUTOCOMMIT_DEFAULT = SQL_AUTOCOMMIT_ON;
75 const SQL_BEST_ROWID = 1;
76 const SQL_BIGINT = -5;
77 const SQL_BINARY = -2;
78 const SQL_BIND_BY_COLUMN = 0UL;
79 const SQL_BIND_TYPE = 5;
80 const SQL_BIND_TYPE_DEFAULT = SQL_BIND_BY_COLUMN;
81 const SQL_BIT = -7;
82
83 const SQL_BOOKMARK_PERSISTENCE = 82;
84
85 // for BOOKMARK_PERSISTENCE
86 const SQL_BP_CLOSE       = 1;
87 const SQL_BP_DELETE      = 2;
88 const SQL_BP_DROP        = 4;
89 const SQL_BP_TRANSACTION = 8;
90 const SQL_BP_UPDATE      = 16;
91 const SQL_BP_OTHER_HSTMT = 32;
92 const SQL_BP_SCROLL      = 64;
93
94 const SQL_C_BINARY    = SQL_BINARY;
95 const SQL_C_BIT       = SQL_BIT;
96 const SQL_C_CHAR      = SQL_CHAR;
97 const SQL_C_DATE      = SQL_DATE;
98 const SQL_C_DOUBLE    = SQL_DOUBLE;
99 const SQL_C_FLOAT     = SQL_REAL;
100 const SQL_C_LONG      = SQL_INTEGER;
101 const SQL_C_SHORT     = SQL_SMALLINT;
102 const SQL_C_SLONG     = SQL_C_LONG+SQL_SIGNED_OFFSET;
103 const SQL_C_SSHORT    = SQL_C_SHORT+SQL_SIGNED_OFFSET;
104 const SQL_C_STINYINT  = SQL_TINYINT+SQL_SIGNED_OFFSET;
105 const SQL_C_TIME      = SQL_TIME;
106 const SQL_C_TIMESTAMP = SQL_TIMESTAMP;
107 const SQL_C_TINYINT   = SQL_TINYINT;
108 const SQL_C_ULONG     = SQL_C_LONG+SQL_UNSIGNED_OFFSET;
109 const SQL_C_USHORT    = SQL_C_SHORT+SQL_UNSIGNED_OFFSET;
110 const SQL_C_UTINYINT  = SQL_TINYINT+SQL_UNSIGNED_OFFSET;
111 const SQL_C_BOOKMARK  = SQL_C_ULONG;
112 const SQL_C_DEFAULT   = 99;
113
114 const SQL_CASCADE = 0;
115 const SQL_CB_NON_NULL = 1;
116 const SQL_CB_NULL = 0;
117 deprecated {
118 const SQL_CC_CLOSE = SQL_CB_CLOSE;/* deprecated */
119 const SQL_CC_DELETE = SQL_CB_DELETE;/* deprecated */
120 const SQL_CC_PRESERVE = SQL_CB_PRESERVE;/* deprecated */
121 }
122 const SQL_CD_FALSE = 0L;
123 const SQL_CD_TRUE = 1L;
124
125 const SQL_CN_ANY = 2;
126 const SQL_CN_DIFFERENT = 1;
127 const SQL_CN_NONE = 0;
128
129 const SQL_COLUMN_ALIAS = 87;
130
131 const SQL_COLUMN_COUNT = 0;
132 const SQL_COLUMN_NAME = 1;
133 const SQL_COLUMN_DISPLAY_SIZE = 6;
134 const SQL_COLUMN_LABEL = 18;
135 const SQL_COLUMN_LENGTH = 3;
136 const SQL_COLUMN_MONEY = 9;
137 const SQL_COLUMN_NULLABLE = 7;
138 const SQL_COLUMN_OWNER_NAME = 16;
139 const SQL_COLUMN_PRECISION = 4;
140 const SQL_COLUMN_QUALIFIER_NAME = 17;
141 const SQL_COLUMN_SCALE = 5;
142 const SQL_COLUMN_UNSIGNED = 8;
143 const SQL_COLUMN_UPDATABLE = 10;
144 const SQL_COLUMN_AUTO_INCREMENT = 11;
145 const SQL_COLUMN_CASE_SENSITIVE = 12;
146 const SQL_COLUMN_SEARCHABLE = 13;
147 const SQL_COLUMN_TYPE = 2;
148 const SQL_COLUMN_TYPE_NAME = 14;
149 const SQL_COLUMN_TABLE_NAME = 15;
150
151 const SQL_CONCAT_NULL_BEHAVIOR = 22;
152
153 const SQL_CONCUR_READ_ONLY = 1;
154 const SQL_CONCUR_DEFAULT   = SQL_CONCUR_READ_ONLY;
155 const SQL_CONCUR_LOCK      = 2;
156 const SQL_CONCUR_ROWVER    = 3;
157 const SQL_CONCUR_TIMESTAMP = SQL_CONCUR_ROWVER;/* deprecated */
158 const SQL_CONCUR_VALUES    = 4;
159
160 const SQL_CONCURRENCY = 7;
161 const SQL_CONVERT_BIGINT = 53;
162 const SQL_CONVERT_BINARY = 54;
163 const SQL_CONVERT_BIT = 55;
164 const SQL_CONVERT_CHAR = 56;
165 const SQL_CONVERT_DATE = 57;
166 const SQL_CONVERT_DECIMAL = 58;
167 const SQL_CONVERT_DOUBLE = 59;
168 const SQL_CONVERT_FLOAT = 60;
169 const SQL_CONVERT_FUNCTIONS = 48;
170 const SQL_CONVERT_INTEGER = 61;
171 const SQL_CONVERT_LONGVARBINARY = 71;
172 const SQL_CONVERT_LONGVARCHAR = 62;
173 const SQL_CONVERT_NUMERIC = 63;
174 const SQL_CONVERT_REAL = 64;
175 const SQL_CONVERT_SMALLINT = 65;
176 const SQL_CONVERT_TIME = 66;
177 const SQL_CONVERT_TIMESTAMP = 67;
178 const SQL_CONVERT_TINYINT = 68;
179 const SQL_CONVERT_VARBINARY = 69;
180 const SQL_CONVERT_VARCHAR = 70;
181 const SQL_CORRELATION_NAME = 74;
182 const SQL_CR_CLOSE = SQL_CB_CLOSE;/* deprecated */
183 const SQL_CR_DELETE = SQL_CB_DELETE;/* deprecated */
184 const SQL_CR_PRESERVE = SQL_CB_PRESERVE;/* deprecated */
185
186 enum : ULONG {
187     SQL_CUR_USE_IF_NEEDED = 0,
188     SQL_CUR_USE_ODBC,
189     SQL_CUR_USE_DRIVER,
190     SQL_CUR_DEFAULT = SQL_CUR_USE_DRIVER
191 }
192
193 const SQL_CURRENT_QUALIFIER = 109;
194 const SQL_CURSOR_DYNAMIC = 2UL;
195 const SQL_CURSOR_FORWARD_ONLY = 0UL;
196 const SQL_CURSOR_KEYSET_DRIVEN = 1UL;
197 const SQL_CURSOR_ROLLBACK_BEHAVIOR = 24;
198 const SQL_CURSOR_STATIC = 3UL;
199 const SQL_CURSOR_TYPE = 6;
200 const SQL_CURSOR_TYPE_DEFAULT = SQL_CURSOR_FORWARD_ONLY;
201
202 const SQL_CV_CASCADED = 0x00000004L;
203 const SQL_CV_CHECK_OPTION = 0x00000002L;
204 const SQL_CV_CREATE_VIEW = 0x00000001L;
205 const SQL_CV_LOCAL = 0x00000008L;
206 const SQL_CVT_BIGINT = 0x00004000L;
207 const SQL_CVT_BINARY = 0x00000400L;
208 const SQL_CVT_BIT = 0x00001000L;
209 const SQL_CVT_CHAR = 0x00000001L;
210 const SQL_CVT_DATE = 0x00008000L;
211 const SQL_CVT_DECIMAL = 0x00000004L;
212 const SQL_CVT_DOUBLE = 0x00000080L;
213 const SQL_CVT_FLOAT = 0x00000020L;
214 const SQL_CVT_INTEGER = 0x00000008L;
215 const SQL_CVT_LONGVARBINARY = 0x00040000L;
216 const SQL_CVT_LONGVARCHAR = 0x00000200L;
217 const SQL_CVT_NUMERIC = 0x00000002L;
218 const SQL_CVT_REAL = 0x00000040L;
219 const SQL_CVT_SMALLINT = 0x00000010L;
220 const SQL_CVT_TIME = 0x00010000L;
221 const SQL_CVT_TIMESTAMP = 0x00020000L;
222 const SQL_CVT_TINYINT = 0x00002000L;
223 const SQL_CVT_VARBINARY = 0x00000800L;
224 const SQL_CVT_VARCHAR = 0x00000100L;
225 const SQL_DATABASE_NAME = 16;/* deprecated */
226
227 const SQL_DEFAULT_PARAM = -5;
228 const SQL_DELETE = 3;
229
230 const SQL_DRIVER_COMPLETE = 1;
231 const SQL_DRIVER_COMPLETE_REQUIRED = 3;
232 const SQL_DRIVER_HDBC = 3;
233 const SQL_DRIVER_HENV = 4;
234 const SQL_DRIVER_HLIB = 76;
235 const SQL_DRIVER_HSTMT = 5;
236 const SQL_DRIVER_NAME = 6;
237 const SQL_DRIVER_NOPROMPT = 0;
238 const SQL_DRIVER_ODBC_VER = 77;
239 const SQL_DRIVER_PROMPT = 2;
240 const SQL_DRIVER_VER = 7;
241
242 const SQL_DTC_ENLIST_EXPENSIVE = 1;
243 const SQL_DTC_UNENLIST_EXPENSIVE = 2;
244 const SQL_DTC_TRANSITION_COST = 1750;
245 const SQL_ENSURE = 1;
246 const SQL_ENTIRE_ROWSET = 0;
247 const SQL_EXPRESSIONS_IN_ORDERBY = 27;
248 const SQL_FD_FETCH_BOOKMARK = 128;
249 const SQL_FD_FETCH_PREV = SQL_FD_FETCH_PRIOR;/* deprecated */
250 const SQL_FD_FETCH_RESUME = 64;
251 const SQL_FETCH_BOOKMARK = 8;
252 const SQL_FETCH_PREV = SQL_FETCH_PRIOR;/* deprecated */
253 const SQL_FETCH_RESUME = 7;/* deprecated */
254
255 const SQL_FILE_NOT_SUPPORTED = 0x0000;
256 const SQL_FILE_TABLE = 0x0001;
257 const SQL_FILE_QUALIFIER = 0x0002;
258 const SQL_FILE_CATALOG = SQL_FILE_QUALIFIER;
259 const SQL_FILE_USAGE = 84;
260
261 const SQL_FN_CVT_CONVERT = 0x00000001L;
262 const SQL_FN_NUM_ABS = 0x00000001L;
263 const SQL_FN_NUM_ACOS = 0x00000002L;
264 const SQL_FN_NUM_ASIN = 0x00000004L;
265 const SQL_FN_NUM_ATAN = 0x00000008L;
266 const SQL_FN_NUM_ATAN2 = 0x00000010L;
267 const SQL_FN_NUM_CEILING = 0x00000020L;
268 const SQL_FN_NUM_COS = 0x00000040L;
269 const SQL_FN_NUM_COT = 0x00000080L;
270 const SQL_FN_NUM_DEGREES = 0x00040000L;
271 const SQL_FN_NUM_EXP = 0x00000100L;
272 const SQL_FN_NUM_FLOOR = 0x00000200L;
273 const SQL_FN_NUM_LOG = 0x00000400L;
274 const SQL_FN_NUM_LOG10 = 0x00080000L;
275 const SQL_FN_NUM_MOD = 0x00000800L;
276 const SQL_FN_NUM_PI = 0x00010000L;
277 const SQL_FN_NUM_POWER = 0x00100000L;
278 const SQL_FN_NUM_RADIANS = 0x00200000L;
279 const SQL_FN_NUM_RAND = 0x00020000L;
280 const SQL_FN_NUM_ROUND = 0x00400000L;
281 const SQL_FN_NUM_SIGN = 0x00001000L;
282 const SQL_FN_NUM_SIN = 0x00002000L;
283 const SQL_FN_NUM_SQRT = 0x00004000L;
284 const SQL_FN_NUM_TAN = 0x00008000L;
285 const SQL_FN_NUM_TRUNCATE = 0x00800000L;
286 const SQL_FN_STR_ASCII = 0x00002000L;
287 const SQL_FN_STR_CHAR = 0x00004000L;
288 const SQL_FN_STR_CONCAT = 0x00000001L;
289 const SQL_FN_STR_DIFFERENCE = 0x00008000L;
290 const SQL_FN_STR_INSERT = 0x00000002L;
291 const SQL_FN_STR_LCASE = 0x00000040L;
292 const SQL_FN_STR_LEFT = 0x00000004L;
293 const SQL_FN_STR_LENGTH = 0x00000010L;
294 const SQL_FN_STR_LOCATE = 0x00000020L;
295 const SQL_FN_STR_LOCATE_2 = 0x00010000L;
296 const SQL_FN_STR_LTRIM = 0x00000008L;
297 const SQL_FN_STR_REPEAT = 0x00000080L;
298 const SQL_FN_STR_REPLACE = 0x00000100L;
299 const SQL_FN_STR_RIGHT = 0x00000200L;
300 const SQL_FN_STR_RTRIM = 0x00000400L;
301 const SQL_FN_STR_SOUNDEX = 0x00020000L;
302 const SQL_FN_STR_SPACE = 0x00040000L;
303 const SQL_FN_STR_SUBSTRING = 0x00000800L;
304 const SQL_FN_STR_UCASE = 0x00001000L;
305 const SQL_FN_SYS_DBNAME = 0x00000002L;
306 const SQL_FN_SYS_IFNULL = 0x00000004L;
307 const SQL_FN_SYS_USERNAME = 0x00000001L;
308 const SQL_FN_TD_CURDATE = 0x00000002L;
309 const SQL_FN_TD_CURTIME = 0x00000200L;
310 const SQL_FN_TD_DAYNAME = 0x00008000L;
311 const SQL_FN_TD_DAYOFMONTH = 0x00000004L;
312 const SQL_FN_TD_DAYOFWEEK = 0x00000008L;
313 const SQL_FN_TD_DAYOFYEAR = 0x00000010L;
314 const SQL_FN_TD_HOUR = 0x00000400L;
315 const SQL_FN_TD_MINUTE = 0x00000800L;
316 const SQL_FN_TD_MONTH = 0x00000020L;
317 const SQL_FN_TD_MONTHNAME = 0x00010000L;
318 const SQL_FN_TD_NOW = 0x00000001L;
319 const SQL_FN_TD_QUARTER = 0x00000040L;
320 const SQL_FN_TD_SECOND = 0x00001000L;
321 const SQL_FN_TD_TIMESTAMPADD = 0x00002000L;
322 const SQL_FN_TD_TIMESTAMPDIFF = 0x00004000L;
323 const SQL_FN_TD_WEEK = 0x00000080L;
324 const SQL_FN_TD_YEAR = 0x00000100L;
325 const SQL_FN_TSI_DAY = 0x00000010L;
326 const SQL_FN_TSI_FRAC_SECOND = 0x00000001L;
327 const SQL_FN_TSI_HOUR = 0x00000008L;
328 const SQL_FN_TSI_MINUTE = 0x00000004L;
329 const SQL_FN_TSI_MONTH = 0x00000040L;
330 const SQL_FN_TSI_QUARTER = 0x00000080L;
331 const SQL_FN_TSI_SECOND = 0x00000002L;
332 const SQL_FN_TSI_WEEK = 0x00000020L;
333 const SQL_FN_TSI_YEAR = 0x00000100L;
334 const SQL_GB_GROUP_BY_CONTAINS_SELECT = 2;
335 const SQL_GB_GROUP_BY_EQUALS_SELECT = 1;
336 const SQL_GB_NO_RELATION = 3;
337 const SQL_GB_NOT_SUPPORTED = 0;
338 const SQL_GD_BLOCK = 4;
339 const SQL_GD_BOUND = 8;
340 const SQL_GET_BOOKMARK = 13;
341 const SQL_GROUP_BY = 88;
342 const SQL_IGNORE = -6;
343 const SQL_INFO_FIRST = 0;
344 const SQL_KEYSET_SIZE = 8;
345 const SQL_KEYSET_SIZE_DEFAULT = 0UL;
346 const SQL_KEYWORDS = 89;
347 const SQL_LCK_EXCLUSIVE = 2;
348 const SQL_LCK_NO_CHANGE = 1;
349 const SQL_LCK_UNLOCK = 4;
350
351 const SQL_LEN_BINARY_ATTR_OFFSET  = -100;
352 const SQL_LEN_DATA_AT_EXEC_OFFSET = -100;
353 //MACRO #define SQL_LEN_BINARY_ATTR(length) (-(length)+SQL_LEN_BINARY_ATTR_OFFSET)
354 //MACRO #define SQL_LEN_DATA_AT_EXEC(length) (-(length)+SQL_LEN_DATA_AT_EXEC_OFFSET)
355
356 const SQL_LIKE_ESCAPE_CLAUSE = 113;
357 const SQL_LIKE_ONLY = 1;
358 const SQL_LOCK_EXCLUSIVE = 1;
359 const SQL_LOCK_NO_CHANGE = 0;
360 const SQL_LOCK_TYPES = 78;
361 const SQL_LOCK_UNLOCK = 2;
362 const SQL_LOGIN_TIMEOUT = 103;
363 const SQL_LOGIN_TIMEOUT_DEFAULT = 15UL;
364 const SQL_LONGVARBINARY = -4;
365 const SQL_LONGVARCHAR = -1;
366 const SQL_MAX_BINARY_LITERAL_LEN = 112;
367 const SQL_MAX_CHAR_LITERAL_LEN = 108;
368 const SQL_MAX_DSN_LENGTH = 32;
369 const SQL_MAX_LENGTH = 3;
370 const SQL_MAX_LENGTH_DEFAULT = 0UL;
371 const SQL_MAX_OPTION_STRING_LENGTH = 256;
372 const SQL_MAX_OWNER_NAME_LEN = 32;
373 const SQL_MAX_PROCEDURE_NAME_LEN = 33;
374 const SQL_MAX_QUALIFIER_NAME_LEN = 34;
375 const SQL_MAX_ROW_SIZE_INCLUDES_LONG = 103;
376 const SQL_MAX_ROWS = 1;
377 const SQL_MAX_ROWS_DEFAULT = 0UL;
378
379 const SQL_MODE_READ_WRITE = 0UL;
380 const SQL_MODE_READ_ONLY = 1UL;
381 const SQL_MODE_DEFAULT = SQL_MODE_READ_WRITE;
382
383 const SQL_MULT_RESULT_SETS = 36;
384 const SQL_MULTIPLE_ACTIVE_TXN = 37;
385 const SQL_NC_END = 0x0004;
386 const SQL_NC_START = 0x0002;
387 const SQL_NEED_LONG_DATA_LEN = 111;
388 const SQL_NNC_NON_NULL = 0x0001;
389 const SQL_NNC_NULL = 0x0000;
390 const SQL_NO_TOTAL = -4;
391 const SQL_NON_NULLABLE_COLUMNS = 75;
392
393 const SQL_NOSCAN_OFF = 0UL;
394 const SQL_NOSCAN_ON = 1UL;
395 const SQL_NOSCAN = 2;
396 const SQL_NOSCAN_DEFAULT = SQL_NOSCAN_OFF;
397
398 const SQL_NUMERIC_FUNCTIONS = 49;
399 const SQL_OAC_LEVEL1 = 0x0001;
400 const SQL_OAC_LEVEL2 = 0x0002;
401 const SQL_OAC_NONE = 0x0000;
402 const SQL_ODBC_API_CONFORMANCE = 9;
403 const SQL_ODBC_CURSORS = 110;
404 const SQL_ODBC_SAG_CLI_CONFORMANCE = 12;
405 const SQL_ODBC_SQL_CONFORMANCE = 15;
406 const SQL_ODBC_SQL_OPT_IEF = 73;
407 const SQL_ODBC_VER = 10;
408 const SQL_OPT_TRACE = 104;
409
410 const SQL_OPT_TRACE_FILE_DEFAULT = "\\SQL.LOG";
411 const SQL_OPT_TRACE_OFF = 0UL;
412 const SQL_OPT_TRACE_DEFAULT = SQL_OPT_TRACE_OFF;
413 const SQL_OPT_TRACE_ON = 1UL;
414
415 const SQL_OPT_TRACEFILE = 105;
416 const SQL_OSC_CORE = 1;
417 const SQL_OSC_EXTENDED = 2;
418 const SQL_OSC_MINIMUM = 0;
419 const SQL_OSCC_COMPLIANT = 1;
420 const SQL_OSCC_NOT_COMPLIANT = 0;
421 const SQL_OU_DML_STATEMENTS = 1;
422 const SQL_OU_INDEX_DEFINITION = 8;
423 const SQL_OU_PRIVILEGE_DEFINITION = 16;
424 const SQL_OU_PROCEDURE_INVOCATION = 2;
425 const SQL_OU_TABLE_DEFINITION = 4;
426 const SQL_OUTER_JOINS = 38;
427 const SQL_OWNER_TERM = 39;
428 const SQL_OWNER_USAGE = 91;
429 const SQL_PACKET_SIZE = 112;
430 const SQL_PARAM_INPUT = 1;
431 const SQL_PARAM_INPUT_OUTPUT = 2;
432 const SQL_PARAM_OUTPUT = 4;
433 const SQL_PARAM_TYPE_DEFAULT = SQL_PARAM_INPUT_OUTPUT;
434 const SQL_PARAM_TYPE_UNKNOWN = 0;
435 const SQL_PC_NOT_PSEUDO = 1;
436 const SQL_POS_ADD = 16;
437 const SQL_POS_DELETE = 8;
438 const SQL_POS_OPERATIONS = 79;
439 const SQL_POS_POSITION = 1;
440 const SQL_POS_REFRESH = 2;
441 const SQL_POS_UPDATE = 4;
442 const SQL_POSITION = 0;
443 const SQL_POSITIONED_STATEMENTS = 80;
444 const SQL_PROCEDURE_TERM = 40;
445 const SQL_PROCEDURES = 21;
446 const SQL_PS_POSITIONED_DELETE = 1;
447 const SQL_PS_POSITIONED_UPDATE = 2;
448 const SQL_PS_SELECT_FOR_UPDATE = 4;
449 const SQL_PT_FUNCTION = 2;
450 const SQL_PT_PROCEDURE = 1;
451 const SQL_PT_UNKNOWN = 0;
452 const SQL_QL_END = 0x0002;
453 const SQL_QL_START = 0x0001;
454 const SQL_QU_DML_STATEMENTS = 1;
455 const SQL_QU_INDEX_DEFINITION = 8;
456 const SQL_QU_PRIVILEGE_DEFINITION = 16;
457 const SQL_QU_PROCEDURE_INVOCATION = 2;
458 const SQL_QU_TABLE_DEFINITION = 4;
459 const SQL_QUALIFIER_LOCATION = 114;
460 const SQL_QUALIFIER_NAME_SEPARATOR = 41;
461 const SQL_QUALIFIER_TERM = 42;
462 const SQL_QUALIFIER_USAGE = 92;
463 const SQL_QUERY_TIMEOUT = 0;
464 const SQL_QUERY_TIMEOUT_DEFAULT = 0UL;
465 const SQL_QUICK = 0;
466 const SQL_QUIET_MODE = 111;
467 const SQL_QUOTED_IDENTIFIER_CASE = 93;
468
469 const SQL_RD_OFF = 0UL;
470 const SQL_RD_ON = 1UL;
471 const SQL_RD_DEFAULT = SQL_RD_ON;
472
473 const SQL_REFRESH = 1;
474 const SQL_RESTRICT = 1;
475 const SQL_RESULT_COL = 3;
476 const SQL_RETRIEVE_DATA = 11;
477 const SQL_RETURN_VALUE = 5;
478 const SQL_ROW_ADDED = 4;
479 const SQL_ROW_DELETED = 1;
480 const SQL_ROW_ERROR = 5;
481 const SQL_ROW_NOROW = 3;
482 const SQL_ROW_NUMBER = 14;
483 const SQL_ROW_SUCCESS = 0;
484 const SQL_ROW_UPDATED = 2;
485 const SQL_ROW_UPDATES = 11;
486 const SQL_ROWSET_SIZE = 9;
487 const SQL_ROWSET_SIZE_DEFAULT = 1UL;
488 const SQL_ROWVER = 2;
489 const SQL_SC_NON_UNIQUE = 0UL;
490 const SQL_SC_TRY_UNIQUE = 1UL;
491 const SQL_SC_UNIQUE = 2UL;
492 const SQL_SCCO_OPT_TIMESTAMP = SQL_SCCO_OPT_ROWVER;/* deprecated */
493 const SQL_SCROLL_DYNAMIC = -2L;/* deprecated */
494 const SQL_SCROLL_FORWARD_ONLY = 0L;/* deprecated */
495 const SQL_SCROLL_KEYSET_DRIVEN = -1L;/* deprecated */
496 const SQL_SCROLL_OPTIONS = 44;
497 const SQL_SCROLL_STATIC = -3L;/* deprecated */
498 const SQL_SEARCHABLE = 3;
499 const SQL_SET_NULL = 2;
500 const SQL_SETPARAM_VALUE_MAX = -1L;
501 const SQL_SETPOS_MAX_LOCK_VALUE = SQL_LOCK_UNLOCK;
502 const SQL_SETPOS_MAX_OPTION_VALUE = SQL_ADD;
503 const SQL_SIMULATE_CURSOR = 10;
504 const SQL_SO_DYNAMIC = 4;
505 const SQL_SO_FORWARD_ONLY = 1;
506 const SQL_SO_KEYSET_DRIVEN = 2;
507 const SQL_SO_MIXED = 8;
508 const SQL_SO_STATIC = 16;
509 const SQL_SQ_COMPARISON = 1;
510 const SQL_SQ_CORRELATED_SUBQUERIES = 16;
511 const SQL_SQ_EXISTS = 2;
512 const SQL_SQ_IN = 4;
513 const SQL_SQ_QUANTIFIED = 8;
514 const SQL_SQLSTATE_SIZE = 5;
515 const SQL_SS_ADDITIONS = 1;
516 const SQL_SS_DELETIONS = 2;
517 const SQL_SS_UPDATES = 4;
518 const SQL_STATIC_SENSITIVITY = 83;
519 const SQL_STRING_FUNCTIONS = 50;
520 const SQL_SUBQUERIES = 95;
521 const SQL_SYSTEM_FUNCTIONS = 51;
522 const SQL_TABLE_STAT = 0;
523 const SQL_TABLE_TERM = 45;
524 const SQL_TIMEDATE_ADD_INTERVALS = 109;
525 const SQL_TIMEDATE_DIFF_INTERVALS = 110;
526 const SQL_TIMEDATE_FUNCTIONS = 52;
527 const SQL_TRANSLATE_DLL = 106;
528 const SQL_TRANSLATE_OPTION = 107;
529 const SQL_TXN_ISOLATION = 108;
530 const SQL_TXN_VERSIONING = 16;
531 const SQL_TYPE_NULL = 0;
532 const SQL_U_UNION = 1;
533 const SQL_U_UNION_ALL = 2;
534
535 const SQL_UB_OFF = 0UL;
536 const SQL_UB_DEFAULT = SQL_UB_OFF;
537 const SQL_UB_ON = 01UL;
538
539 const SQL_UNION = 96;
540 const SQL_UNSEARCHABLE = 0;
541 const SQL_UPDATE = 2;
542 const SQL_USE_BOOKMARKS = 12;
543 const SQL_VARBINARY = -3;
544
545 const SQL_COLATT_OPT_MAX = SQL_COLUMN_LABEL;
546 const SQL_COLATT_OPT_MIN = SQL_COLUMN_COUNT;
547 const SQL_PRED_SEARCHABLE = SQL_SEARCHABLE;
548
549 //MACRO #define SQL_POSITION_TO(s, r) SQLSetPos(s, r, SQL_POSITION, SQL_LOCK_NO_CHANGE)
550
551 //MACRO #define SQL_LOCK_RECORD(s, r, l) SQLSetPos(s, r, SQL_POSITION, l)
552
553 //MACRO #define SQL_REFRESH_RECORD(s, r, l) SQLSetPos(s, r, SQL_REFRESH, l)
554
555 //MACRO #define SQL_UPDATE_RECORD(s, r) SQLSetPos(s, r, SQL_UPDATE, SQL_LOCK_NO_CHANGE)
556
557 //MACRO #define SQL_DELETE_RECORD(s, r) SQLSetPos(s, r, SQL_DELETE, SQL_LOCK_NO_CHANGE)
558
559 //MACRO #define SQL_ADD_RECORD(s, r) SQLSetPos(s, r, SQL_ADD, SQL_LOCK_NO_CHANGE)
560
561
562 static if (ODBCVER < 0x0300) {
563     const SQL_CONNECT_OPT_DRVR_START = 1000;
564     const SQL_CONN_OPT_MAX = SQL_PACKET_SIZE;
565     const SQL_CONN_OPT_MIN = SQL_ACCESS_MODE;
566     const SQL_STMT_OPT_MAX = SQL_ROW_NUMBER;
567     const SQL_STMT_OPT_MIN = SQL_QUERY_TIMEOUT;
568     const SQL_TYPE_DRIVER_START = SQL_INTERVAL_YEAR;
569     const SQL_TYPE_DRIVER_END = SQL_UNICODE_LONGVARCHAR;
570     const SQL_TYPE_MIN = SQL_BIT;
571     const SQL_TYPE_MAX = SQL_VARCHAR;
572 }
573
574 static if (ODBCVER < 0x0300) {
575     const SQL_NO_DATA_FOUND = 100;
576     const SQL_INTERVAL_YEAR = -80;
577     const SQL_INTERVAL_MONTH = -81;
578     const SQL_INTERVAL_YEAR_TO_MONTH = -82;
579     const SQL_INTERVAL_DAY = -83;
580     const SQL_INTERVAL_HOUR = -84;
581     const SQL_INTERVAL_MINUTE = -85;
582     const SQL_INTERVAL_SECOND = -86;
583     const SQL_INTERVAL_DAY_TO_HOUR = -87;
584     const SQL_INTERVAL_DAY_TO_MINUTE = -88;
585     const SQL_INTERVAL_DAY_TO_SECOND = -89;
586     const SQL_INTERVAL_HOUR_TO_MINUTE = -90;
587     const SQL_INTERVAL_HOUR_TO_SECOND = -91;
588     const SQL_INTERVAL_MINUTE_TO_SECOND = -92;
589 } else {
590     const SQL_NO_DATA_FOUND = SQL_NO_DATA;
591     const SQL_CODE_YEAR = 1;
592     const SQL_CODE_MONTH = 2;
593     const SQL_CODE_DAY = 3;
594     const SQL_CODE_HOUR = 4;
595     const SQL_CODE_MINUTE = 5;
596     const SQL_CODE_SECOND = 6;
597     const SQL_CODE_YEAR_TO_MONTH = 7;
598     const SQL_CODE_DAY_TO_HOUR = 8;
599     const SQL_CODE_DAY_TO_MINUTE = 9;
600     const SQL_CODE_DAY_TO_SECOND = 10;
601     const SQL_CODE_HOUR_TO_MINUTE = 11;
602     const SQL_CODE_HOUR_TO_SECOND = 12;
603     const SQL_CODE_MINUTE_TO_SECOND = 13;
604     const SQL_INTERVAL_YEAR = 100 + SQL_CODE_YEAR;
605     const SQL_INTERVAL_MONTH = 100 + SQL_CODE_MONTH;
606     const SQL_INTERVAL_DAY = 100 + SQL_CODE_DAY;
607     const SQL_INTERVAL_HOUR = 100 + SQL_CODE_HOUR;
608     const SQL_INTERVAL_MINUTE = 100 + SQL_CODE_MINUTE;
609     const SQL_INTERVAL_SECOND = 100 + SQL_CODE_SECOND;
610     const SQL_INTERVAL_YEAR_TO_MONTH = 100 + SQL_CODE_YEAR_TO_MONTH;
611     const SQL_INTERVAL_DAY_TO_HOUR = 100 + SQL_CODE_DAY_TO_HOUR;
612     const SQL_INTERVAL_DAY_TO_MINUTE = 100 + SQL_CODE_DAY_TO_MINUTE;
613     const SQL_INTERVAL_DAY_TO_SECOND = 100 + SQL_CODE_DAY_TO_SECOND;
614     const SQL_INTERVAL_HOUR_TO_MINUTE = 100 + SQL_CODE_HOUR_TO_MINUTE;
615     const SQL_INTERVAL_HOUR_TO_SECOND = 100 + SQL_CODE_HOUR_TO_SECOND;
616     const SQL_INTERVAL_MINUTE_TO_SECOND = 100 + SQL_CODE_MINUTE_TO_SECOND;
617 }//[Yes] #endif
618
619
620 static if ((ODBCVER >= 0x0201) && (ODBCVER < 0x0300)) {
621     const SQL_OJ_CAPABILITIES = 65003;
622 }
623
624 static if (ODBCVER >= 0x0250) {
625     const SQL_NO_ACTION   = 3;
626     const SQL_SET_DEFAULT = 4;
627 }
628
629 static if (ODBCVER >= 0x0300) {
630     const SQL_ACTIVE_ENVIRONMENTS = 116;
631     const SQL_AD_ADD_CONSTRAINT_DEFERRABLE = 0x00000080L;
632     const SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED = 0x00000020L;
633     const SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000040L;
634     const SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE = 0x00000100L;
635     const SQL_AD_ADD_DOMAIN_CONSTRAINT = 0x00000002L;
636     const SQL_AD_ADD_DOMAIN_DEFAULT = 0x00000008L;
637     const SQL_AD_CONSTRAINT_NAME_DEFINITION = 0x00000001L;
638     const SQL_AD_DROP_DOMAIN_CONSTRAINT = 0x00000004L;
639     const SQL_AD_DROP_DOMAIN_DEFAULT = 0x00000010L;
640     const SQL_AF_ALL = 0x00000040L;
641     const SQL_AF_AVG = 0x00000001L;
642     const SQL_AF_COUNT = 0x00000002L;
643     const SQL_AF_DISTINCT = 0x00000020L;
644     const SQL_AF_MAX = 0x00000004L;
645     const SQL_AF_MIN = 0x00000008L;
646     const SQL_AF_SUM = 0x00000010L;
647     const SQL_AGGREGATE_FUNCTIONS = 169;
648     const SQL_ALL_CATALOGS = "%";
649     const SQL_ALL_SCHEMAS = "%";
650     const SQL_ALL_TABLE_TYPES = "%";
651     const SQL_ALTER_DOMAIN = 117;
652     const SQL_AM_CONNECTION = 1;
653     const SQL_AM_NONE = 0;
654     const SQL_AM_STATEMENT = 2;
655     const SQL_API_ODBC3_ALL_FUNCTIONS = 999;
656     const SQL_API_ODBC3_ALL_FUNCTIONS_SIZE = 250;
657     const SQL_API_SQLALLOCHANDLESTD = 73;
658     const SQL_API_SQLBULKOPERATIONS = 24;
659     const SQL_ASYNC_MODE = 10021;
660     const SQL_AT_ADD_COLUMN_COLLATION = 0x00000080L;
661     const SQL_AT_ADD_COLUMN_DEFAULT = 0x00000040L;
662     const SQL_AT_ADD_COLUMN_SINGLE = 0x00000020L;
663     const SQL_AT_ADD_TABLE_CONSTRAINT = 0x00001000L;
664     const SQL_AT_CONSTRAINT_DEFERRABLE = 0x00040000L;
665     const SQL_AT_CONSTRAINT_INITIALLY_DEFERRED = 0x00010000L;
666     const SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00020000L;
667     const SQL_AT_CONSTRAINT_NAME_DEFINITION = 0x00008000L;
668     const SQL_AT_CONSTRAINT_NON_DEFERRABLE = 0x00080000L;
669     const SQL_AT_DROP_COLUMN_CASCADE = 0x00000400L;
670     const SQL_AT_DROP_COLUMN_DEFAULT = 0x00000200L;
671     const SQL_AT_DROP_COLUMN_RESTRICT = 0x00000800L;
672     const SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE = 0x00002000L;
673     const SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT = 0x00004000L;
674     const SQL_AT_SET_COLUMN_DEFAULT = 0x00000100L;
675     const SQL_ATTR_ACCESS_MODE = SQL_ACCESS_MODE;
676     const SQL_ATTR_ASYNC_ENABLE = 4;
677     const SQL_ATTR_AUTOCOMMIT = SQL_AUTOCOMMIT;
678     const SQL_ATTR_CONCURRENCY = SQL_CONCURRENCY;
679     const SQL_ATTR_CONNECTION_POOLING = 201;
680     const SQL_ATTR_CONNECTION_TIMEOUT = 113;
681     const SQL_ATTR_CP_MATCH = 202;
682     const SQL_ATTR_CURRENT_CATALOG = SQL_CURRENT_QUALIFIER;
683     const SQL_ATTR_CURSOR_TYPE = SQL_CURSOR_TYPE;
684     const SQL_ATTR_DISCONNECT_BEHAVIOR = 114;
685     const SQL_ATTR_ENABLE_AUTO_IPD = 15;
686     const SQL_ATTR_ENLIST_IN_DTC = 1207;
687     const SQL_ATTR_ENLIST_IN_XA = 1208;
688     const SQL_ATTR_FETCH_BOOKMARK_PTR = 16;
689     const SQL_ATTR_KEYSET_SIZE = SQL_KEYSET_SIZE;
690     const SQL_ATTR_LOGIN_TIMEOUT = SQL_LOGIN_TIMEOUT;
691     const SQL_ATTR_MAX_LENGTH = SQL_MAX_LENGTH;
692     const SQL_ATTR_MAX_ROWS = SQL_MAX_ROWS;
693     const SQL_ATTR_NOSCAN = SQL_NOSCAN;
694     const SQL_ATTR_ODBC_CURSORS = SQL_ODBC_CURSORS;
695     const SQL_ATTR_ODBC_VERSION = 200;
696     const SQL_ATTR_PACKET_SIZE = SQL_PACKET_SIZE;
697     const SQL_ATTR_PARAM_BIND_OFFSET_PTR = 17;
698     const SQL_ATTR_PARAM_BIND_TYPE = 18;
699     const SQL_ATTR_PARAM_OPERATION_PTR = 19;
700     const SQL_ATTR_PARAM_STATUS_PTR = 20;
701     const SQL_ATTR_PARAMS_PROCESSED_PTR = 21;
702     const SQL_ATTR_PARAMSET_SIZE = 22;
703     const SQL_ATTR_QUERY_TIMEOUT = SQL_QUERY_TIMEOUT;
704     const SQL_ATTR_QUIET_MODE = SQL_QUIET_MODE;
705     const SQL_ATTR_RETRIEVE_DATA = SQL_RETRIEVE_DATA;
706     const SQL_ATTR_ROW_ARRAY_SIZE = 27;
707     const SQL_ATTR_ROW_BIND_OFFSET_PTR = 23;
708     const SQL_ATTR_ROW_BIND_TYPE = SQL_BIND_TYPE;
709     const SQL_ATTR_ROW_NUMBER = SQL_ROW_NUMBER;
710     const SQL_ATTR_ROW_OPERATION_PTR = 24;
711     const SQL_ATTR_ROW_STATUS_PTR = 25;
712     const SQL_ATTR_ROWS_FETCHED_PTR = 26;
713     const SQL_ATTR_SIMULATE_CURSOR = SQL_SIMULATE_CURSOR;
714     const SQL_ATTR_TRACE = SQL_OPT_TRACE;
715     const SQL_ATTR_TRACEFILE = SQL_OPT_TRACEFILE;
716     const SQL_ATTR_TRANSLATE_LIB = SQL_TRANSLATE_DLL;
717     const SQL_ATTR_TRANSLATE_OPTION = SQL_TRANSLATE_OPTION;
718     const SQL_ATTR_TXN_ISOLATION = SQL_TXN_ISOLATION;
719     const SQL_ATTR_USE_BOOKMARKS = SQL_USE_BOOKMARKS;
720     const SQL_BATCH_ROW_COUNT = 120;
721     const SQL_BATCH_SUPPORT = 121;
722     const SQL_BRC_EXPLICIT = 0x0000002;
723     const SQL_BRC_PROCEDURES = 0x0000001;
724     const SQL_BRC_ROLLED_UP = 0x0000004;
725     const SQL_BS_ROW_COUNT_EXPLICIT = 0x00000002L;
726     const SQL_BS_ROW_COUNT_PROC = 0x00000008L;
727     const SQL_BS_SELECT_EXPLICIT = 0x00000001L;
728     const SQL_BS_SELECT_PROC = 0x00000004L;
729     const SQL_C_INTERVAL_DAY = SQL_INTERVAL_DAY;
730     const SQL_C_INTERVAL_DAY_TO_HOUR = SQL_INTERVAL_DAY_TO_HOUR;
731     const SQL_C_INTERVAL_DAY_TO_MINUTE = SQL_INTERVAL_DAY_TO_MINUTE;
732     const SQL_C_INTERVAL_DAY_TO_SECOND = SQL_INTERVAL_DAY_TO_SECOND;
733     const SQL_C_INTERVAL_HOUR = SQL_INTERVAL_HOUR;
734     const SQL_C_INTERVAL_HOUR_TO_MINUTE = SQL_INTERVAL_HOUR_TO_MINUTE;
735     const SQL_C_INTERVAL_HOUR_TO_SECOND = SQL_INTERVAL_HOUR_TO_SECOND;
736     const SQL_C_INTERVAL_MINUTE = SQL_INTERVAL_MINUTE;
737     const SQL_C_INTERVAL_MINUTE_TO_SECOND = SQL_INTERVAL_MINUTE_TO_SECOND;
738     const SQL_C_INTERVAL_MONTH = SQL_INTERVAL_MONTH;
739     const SQL_C_INTERVAL_SECOND = SQL_INTERVAL_SECOND;
740     const SQL_C_INTERVAL_YEAR = SQL_INTERVAL_YEAR;
741     const SQL_C_INTERVAL_YEAR_TO_MONTH = SQL_INTERVAL_YEAR_TO_MONTH;
742     const SQL_C_NUMERIC = SQL_NUMERIC;
743     const SQL_C_SBIGINT = SQL_BIGINT+SQL_SIGNED_OFFSET;
744     const SQL_C_TYPE_DATE = SQL_TYPE_DATE;
745     const SQL_C_TYPE_TIME = SQL_TYPE_TIME;
746     const SQL_C_TYPE_TIMESTAMP = SQL_TYPE_TIMESTAMP;
747     const SQL_C_UBIGINT = SQL_BIGINT+SQL_UNSIGNED_OFFSET;
748     const SQL_C_VARBOOKMARK = SQL_C_BINARY;
749     const SQL_CA_CONSTRAINT_DEFERRABLE = 0x00000040L;
750     const SQL_CA_CONSTRAINT_INITIALLY_DEFERRED = 0x00000010L;
751     const SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000020L;
752     const SQL_CA_CONSTRAINT_NON_DEFERRABLE = 0x00000080L;
753     const SQL_CA_CREATE_ASSERTION = 0x00000001L;
754     const SQL_CA1_ABSOLUTE = 0x00000002L;
755     const SQL_CA1_BOOKMARK = 0x00000008L;
756     const SQL_CA1_BULK_ADD = 0x00010000L;
757     const SQL_CA1_BULK_DELETE_BY_BOOKMARK = 0x00040000L;
758     const SQL_CA1_BULK_FETCH_BY_BOOKMARK = 0x00080000L;
759     const SQL_CA1_BULK_UPDATE_BY_BOOKMARK = 0x00020000L;
760     const SQL_CA1_LOCK_EXCLUSIVE = 0x00000080L;
761     const SQL_CA1_LOCK_NO_CHANGE = 0x00000040L;
762     const SQL_CA1_LOCK_UNLOCK = 0x00000100L;
763     const SQL_CA1_NEXT = 0x00000001L;
764     const SQL_CA1_POS_DELETE = 0x00000800L;
765     const SQL_CA1_POS_POSITION = 0x00000200L;
766     const SQL_CA1_POS_REFRESH = 0x00001000L;
767     const SQL_CA1_POS_UPDATE = 0x00000400L;
768     const SQL_CA1_POSITIONED_DELETE = 0x00004000L;
769     const SQL_CA1_POSITIONED_UPDATE = 0x00002000L;
770     const SQL_CA1_RELATIVE = 0x00000004L;
771     const SQL_CA1_SELECT_FOR_UPDATE = 0x00008000L;
772     const SQL_CA2_CRC_APPROXIMATE = 0x00002000L;
773     const SQL_CA2_CRC_EXACT = 0x00001000L;
774     const SQL_CA2_LOCK_CONCURRENCY = 0x00000002L;
775
776     const SQL_CA2_MAX_ROWS_CATALOG = 0x00000800L;
777     const SQL_CA2_MAX_ROWS_DELETE  = 0x00000200L;
778     const SQL_CA2_MAX_ROWS_INSERT  = 0x00000100L;
779     const SQL_CA2_MAX_ROWS_SELECT  = 0x00000080L;
780     const SQL_CA2_MAX_ROWS_UPDATE  = 0x00000400L;
781     const SQL_CA2_MAX_ROWS_AFFECTS_ALL = SQL_CA2_MAX_ROWS_SELECT | SQL_CA2_MAX_ROWS_INSERT |
782         SQL_CA2_MAX_ROWS_DELETE | SQL_CA2_MAX_ROWS_UPDATE | SQL_CA2_MAX_ROWS_CATALOG;
783
784     const SQL_CA2_OPT_ROWVER_CONCURRENCY = 0x00000004L;
785     const SQL_CA2_OPT_VALUES_CONCURRENCY = 0x00000008L;
786     const SQL_CA2_READ_ONLY_CONCURRENCY = 0x00000001L;
787     const SQL_CA2_SENSITIVITY_ADDITIONS = 0x00000010L;
788     const SQL_CA2_SENSITIVITY_DELETIONS = 0x00000020L;
789     const SQL_CA2_SENSITIVITY_UPDATES = 0x00000040L;
790     const SQL_CA2_SIMULATE_NON_UNIQUE = 0x00004000L;
791     const SQL_CA2_SIMULATE_TRY_UNIQUE = 0x00008000L;
792     const SQL_CA2_SIMULATE_UNIQUE = 0x00010000L;
793     const SQL_CATALOG_LOCATION = SQL_QUALIFIER_LOCATION;
794     const SQL_CATALOG_NAME_SEPARATOR = SQL_QUALIFIER_NAME_SEPARATOR;
795     const SQL_CATALOG_TERM = SQL_QUALIFIER_TERM;
796     const SQL_CATALOG_USAGE = SQL_QUALIFIER_USAGE;
797     const SQL_CCOL_CREATE_COLLATION = 0x00000001L;
798     const SQL_CCS_COLLATE_CLAUSE = 0x00000002L;
799     const SQL_CCS_CREATE_CHARACTER_SET = 0x00000001L;
800     const SQL_CCS_LIMITED_COLLATION = 0x00000004L;
801     const SQL_CDO_COLLATION = 0x00000008L;
802     const SQL_CDO_CONSTRAINT = 0x00000004L;
803     const SQL_CDO_CONSTRAINT_DEFERRABLE = 0x00000080L;
804     const SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED = 0x00000020L;
805     const SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000040L;
806     const SQL_CDO_CONSTRAINT_NAME_DEFINITION = 0x00000010L;
807     const SQL_CDO_CONSTRAINT_NON_DEFERRABLE = 0x00000100L;
808     const SQL_CDO_CREATE_DOMAIN = 0x00000001L;
809     const SQL_CDO_DEFAULT = 0x00000002L;
810     const SQL_CL_END = SQL_QL_END;
811     const SQL_CL_START = SQL_QL_START;
812     const SQL_COL_PRED_BASIC = SQL_ALL_EXCEPT_LIKE;
813     const SQL_COL_PRED_CHAR = SQL_LIKE_ONLY;
814     const SQL_COLUMN_DRIVER_START = 1000;
815     const SQL_COLUMN_IGNORE = SQL_IGNORE;
816     const SQL_COLUMN_NUMBER_UNKNOWN = -2;
817     const SQL_CONVERT_GUID = 173;
818
819     const SQL_CONVERT_WCHAR               = 122;
820     const SQL_CONVERT_INTERVAL_DAY_TIME   = 123;
821     const SQL_CONVERT_INTERVAL_YEAR_MONTH = 124;
822     const SQL_CONVERT_WLONGVARCHAR        = 125;
823     const SQL_CONVERT_WVARCHAR            = 126;
824
825     const SQL_CREATE_ASSERTION     = 127;
826     const SQL_CREATE_CHARACTER_SET = 128;
827     const SQL_CREATE_COLLATION     = 129;
828     const SQL_CREATE_DOMAIN        = 130;
829     const SQL_CREATE_SCHEMA        = 131;
830     const SQL_CREATE_TABLE         = 132;
831     const SQL_CREATE_TRANSLATION   = 133;
832     const SQL_CREATE_VIEW          = 134;
833
834
835     const SQL_CP_OFF            = 0UL;
836     const SQL_CP_DEFAULT        = SQL_CP_OFF;
837     const SQL_CP_ONE_PER_DRIVER = 1UL;
838     const SQL_CP_ONE_PER_HENV   = 2UL;
839
840     const SQL_CP_STRICT_MATCH  = 0UL;
841     const SQL_CP_MATCH_DEFAULT = SQL_CP_STRICT_MATCH;
842     const SQL_CP_RELAXED_MATCH = 1UL;
843
844     const SQL_CS_CREATE_SCHEMA         = 0x00000001L;
845     const SQL_CS_AUTHORIZATION         = 0x00000002L;
846     const SQL_CS_DEFAULT_CHARACTER_SET = 0x00000004L;
847
848     const SQL_CT_COLUMN_COLLATION = 0x00000800L;
849     const SQL_CT_COLUMN_CONSTRAINT = 0x00000200L;
850     const SQL_CT_COLUMN_DEFAULT = 0x00000400L;
851     const SQL_CT_COMMIT_DELETE = 0x00000004L;
852     const SQL_CT_COMMIT_PRESERVE = 0x00000002L;
853     const SQL_CT_CONSTRAINT_DEFERRABLE = 0x00000080L;
854     const SQL_CT_CONSTRAINT_INITIALLY_DEFERRED = 0x00000020L;
855     const SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE = 0x00000040L;
856     const SQL_CT_CONSTRAINT_NAME_DEFINITION = 0x00002000L;
857     const SQL_CT_CONSTRAINT_NON_DEFERRABLE = 0x00000100L;
858     const SQL_CT_CREATE_TABLE = 0x00000001L;
859     const SQL_CT_GLOBAL_TEMPORARY = 0x00000008L;
860     const SQL_CT_LOCAL_TEMPORARY = 0x00000010L;
861     const SQL_CT_TABLE_CONSTRAINT = 0x00001000L;
862
863     const SQL_CTR_CREATE_TRANSLATION = 0x00000001L;
864
865     const SQL_CU_DML_STATEMENTS = SQL_QU_DML_STATEMENTS;
866     const SQL_CU_INDEX_DEFINITION = SQL_QU_INDEX_DEFINITION;
867     const SQL_CU_PRIVILEGE_DEFINITION = SQL_QU_PRIVILEGE_DEFINITION;
868     const SQL_CU_PROCEDURE_INVOCATION = SQL_QU_PROCEDURE_INVOCATION;
869     const SQL_CU_TABLE_DEFINITION = SQL_QU_TABLE_DEFINITION;
870
871     const SQL_CVT_INTERVAL_YEAR_MONTH = 0x00080000L;
872     const SQL_CVT_INTERVAL_DAY_TIME   = 0x00100000L;
873     const SQL_CVT_WCHAR               = 0x00200000L;
874     const SQL_CVT_WLONGVARCHAR        = 0x00400000L;
875     const SQL_CVT_WVARCHAR            = 0x00800000L;
876     const SQL_CVT_GUID                = 0x01000000L;
877
878     const SQL_DA_DROP_ASSERTION = 0x00000001L;
879     const SQL_DATETIME_LITERALS = 119;
880
881     const SQL_DB_DISCONNECT     = 1UL;
882     const SQL_DB_RETURN_TO_POOL = 0UL;
883     const SQL_DB_DEFAULT        = SQL_DB_RETURN_TO_POOL;
884
885     const SQL_DC_DROP_COLLATION = 0x00000001L;
886     const SQL_DCS_DROP_CHARACTER_SET = 0x00000001L;
887     const SQL_DD_CASCADE = 0x00000004L;
888     const SQL_DD_DROP_DOMAIN = 0x00000001L;
889     const SQL_DD_RESTRICT = 0x00000002L;
890     const SQL_DDL_INDEX = 170;
891     const SQL_DELETE_BY_BOOKMARK = 6;
892     const SQL_DESC_ARRAY_SIZE = 20;
893     const SQL_DESC_ARRAY_STATUS_PTR = 21;
894     const SQL_DESC_AUTO_UNIQUE_VALUE = SQL_COLUMN_AUTO_INCREMENT;
895     const SQL_DESC_BASE_COLUMN_NAME = 22;
896     const SQL_DESC_BASE_TABLE_NAME = 23;
897     const SQL_DESC_BIND_OFFSET_PTR = 24;
898     const SQL_DESC_BIND_TYPE = 25;
899     const SQL_DESC_CASE_SENSITIVE = SQL_COLUMN_CASE_SENSITIVE;
900     const SQL_DESC_CATALOG_NAME = SQL_COLUMN_QUALIFIER_NAME;
901     const SQL_DESC_CONCISE_TYPE = SQL_COLUMN_TYPE;
902     const SQL_DESC_DATETIME_INTERVAL_PRECISION = 26;
903     const SQL_DESC_DISPLAY_SIZE = SQL_COLUMN_DISPLAY_SIZE;
904     const SQL_DESC_FIXED_PREC_SCALE = SQL_COLUMN_MONEY;
905     const SQL_DESC_LABEL = SQL_COLUMN_LABEL;
906     const SQL_DESC_LITERAL_PREFIX = 27;
907     const SQL_DESC_LITERAL_SUFFIX = 28;
908     const SQL_DESC_LOCAL_TYPE_NAME = 29;
909     const SQL_DESC_MAXIMUM_SCALE = 30;
910     const SQL_DESC_MINIMUM_SCALE = 31;
911     const SQL_DESC_NUM_PREC_RADIX = 32;
912     const SQL_DESC_PARAMETER_TYPE = 33;
913     const SQL_DESC_ROWS_PROCESSED_PTR = 34;
914     const SQL_DESC_SCHEMA_NAME = SQL_COLUMN_OWNER_NAME;
915     const SQL_DESC_SEARCHABLE = SQL_COLUMN_SEARCHABLE;
916     const SQL_DESC_TABLE_NAME = SQL_COLUMN_TABLE_NAME;
917     const SQL_DESC_TYPE_NAME = SQL_COLUMN_TYPE_NAME;
918     const SQL_DESC_UNSIGNED = SQL_COLUMN_UNSIGNED;
919     const SQL_DESC_UPDATABLE = SQL_COLUMN_UPDATABLE;
920     const SQL_DI_CREATE_INDEX = 0x00000001L;
921     const SQL_DI_DROP_INDEX = 0x00000002L;
922
923     const SQL_DIAG_COLUMN_NUMBER = -1247;
924     const SQL_DIAG_ROW_NUMBER = -1248;
925     const SQL_DIAG_CURSOR_ROW_COUNT = -1249;
926
927     const SQL_DL_SQL92_DATE = 0x00000001L;
928     const SQL_DL_SQL92_INTERVAL_DAY = 0x00000020L;
929     const SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR = 0x00000400L;
930     const SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE = 0x00000800L;
931     const SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND = 0x00001000L;
932     const SQL_DL_SQL92_INTERVAL_HOUR = 0x00000040L;
933     const SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE = 0x00002000L;
934     const SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND = 0x00004000L;
935     const SQL_DL_SQL92_INTERVAL_MINUTE = 0x00000080L;
936     const SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND = 0x00008000L;
937     const SQL_DL_SQL92_INTERVAL_MONTH = 0x00000010L;
938     const SQL_DL_SQL92_INTERVAL_SECOND = 0x00000100L;
939     const SQL_DL_SQL92_INTERVAL_YEAR = 0x00000008L;
940     const SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH = 0x00000200L;
941     const SQL_DL_SQL92_TIME = 0x00000002L;
942     const SQL_DL_SQL92_TIMESTAMP = 0x00000004L;
943     const SQL_DM_VER = 171;
944     const SQL_DRIVER_HDESC = 135;
945     const SQL_DROP_ASSERTION = 136;
946     const SQL_DROP_CHARACTER_SET = 137;
947     const SQL_DROP_COLLATION = 138;
948     const SQL_DROP_DOMAIN = 139;
949     const SQL_DROP_SCHEMA = 140;
950     const SQL_DROP_TABLE = 141;
951     const SQL_DROP_TRANSLATION = 142;
952     const SQL_DROP_VIEW = 143;
953     const SQL_DS_CASCADE = 0x00000004L;
954     const SQL_DS_DROP_SCHEMA = 0x00000001L;
955     const SQL_DS_RESTRICT = 0x00000002L;
956     const SQL_DT_CASCADE = 0x00000004L;
957     const SQL_DT_DROP_TABLE = 0x00000001L;
958     const SQL_DT_RESTRICT = 0x00000002L;
959     const SQL_DTC_DONE = 0L;
960     const SQL_DTR_DROP_TRANSLATION = 0x00000001L;
961     const SQL_DV_CASCADE = 0x00000004L;
962     const SQL_DV_DROP_VIEW = 0x00000001L;
963     const SQL_DV_RESTRICT = 0x00000002L;
964     const SQL_DYNAMIC_CURSOR_ATTRIBUTES1 = 144;
965     const SQL_DYNAMIC_CURSOR_ATTRIBUTES2 = 145;
966     const SQL_EXT_API_LAST = SQL_API_SQLBINDPARAMETER;
967     const SQL_EXT_API_START = 40;
968     const SQL_FETCH_BY_BOOKMARK = 7;
969     const SQL_FETCH_FIRST_SYSTEM = 32;
970     const SQL_FETCH_FIRST_USER = 31;
971     const SQL_FN_CVT_CAST = 0x00000002L;
972     const SQL_FN_STR_BIT_LENGTH = 0x00080000L;
973     const SQL_FN_STR_CHAR_LENGTH = 0x00100000L;
974     const SQL_FN_STR_CHARACTER_LENGTH = 0x00200000L;
975     const SQL_FN_STR_OCTET_LENGTH = 0x00400000L;
976     const SQL_FN_STR_POSITION = 0x00800000L;
977     const SQL_FN_TD_CURRENT_DATE = 0x00020000L;
978     const SQL_FN_TD_CURRENT_TIME = 0x00040000L;
979     const SQL_FN_TD_CURRENT_TIMESTAMP = 0x00080000L;
980     const SQL_FN_TD_EXTRACT = 0x00100000L;
981     const SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 = 146;
982     const SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 = 147;
983     /* #define SQL_FUNC_EXISTS(exists, api)
984        ((*(((UWORD*) (exists)) + ((api) >> 4)) & (1 << ((api) & 15)) ) ?
985        SQL_TRUE : SQL_FALSE )
986     */
987     const SQL_GB_COLLATE = 0x0004;
988     const SQL_HANDLE_SENV = 5;
989
990     const SQL_IK_NONE = 0;
991     const SQL_IK_ASC = 1;
992     const SQL_IK_DESC = 2;
993     const SQL_IK_ALL = SQL_IK_ASC | SQL_IK_DESC;
994
995     const SQL_INDEX_KEYWORDS = 148;
996     const SQL_INFO_DRIVER_START = 1000;
997     const SQL_INFO_LAST = SQL_QUALIFIER_LOCATION;
998     const SQL_INFO_SCHEMA_VIEWS = 149;
999     const SQL_INITIALLY_DEFERRED = 5;
1000     const SQL_INITIALLY_IMMEDIATE = 6;
1001     const SQL_INSERT_STATEMENT = 172;
1002     const SQL_INTERVAL = 10;
1003     const SQL_IS_INSERT_LITERALS = 0x00000001L;
1004     const SQL_IS_INSERT_SEARCHED = 0x00000002L;
1005     const SQL_IS_INTEGER = -6;
1006     const SQL_IS_POINTER = -4;
1007     const SQL_IS_SELECT_INTO = 0x00000004L;
1008     const SQL_IS_SMALLINT = -8;
1009     const SQL_IS_UINTEGER = -5;
1010     const SQL_IS_USMALLINT = -7;
1011     const SQL_ISV_ASSERTIONS = 0x00000001L;
1012     const SQL_ISV_CHARACTER_SETS = 0x00000002L;
1013     const SQL_ISV_CHECK_CONSTRAINTS = 0x00000004L;
1014     const SQL_ISV_COLLATIONS = 0x00000008L;
1015     const SQL_ISV_COLUMN_DOMAIN_USAGE = 0x00000010L;
1016     const SQL_ISV_COLUMN_PRIVILEGES = 0x00000020L;
1017     const SQL_ISV_COLUMNS = 0x00000040L;
1018     const SQL_ISV_CONSTRAINT_COLUMN_USAGE = 0x00000080L;
1019     const SQL_ISV_CONSTRAINT_TABLE_USAGE = 0x00000100L;
1020     const SQL_ISV_DOMAIN_CONSTRAINTS = 0x00000200L;
1021     const SQL_ISV_DOMAINS = 0x00000400L;
1022     const SQL_ISV_KEY_COLUMN_USAGE = 0x00000800L;
1023     const SQL_ISV_REFERENTIAL_CONSTRAINTS = 0x00001000L;
1024     const SQL_ISV_SCHEMATA = 0x00002000L;
1025     const SQL_ISV_SQL_LANGUAGES = 0x00004000L;
1026     const SQL_ISV_TABLE_CONSTRAINTS = 0x00008000L;
1027     const SQL_ISV_TABLE_PRIVILEGES = 0x00010000L;
1028     const SQL_ISV_TABLES = 0x00020000L;
1029     const SQL_ISV_TRANSLATIONS = 0x00040000L;
1030     const SQL_ISV_USAGE_PRIVILEGES = 0x00080000L;
1031     const SQL_ISV_VIEW_COLUMN_USAGE = 0x00100000L;
1032     const SQL_ISV_VIEW_TABLE_USAGE = 0x00200000L;
1033     const SQL_ISV_VIEWS = 0x00400000L;
1034     const SQL_KEYSET_CURSOR_ATTRIBUTES1 = 150;
1035     const SQL_KEYSET_CURSOR_ATTRIBUTES2 = 151;
1036     const SQL_MAX_ASYNC_CONCURRENT_STATEMENTS = 10022;
1037     const SQL_NO_COLUMN_NUMBER = -1;
1038     const SQL_NO_ROW_NUMBER = -1;
1039     const SQL_NOT_DEFERRABLE = 7;
1040     const SQL_NUM_EXTENSIONS = SQL_EXT_API_LAST-SQL_EXT_API_START+1;
1041     const SQL_NUM_FUNCTIONS = 23;
1042     const SQL_ODBC_INTERFACE_CONFORMANCE = 152;
1043
1044     enum : ULONG {
1045         SQL_OIC_CORE = 1,
1046         SQL_OIC_LEVEL1,
1047         SQL_OIC_LEVEL2
1048     }
1049     enum : ULONG {
1050         SQL_OV_ODBC2 = 2,
1051         SQL_OV_ODBC3 = 3
1052     }
1053
1054     const ULONG
1055         SQL_PARAM_BIND_BY_COLUMN = 0,
1056         SQL_PARAM_BIND_TYPE_DEFAULT = SQL_PARAM_BIND_BY_COLUMN;
1057
1058     const SQL_PARAM_ARRAY_ROW_COUNTS = 153;
1059     const SQL_PARAM_ARRAY_SELECTS = 154;
1060     const SQL_PARAM_DIAG_UNAVAILABLE = 1;
1061     const SQL_PARAM_ERROR = 5;
1062     const SQL_PARAM_IGNORE = 1;
1063     const SQL_PARAM_PROCEED = 0;
1064     const SQL_PARAM_SUCCESS = 0;
1065     const SQL_PARAM_SUCCESS_WITH_INFO = 6;
1066     const SQL_PARAM_UNUSED = 7;
1067
1068     const SQL_PARC_BATCH = 1;
1069     const SQL_PARC_NO_BATCH = 2;
1070     const SQL_PAS_BATCH = 1;
1071     const SQL_PAS_NO_BATCH = 2;
1072     const SQL_PAS_NO_SELECT = 3;
1073
1074     const SQL_ROW_IGNORE = 1;
1075     const SQL_ROW_NUMBER_UNKNOWN = -2;
1076     const SQL_ROW_PROCEED = 0;
1077     const SQL_ROW_SUCCESS_WITH_INFO = 6;
1078
1079     const SQL_SC_FIPS127_2_TRANSITIONAL = 0x00000002L;
1080     const SQL_SC_SQL92_ENTRY = 0x00000001L;
1081     const SQL_SC_SQL92_FULL = 0x00000008L;
1082     const SQL_SC_SQL92_INTERMEDIATE = 0x00000004L;
1083
1084     const SQL_SCC_ISO92_CLI = 0x00000002L;
1085     const SQL_SCC_XOPEN_CLI_VERSION1 = 0x00000001L;
1086
1087     const SQL_SCHEMA_TERM = SQL_OWNER_TERM;
1088     const SQL_SCHEMA_USAGE = SQL_OWNER_USAGE;
1089     const SQL_SDF_CURRENT_DATE = 0x00000001L;
1090     const SQL_SDF_CURRENT_TIME = 0x00000002L;
1091     const SQL_SDF_CURRENT_TIMESTAMP = 0x00000004L;
1092     const SQL_SFKD_CASCADE = 0x00000001L;
1093     const SQL_SFKD_NO_ACTION = 0x00000002L;
1094     const SQL_SFKD_SET_DEFAULT = 0x00000004L;
1095     const SQL_SFKD_SET_NULL = 0x00000008L;
1096     const SQL_SFKU_CASCADE = 0x00000001L;
1097     const SQL_SFKU_NO_ACTION = 0x00000002L;
1098     const SQL_SFKU_SET_DEFAULT = 0x00000004L;
1099     const SQL_SFKU_SET_NULL = 0x00000008L;
1100     const SQL_SG_DELETE_TABLE = 0x00000020L;
1101     const SQL_SG_INSERT_COLUMN = 0x00000080L;
1102     const SQL_SG_INSERT_TABLE = 0x00000040L;
1103     const SQL_SG_REFERENCES_COLUMN = 0x00000200L;
1104     const SQL_SG_REFERENCES_TABLE = 0x00000100L;
1105     const SQL_SG_SELECT_TABLE = 0x00000400L;
1106     const SQL_SG_UPDATE_COLUMN = 0x00001000L;
1107     const SQL_SG_UPDATE_TABLE = 0x00000800L;
1108     const SQL_SG_USAGE_ON_CHARACTER_SET = 0x00000002L;
1109     const SQL_SG_USAGE_ON_COLLATION = 0x00000004L;
1110     const SQL_SG_USAGE_ON_DOMAIN = 0x00000001L;
1111     const SQL_SG_USAGE_ON_TRANSLATION = 0x00000008L;
1112     const SQL_SG_WITH_GRANT_OPTION = 0x00000010L;
1113     const SQL_SNVF_BIT_LENGTH = 0x00000001L;
1114     const SQL_SNVF_CHAR_LENGTH = 0x00000002L;
1115     const SQL_SNVF_CHARACTER_LENGTH = 0x00000004L;
1116     const SQL_SNVF_EXTRACT = 0x00000008L;
1117     const SQL_SNVF_OCTET_LENGTH = 0x00000010L;
1118     const SQL_SNVF_POSITION = 0x00000020L;
1119     const SQL_SP_BETWEEN = 0x00000800L;
1120     const SQL_SP_COMPARISON = 0x00001000L;
1121     const SQL_SP_EXISTS = 0x00000001L;
1122     const SQL_SP_IN = 0x00000400L;
1123     const SQL_SP_ISNOTNULL = 0x00000002L;
1124     const SQL_SP_ISNULL = 0x00000004L;
1125     const SQL_SP_LIKE = 0x00000200L;
1126     const SQL_SP_MATCH_FULL = 0x00000008L;
1127     const SQL_SP_MATCH_PARTIAL = 0x00000010L;
1128     const SQL_SP_MATCH_UNIQUE_FULL = 0x00000020L;
1129     const SQL_SP_MATCH_UNIQUE_PARTIAL = 0x00000040L;
1130     const SQL_SP_OVERLAPS = 0x00000080L;
1131     const SQL_SP_QUANTIFIED_COMPARISON = 0x00002000L;
1132     const SQL_SP_UNIQUE = 0x00000100L;
1133     const SQL_SQL_CONFORMANCE = 118;
1134     const SQL_SQL92_DATETIME_FUNCTIONS = 155;
1135     const SQL_SQL92_FOREIGN_KEY_DELETE_RULE = 156;
1136     const SQL_SQL92_FOREIGN_KEY_UPDATE_RULE = 157;
1137     const SQL_SQL92_GRANT = 158;
1138     const SQL_SQL92_NUMERIC_VALUE_FUNCTIONS = 159;
1139     const SQL_SQL92_PREDICATES = 160;
1140     const SQL_SQL92_RELATIONAL_JOIN_OPERATORS = 161;
1141     const SQL_SQL92_REVOKE = 162;
1142     const SQL_SQL92_ROW_VALUE_CONSTRUCTOR = 163;
1143     const SQL_SQL92_STRING_FUNCTIONS = 164;
1144     const SQL_SQL92_VALUE_EXPRESSIONS = 165;
1145     const SQL_SR_CASCADE = 0x00000020L;
1146     const SQL_SR_DELETE_TABLE = 0x00000080L;
1147     const SQL_SR_GRANT_OPTION_FOR = 0x00000010L;
1148     const SQL_SR_INSERT_COLUMN = 0x00000200L;
1149     const SQL_SR_INSERT_TABLE = 0x00000100L;
1150     const SQL_SR_REFERENCES_COLUMN = 0x00000800L;
1151     const SQL_SR_REFERENCES_TABLE = 0x00000400L;
1152     const SQL_SR_RESTRICT = 0x00000040L;
1153     const SQL_SR_SELECT_TABLE = 0x00001000L;
1154     const SQL_SR_UPDATE_COLUMN = 0x00004000L;
1155     const SQL_SR_UPDATE_TABLE = 0x00002000L;
1156     const SQL_SR_USAGE_ON_CHARACTER_SET = 0x00000002L;
1157     const SQL_SR_USAGE_ON_COLLATION = 0x00000004L;
1158     const SQL_SR_USAGE_ON_DOMAIN = 0x00000001L;
1159     const SQL_SR_USAGE_ON_TRANSLATION = 0x00000008L;
1160     const SQL_SRJO_CORRESPONDING_CLAUSE = 0x00000001L;
1161     const SQL_SRJO_CROSS_JOIN = 0x00000002L;
1162     const SQL_SRJO_EXCEPT_JOIN = 0x00000004L;
1163     const SQL_SRJO_FULL_OUTER_JOIN = 0x00000008L;
1164     const SQL_SRJO_INNER_JOIN = 0x00000010L;
1165     const SQL_SRJO_INTERSECT_JOIN = 0x00000020L;
1166     const SQL_SRJO_LEFT_OUTER_JOIN = 0x00000040L;
1167     const SQL_SRJO_NATURAL_JOIN = 0x00000080L;
1168     const SQL_SRJO_RIGHT_OUTER_JOIN = 0x00000100L;
1169     const SQL_SRJO_UNION_JOIN = 0x00000200L;
1170     const SQL_SRVC_DEFAULT = 0x00000004L;
1171     const SQL_SRVC_NULL = 0x00000002L;
1172     const SQL_SRVC_ROW_SUBQUERY = 0x00000008L;
1173     const SQL_SRVC_VALUE_EXPRESSION = 0x00000001L;
1174     const SQL_SSF_CONVERT = 0x00000001L;
1175     const SQL_SSF_LOWER = 0x00000002L;
1176     const SQL_SSF_SUBSTRING = 0x00000008L;
1177     const SQL_SSF_TRANSLATE = 0x00000010L;
1178     const SQL_SSF_TRIM_BOTH = 0x00000020L;
1179     const SQL_SSF_TRIM_LEADING = 0x00000040L;
1180     const SQL_SSF_TRIM_TRAILING = 0x00000080L;
1181     const SQL_SSF_UPPER = 0x00000004L;
1182     const SQL_STANDARD_CLI_CONFORMANCE = 166;
1183     const SQL_STATIC_CURSOR_ATTRIBUTES1 = 167;
1184     const SQL_STATIC_CURSOR_ATTRIBUTES2 = 168;
1185     const SQL_SU_DML_STATEMENTS = SQL_OU_DML_STATEMENTS;
1186     const SQL_SU_INDEX_DEFINITION = SQL_OU_INDEX_DEFINITION;
1187     const SQL_SU_PRIVILEGE_DEFINITION = SQL_OU_PRIVILEGE_DEFINITION;
1188     const SQL_SU_PROCEDURE_INVOCATION = SQL_OU_PROCEDURE_INVOCATION;
1189     const SQL_SU_TABLE_DEFINITION = SQL_OU_TABLE_DEFINITION;
1190     const SQL_SVE_CASE = 0x00000001L;
1191     const SQL_SVE_CAST = 0x00000002L;
1192     const SQL_SVE_COALESCE = 0x00000004L;
1193     const SQL_SVE_NULLIF = 0x00000008L;
1194     const SQL_UB_FIXED = SQL_UB_ON;
1195     const SQL_UB_VARIABLE = 2UL;
1196     const SQL_UNION_STATEMENT = SQL_UNION;
1197     const SQL_UPDATE_BY_BOOKMARK = 5;
1198     const SQL_US_UNION = SQL_U_UNION;
1199     const SQL_US_UNION_ALL = SQL_U_UNION_ALL;
1200 }//[Yes] #endif /* ODBCVER >= 0x300 */
1201 static if (ODBCVER >= 0x0350) {
1202     const SQL_DESC_ROWVER = 35;
1203     const SQL_GUID = -11;
1204     const SQL_C_GUID = SQL_GUID;
1205     //#ifdef ODBC_STD
1206     //#define SQLAllocHandle SQLAllocHandleStd
1207     //#define SQLAllocEnv(p) SQLAllocHandleStd(SQL_HANDLE_ENV, SQL_NULL_HANDLE, p)
1208     //#define SQL_YEAR SQL_CODE_YEAR
1209     //#define SQL_MONTH SQL_CODE_MONTH
1210     //#define SQL_DAY SQL_CODE_DAY
1211     //#define SQL_HOUR SQL_CODE_HOUR
1212     //#define SQL_MINUTE SQL_CODE_MINUTE
1213     //#define SQL_SECOND SQL_CODE_SECOND
1214     //#define SQL_YEAR_TO_MONTH SQL_CODE_YEAR_TO_MONTH
1215     //#define SQL_DAY_TO_HOUR SQL_CODE_DAY_TO_HOUR
1216     //#define SQL_DAY_TO_MINUTE SQL_CODE_DAY_TO_MINUTE
1217     //#define SQL_DAY_TO_SECOND SQL_CODE_DAY_TO_SECOND
1218     //#define SQL_HOUR_TO_MINUTE SQL_CODE_HOUR_TO_MINUTE
1219     //#define SQL_HOUR_TO_SECOND SQL_CODE_HOUR_TO_SECOND
1220     //#define SQL_MINUTE_TO_SECOND SQL_CODE_MINUTE_TO_SECOND
1221     //#endif /* ODBC_STD */
1222 }//#endif /* ODBCVER >= 0x0350 */
1223
1224 //static if (ODBCVER >= 0x0351) {
1225 const SQL_ATTR_ANSI_APP=115;
1226 const SQL_AA_TRUE=1L;
1227 const SQL_AA_FALSE=0L;
1228 //}//[Yes] #endif
1229
1230 const TRACE_VERSION=1000;
1231 const TRACE_ON=1;
1232
1233 const char [] SQL_ODBC_KEYWORDS =
1234     "ABSOLUTE, ACTION, ADA, ADD, ALL, ALLOCATE, ALTER, AND, ANY, ARE, AS, "
1235     ~ "ASC, ASSERTION, AT, AUTHORIZATION, AVG, "
1236     ~ "BEGIN, BETWEEN, BIT, BIT_LENGTH, BOTH, BY, CASCADE, CASCADED, CASE, CAST, CATALOG, "
1237     ~ "CHAR, CHAR_LENGTH, CHARACTER, CHARACTER_LENGTH, CHECK, CLOSE, COALESCE, "
1238     ~ "COLLATE, COLLATION, COLUMN, COMMIT, CONNECT, CONNECTION, CONSTRAINT, "
1239     ~ "CONSTRAINTS, CONTINUE, CONVERT, CORRESPONDING, COUNT, CREATE, CROSS, CURRENT, "
1240     ~ "CURRENT_DATE, CURRENT_TIME, CURRENT_TIMESTAMP, CURRENT_USER, CURSOR, "
1241     ~ "DATE, DAY, DEALLOCATE, DEC, DECIMAL, DECLARE, DEFAULT, DEFERRABLE, "
1242     ~ "DEFERRED, DELETE, DESC, DESCRIBE, DESCRIPTOR, DIAGNOSTICS, DISCONNECT, "
1243     ~ "DISTINCT, DOMAIN, DOUBLE, DROP, "
1244     ~ "ELSE, END, END-EXEC, ESCAPE, EXCEPT, EXCEPTION, EXEC, EXECUTE, "
1245     ~ "EXISTS, EXTERNAL, EXTRACT, "
1246     ~ "FALSE, FETCH, FIRST, FLOAT, FOR, FOREIGN, FORTRAN, FOUND, FROM, FULL, "
1247     ~ "GET, GLOBAL, GO, GOTO, GRANT, GROUP, HAVING, HOUR, "
1248     ~ "IDENTITY, IMMEDIATE, IN, INCLUDE, INDEX, INDICATOR, INITIALLY, INNER, "
1249     ~ "INPUT, INSENSITIVE, INSERT, INT, INTEGER, INTERSECT, INTERVAL, INTO, IS, ISOLATION, "
1250     ~ "JOIN, KEY, LANGUAGE, LAST, LEADING, LEFT, LEVEL, LIKE, LOCAL, LOWER, "
1251     ~ "MATCH, MAX, MIN, MINUTE, MODULE, MONTH, "
1252     ~ "NAMES, NATIONAL, NATURAL, NCHAR, NEXT, NO, NONE, NOT, NULL, NULLIF, NUMERIC, "
1253     ~ "OCTET_LENGTH, OF, ON, ONLY, OPEN, OPTION, OR, ORDER, OUTER, OUTPUT, OVERLAPS, "
1254     ~ "PAD, PARTIAL, PASCAL, PLI, POSITION, PRECISION, PREPARE, PRESERVE, "
1255     ~ "PRIMARY, PRIOR, PRIVILEGES, PROCEDURE, PUBLIC, "
1256     ~ "READ, REAL, REFERENCES, RELATIVE, RESTRICT, REVOKE, RIGHT, ROLLBACK, ROWS"
1257     ~ "SCHEMA, SCROLL, SECOND, SECTION, SELECT, SESSION, SESSION_USER, SET, SIZE, "
1258     ~ "SMALLINT, SOME, SPACE, SQL, SQLCA, SQLCODE, SQLERROR, SQLSTATE, SQLWARNING, "
1259     ~ "SUBSTRING, SUM, SYSTEM_USER, "
1260     ~ "TABLE, TEMPORARY, THEN, TIME, TIMESTAMP, TIMEZONE_HOUR, TIMEZONE_MINUTE, "
1261     ~ "TO, TRAILING, TRANSACTION, TRANSLATE, TRANSLATION, TRIM, TRUE, "
1262     ~ "UNION, UNIQUE, UNKNOWN, UPDATE, UPPER, USAGE, USER, USING, "
1263     ~ "VALUE, VALUES, VARCHAR, VARYING, VIEW, WHEN, WHENEVER, WHERE, WITH, WORK, WRITE, "
1264     ~ "YEAR, ZONE";
1265 extern (Windows) {
1266     SQLRETURN SQLDriverConnect(SQLHDBC, SQLHWND, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLUSMALLINT);
1267     SQLRETURN SQLBrowseConnect(SQLHDBC, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*);
1268     SQLRETURN SQLColumnPrivileges(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT);
1269     SQLRETURN SQLColAttributes(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLPOINTER, SQLSMALLINT, SQLSMALLINT*, SQLLEN*);
1270     SQLRETURN SQLDescribeParam(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT*, SQLULEN*, SQLSMALLINT*, SQLSMALLINT*);
1271     SQLRETURN SQLExtendedFetch(SQLHSTMT, SQLUSMALLINT, SQLINTEGER, SQLUINTEGER*, SQLUSMALLINT*);
1272     SQLRETURN SQLForeignKeys(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT);
1273     SQLRETURN SQLMoreResults(SQLHSTMT);
1274     SQLRETURN SQLNativeSql(SQLHDBC, SQLCHAR*, SQLINTEGER, SQLCHAR*, SQLINTEGER, SQLINTEGER*);
1275     SQLRETURN SQLNumParams(SQLHSTMT, SQLSMALLINT*);
1276     SQLRETURN SQLParamOptions(SQLHSTMT, SQLUINTEGER, SQLUINTEGER*);
1277     SQLRETURN SQLPrimaryKeys(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT);
1278     SQLRETURN SQLProcedureColumns(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT);
1279     SQLRETURN SQLProcedures(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT);
1280     SQLRETURN SQLSetPos(SQLHSTMT, SQLUSMALLINT, SQLUSMALLINT, SQLUSMALLINT);
1281     SQLRETURN SQLTablePrivileges(SQLHSTMT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT, SQLCHAR*, SQLSMALLINT);
1282     SQLRETURN SQLDrivers(SQLHENV, SQLUSMALLINT, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*, SQLCHAR*, SQLSMALLINT, SQLSMALLINT*);
1283     SQLRETURN SQLBindParameter(SQLHSTMT, SQLUSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLSMALLINT, SQLULEN, SQLSMALLINT, SQLPOINTER, SQLLEN, SQLLEN*);
1284     SQLRETURN SQLSetScrollOptions(SQLHSTMT, SQLUSMALLINT, SQLLEN, SQLUSMALLINT);/* deprecated */
1285     DWORD ODBCGetTryWaitValue();
1286     BOOL ODBCSetTryWaitValue(DWORD);
1287     RETCODE TraceOpenLogFile(LPWSTR, LPWSTR, DWORD);
1288     RETCODE TraceCloseLogFile();
1289     VOID TraceReturn(RETCODE, RETCODE);
1290     DWORD TraceVersion();
1291     //static if (ODBCVER >= 0x0300) {
1292     SQLRETURN SQLBulkOperations(SQLHSTMT, SQLSMALLINT);
1293     SQLRETURN SQLAllocHandleStd( SQLSMALLINT, SQLHANDLE, SQLHANDLE*);
1294     //}
1295 }
Note: See TracBrowser for help on using the browser.