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