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