home *** CD-ROM | disk | FTP | other *** search
/ Total C++ 2 / TOTALCTWO.iso / borland / mfcinc.pak / SQL.H < prev    next >
C/C++ Source or Header  |  1997-05-06  |  48KB  |  1,260 lines

  1. /*****************************************************************
  2. ** SQL.H - This is the the main include for ODBC Core functions.
  3. **
  4. ** preconditions:
  5. **      #include "windows.h"
  6. **
  7. ** (C) Copyright 1990 - 1995 By Microsoft Corp.
  8. **
  9. **      Updated 5/12/93 for 2.00 specification
  10. **      Updated 5/23/94 for 2.01 specification
  11. **      Updated 11/10/94 for 2.10 specification
  12. **      Updated 04/10/95 for 2.50 specification
  13. *********************************************************************/
  14.  
  15. #ifndef __SQL
  16. #define __SQL
  17.  
  18. /*
  19. * ODBCVER                   ODBC version number (0x0200).   To exclude
  20. *                           definitions introduced in version 2.0 (or above)
  21. *                           #define ODBCVER 0x0100 before #including <sql.h>
  22. */
  23.  
  24. /* If ODBCVER is not defined, assume version 2.50 */
  25. #ifndef ODBCVER
  26. #define ODBCVER 0x0250
  27. #endif
  28.  
  29. #ifdef __cplusplus
  30. extern "C" {                /* Assume C declarations for C++   */
  31. #endif  /* __cplusplus */
  32.  
  33. /* generally useful constants */
  34. #if (ODBCVER >= 0x0200)
  35. #define SQL_SPEC_MAJOR                    2     /* Major version of specification  */
  36. #define SQL_SPEC_MINOR                    50    /* Minor version of specification  */
  37. #define SQL_SPEC_STRING         "02.50"         /* String constant for version */
  38. #endif  /* ODBCVER >= 0x0200 */
  39. #define SQL_SQLSTATE_SIZE                 5     /* size of SQLSTATE */
  40. #define SQL_MAX_MESSAGE_LENGTH  512             /* message buffer size */
  41. #define SQL_MAX_DSN_LENGTH               32     /* maximum data source name size*/
  42.  
  43. /* RETCODEs */
  44. #define SQL_INVALID_HANDLE              (-2)
  45. #define SQL_ERROR                       (-1)
  46. #define SQL_SUCCESS                     0
  47. #define SQL_SUCCESS_WITH_INFO           1
  48. #define SQL_NO_DATA_FOUND               100
  49.  
  50. /* Standard SQL datatypes, using ANSI type numbering */
  51. #define SQL_CHAR                        1
  52. #define SQL_NUMERIC                     2
  53. #define SQL_DECIMAL                     3
  54. #define SQL_INTEGER                     4
  55. #define SQL_SMALLINT                    5
  56. #define SQL_FLOAT                       6
  57. #define SQL_REAL                        7
  58. #define SQL_DOUBLE                      8
  59. #define SQL_VARCHAR                     12
  60.  
  61. #define SQL_TYPE_NULL                   0
  62. #define SQL_TYPE_MIN                     SQL_BIT
  63. #define SQL_TYPE_MAX                    SQL_VARCHAR
  64. #define SQL_ALL_TYPES                    0
  65.  
  66. /* C datatype to SQL datatype mapping      SQL types 
  67.                                            ------------------- */
  68. #define SQL_C_CHAR    SQL_CHAR             /* CHAR, VARCHAR, DECIMAL, NUMERIC */
  69. #define SQL_C_LONG    SQL_INTEGER          /* INTEGER                      */
  70. #define SQL_C_SHORT   SQL_SMALLINT         /* SMALLINT                     */
  71. #define SQL_C_FLOAT   SQL_REAL             /* REAL                         */
  72. #define SQL_C_DOUBLE  SQL_DOUBLE           /* FLOAT, DOUBLE                */
  73. #define SQL_C_DEFAULT 99
  74.  
  75. /* NULL status constants.  These are used in SQLColumns, SQLColAttributes,
  76. SQLDescribeCol, SQLDescribeParam, and SQLSpecialColumns to describe the
  77. nullablity of a column in a table. */
  78. #define SQL_NO_NULLS                    0
  79. #define SQL_NULLABLE                    1
  80. #define SQL_NULLABLE_UNKNOWN            2
  81.  
  82. /* Special length values */
  83. #define SQL_NULL_DATA                   (-1)
  84. #define SQL_DATA_AT_EXEC                (-2)
  85. #define SQL_NTS                         (-3)
  86.  
  87. /* SQLFreeStmt defines */
  88. #define SQL_CLOSE                       0
  89. #define SQL_DROP                        1
  90. #define SQL_UNBIND                      2
  91. #define SQL_RESET_PARAMS                3
  92.  
  93. /* SQLTransact defines */
  94. #define SQL_COMMIT                      0
  95. #define SQL_ROLLBACK                    1
  96.  
  97. /* SQLColAttributes defines */
  98. #define SQL_COLUMN_COUNT                0
  99. #define SQL_COLUMN_NAME                 1
  100. #define SQL_COLUMN_TYPE                 2
  101. #define SQL_COLUMN_LENGTH               3
  102. #define SQL_COLUMN_PRECISION            4
  103. #define SQL_COLUMN_SCALE                5
  104. #define SQL_COLUMN_DISPLAY_SIZE         6
  105. #define SQL_COLUMN_NULLABLE             7
  106. #define SQL_COLUMN_UNSIGNED             8
  107. #define SQL_COLUMN_MONEY                9
  108. #define SQL_COLUMN_UPDATABLE            10
  109. #define SQL_COLUMN_AUTO_INCREMENT       11
  110. #define SQL_COLUMN_CASE_SENSITIVE       12
  111. #define SQL_COLUMN_SEARCHABLE           13
  112. #define SQL_COLUMN_TYPE_NAME            14
  113. #if (ODBCVER >= 0x0200)
  114. #define SQL_COLUMN_TABLE_NAME           15
  115. #define SQL_COLUMN_OWNER_NAME           16
  116. #define SQL_COLUMN_QUALIFIER_NAME       17
  117. #define SQL_COLUMN_LABEL                18
  118. #define SQL_COLATT_OPT_MAX              SQL_COLUMN_LABEL
  119. #else
  120. #define SQL_COLATT_OPT_MAX              SQL_COLUMN_TYPE_NAME
  121. #endif  /* ODBCVER >= 0x0200 */
  122. #define SQL_COLUMN_DRIVER_START         1000
  123.  
  124. #define SQL_COLATT_OPT_MIN              SQL_COLUMN_COUNT
  125.  
  126. /* SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE */
  127. #define SQL_ATTR_READONLY               0
  128. #define SQL_ATTR_WRITE                  1
  129. #define SQL_ATTR_READWRITE_UNKNOWN      2
  130.  
  131. /* SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE */
  132. /* These are also used by SQLGetInfo                     */
  133. #define SQL_UNSEARCHABLE                0
  134. #define SQL_LIKE_ONLY                   1
  135. #define SQL_ALL_EXCEPT_LIKE             2
  136. #define SQL_SEARCHABLE                  3
  137.  
  138. /* SQLError defines */
  139. #define SQL_NULL_HENV                   0
  140. #define SQL_NULL_HDBC                   0
  141. #define SQL_NULL_HSTMT                  0
  142.  
  143. #include "sqltypes.h"        
  144.  
  145. #ifndef RC_INVOKED
  146. /* Core Function Prototypes */
  147.  
  148. SQLRETURN SQL_API SQLAllocConnect(
  149.     SQLHENV            henv,
  150.     SQLHDBC FAR       *phdbc);
  151.  
  152. SQLRETURN SQL_API SQLAllocEnv(
  153.     SQLHENV FAR       *phenv);
  154.  
  155. SQLRETURN SQL_API SQLAllocStmt(
  156.     SQLHDBC            hdbc,
  157.     SQLHSTMT FAR      *phstmt);
  158.  
  159. SQLRETURN SQL_API SQLBindCol(
  160.     SQLHSTMT           hstmt,
  161.     SQLUSMALLINT       icol,
  162.     SQLSMALLINT        fCType,
  163.     SQLPOINTER         rgbValue,
  164.     SQLINTEGER         cbValueMax,
  165.     SQLINTEGER FAR    *pcbValue);
  166.  
  167. SQLRETURN SQL_API SQLCancel(
  168.     SQLHSTMT           hstmt);
  169.  
  170. SQLRETURN SQL_API SQLColAttributes(
  171.     SQLHSTMT           hstmt,
  172.     SQLUSMALLINT       icol,
  173.     SQLUSMALLINT       fDescType,
  174.     SQLPOINTER         rgbDesc,
  175.     SQLSMALLINT        cbDescMax,
  176.     SQLSMALLINT FAR   *pcbDesc,
  177.     SQLINTEGER FAR    *pfDesc);
  178.  
  179. SQLRETURN SQL_API SQLConnect(
  180.     SQLHDBC            hdbc,
  181.     SQLCHAR FAR       *szDSN,
  182.     SQLSMALLINT        cbDSN,
  183.     SQLCHAR FAR       *szUID,
  184.     SQLSMALLINT        cbUID,
  185.     SQLCHAR FAR       *szAuthStr,
  186.     SQLSMALLINT        cbAuthStr);
  187.  
  188. SQLRETURN SQL_API SQLDescribeCol(
  189.     SQLHSTMT           hstmt,
  190.     SQLUSMALLINT       icol,
  191.     SQLCHAR FAR       *szColName,
  192.     SQLSMALLINT        cbColNameMax,
  193.     SQLSMALLINT FAR   *pcbColName,
  194.     SQLSMALLINT FAR   *pfSqlType,
  195.     SQLUINTEGER FAR   *pcbColDef,
  196.     SQLSMALLINT FAR   *pibScale,
  197.     SQLSMALLINT FAR   *pfNullable);
  198.  
  199. SQLRETURN SQL_API SQLDisconnect(
  200.     SQLHDBC            hdbc);
  201.  
  202. SQLRETURN SQL_API SQLError(
  203.     SQLHENV            henv,
  204.     SQLHDBC            hdbc,
  205.     SQLHSTMT           hstmt,
  206.     SQLCHAR FAR       *szSqlState,
  207.     SQLINTEGER FAR    *pfNativeError,
  208.     SQLCHAR FAR       *szErrorMsg,
  209.     SQLSMALLINT        cbErrorMsgMax,
  210.     SQLSMALLINT FAR   *pcbErrorMsg);
  211.  
  212. SQLRETURN SQL_API SQLExecDirect(
  213.     SQLHSTMT           hstmt,
  214.     SQLCHAR FAR       *szSqlStr,
  215.     SQLINTEGER         cbSqlStr);
  216.  
  217. SQLRETURN SQL_API SQLExecute(
  218.     SQLHSTMT           hstmt);
  219.  
  220. SQLRETURN SQL_API SQLFetch(
  221.     SQLHSTMT           hstmt);
  222.  
  223. SQLRETURN SQL_API SQLFreeConnect(
  224.     SQLHDBC            hdbc);
  225.  
  226. SQLRETURN SQL_API SQLFreeEnv(
  227.     SQLHENV            henv);
  228.  
  229. SQLRETURN SQL_API SQLFreeStmt(
  230.     SQLHSTMT           hstmt,
  231.     SQLUSMALLINT       fOption);
  232.  
  233. SQLRETURN SQL_API SQLGetCursorName(
  234.     SQLHSTMT           hstmt,
  235.     SQLCHAR FAR       *szCursor,
  236.     SQLSMALLINT        cbCursorMax,
  237.     SQLSMALLINT FAR   *pcbCursor);
  238.  
  239. SQLRETURN SQL_API SQLNumResultCols(
  240.     SQLHSTMT           hstmt,
  241.     SQLSMALLINT FAR   *pccol);
  242.  
  243. SQLRETURN SQL_API SQLPrepare(
  244.     SQLHSTMT           hstmt,
  245.     SQLCHAR FAR       *szSqlStr,
  246.     SQLINTEGER         cbSqlStr);
  247.  
  248. SQLRETURN SQL_API SQLRowCount(
  249.     SQLHSTMT           hstmt,
  250.     SQLINTEGER FAR    *pcrow);
  251.  
  252. SQLRETURN SQL_API SQLSetCursorName(
  253.     SQLHSTMT           hstmt,
  254.     SQLCHAR FAR       *szCursor,
  255.     SQLSMALLINT        cbCursor);
  256.  
  257. SQLRETURN SQL_API SQLTransact(
  258.     SQLHENV            henv,
  259.     SQLHDBC            hdbc,
  260.     SQLUSMALLINT       fType);
  261.  
  262. #endif /* RC_INVOKED */
  263.  
  264. /*      Deprecrated functions from prior versions of ODBC */
  265. #ifndef RC_INVOKED
  266.  
  267. SQLRETURN SQL_API SQLSetParam(            /*      Use SQLBindParameter */
  268.     SQLHSTMT           hstmt,
  269.     SQLUSMALLINT       ipar,
  270.     SQLSMALLINT        fCType,
  271.     SQLSMALLINT        fSqlType,
  272.     SQLUINTEGER        cbParamDef,
  273.     SQLSMALLINT        ibScale,
  274.     SQLPOINTER         rgbValue,
  275.     SQLINTEGER FAR     *pcbValue);
  276.  
  277. #endif /* RC_INVOKED */
  278.  
  279.  
  280. /* Defines used by both Level 1 and Level 2 functions */
  281.  
  282. /* generally useful constants */
  283. #define SQL_MAX_OPTION_STRING_LENGTH    256
  284.  
  285. /* Additional return codes */
  286. #define SQL_STILL_EXECUTING     2
  287. #define SQL_NEED_DATA           99
  288.  
  289. /* SQL extended datatypes */
  290. #define SQL_DATE                                9
  291. #define SQL_TIME                                10
  292. #define SQL_TIMESTAMP                           11
  293. #define SQL_LONGVARCHAR                         (-1)
  294. #define SQL_BINARY                              (-2)
  295. #define SQL_VARBINARY                           (-3)
  296. #define SQL_LONGVARBINARY                       (-4)
  297. #define SQL_BIGINT                              (-5)
  298. #define SQL_TINYINT                             (-6)
  299. #define SQL_BIT                                 (-7)
  300.  
  301. #define SQL_INTERVAL_YEAR                       (-80)
  302. #define SQL_INTERVAL_MONTH                      (-81)
  303. #define SQL_INTERVAL_YEAR_TO_MONTH              (-82)
  304. #define SQL_INTERVAL_DAY                        (-83)
  305. #define SQL_INTERVAL_HOUR                       (-84)
  306. #define SQL_INTERVAL_MINUTE                     (-85)
  307. #define SQL_INTERVAL_SECOND                     (-86)
  308. #define SQL_INTERVAL_DAY_TO_HOUR                (-87)
  309. #define SQL_INTERVAL_DAY_TO_MINUTE              (-88)
  310. #define SQL_INTERVAL_DAY_TO_SECOND              (-89)
  311. #define SQL_INTERVAL_HOUR_TO_MINUTE             (-90)
  312. #define SQL_INTERVAL_HOUR_TO_SECOND             (-91)
  313. #define SQL_INTERVAL_MINUTE_TO_SECOND           (-92)
  314. #define SQL_UNICODE                             (-95)
  315. #define SQL_UNICODE_VARCHAR                     (-96)
  316. #define SQL_UNICODE_LONGVARCHAR                 (-97)
  317. #define SQL_UNICODE_CHAR                        SQL_UNICODE
  318.  
  319. #define SQL_TYPE_DRIVER_START                   SQL_INTERVAL_YEAR
  320. #define SQL_TYPE_DRIVER_END                     SQL_UNICODE_LONGVARCHAR
  321.  
  322.  
  323. #if (ODBCVER >= 0x0200)
  324. #define SQL_SIGNED_OFFSET       (-20)
  325. #define SQL_UNSIGNED_OFFSET     (-22)
  326. #endif  /* ODBCVER >= 0x0200 */
  327.  
  328. /* C datatype to SQL datatype mapping */
  329. #define SQL_C_DATE       SQL_DATE
  330. #define SQL_C_TIME       SQL_TIME
  331. #define SQL_C_TIMESTAMP  SQL_TIMESTAMP
  332. #define SQL_C_BINARY     SQL_BINARY
  333. #define SQL_C_BIT        SQL_BIT
  334. #define SQL_C_TINYINT    SQL_TINYINT
  335. #if (ODBCVER >= 0x0200)
  336. #define SQL_C_SLONG      SQL_C_LONG+SQL_SIGNED_OFFSET    /* SIGNED INTEGER   */
  337. #define SQL_C_SSHORT     SQL_C_SHORT+SQL_SIGNED_OFFSET   /* SIGNED SMALLINT  */
  338. #define SQL_C_STINYINT   SQL_TINYINT+SQL_SIGNED_OFFSET   /* SIGNED TINYINT   */
  339. #define SQL_C_ULONG      SQL_C_LONG+SQL_UNSIGNED_OFFSET  /* UNSIGNED INTEGER */
  340. #define SQL_C_USHORT     SQL_C_SHORT+SQL_UNSIGNED_OFFSET /* UNSIGNED SMALLINT*/
  341. #define SQL_C_UTINYINT   SQL_TINYINT+SQL_UNSIGNED_OFFSET /* UNSIGNED TINYINT */
  342. #define SQL_C_BOOKMARK   SQL_C_ULONG                     /* BOOKMARK         */
  343. #endif  /* ODBCVER >= 0x0200 */
  344.  
  345.  
  346. /* Level 1 Functions                    */
  347.  
  348. /* Special return values for SQLGetData */
  349. #define SQL_NO_TOTAL                    (-4)
  350.  
  351. /* Defines for SQLGetFunctions */
  352. #define SQL_API_SQLALLOCCONNECT      1    /* Core Functions           */
  353. #define SQL_API_SQLALLOCENV          2
  354. #define SQL_API_SQLALLOCSTMT         3
  355. #define SQL_API_SQLBINDCOL           4
  356. #define SQL_API_SQLCANCEL            5
  357. #define SQL_API_SQLCOLATTRIBUTES     6
  358. #define SQL_API_SQLCONNECT           7
  359. #define SQL_API_SQLDESCRIBECOL       8
  360. #define SQL_API_SQLDISCONNECT        9
  361. #define SQL_API_SQLERROR            10
  362. #define SQL_API_SQLEXECDIRECT       11
  363. #define SQL_API_SQLEXECUTE          12
  364. #define SQL_API_SQLFETCH            13
  365. #define SQL_API_SQLFREECONNECT      14
  366. #define SQL_API_SQLFREEENV          15
  367. #define SQL_API_SQLFREESTMT         16
  368. #define SQL_API_SQLGETCURSORNAME    17
  369. #define SQL_API_SQLNUMRESULTCOLS    18
  370. #define SQL_API_SQLPREPARE          19
  371. #define SQL_API_SQLROWCOUNT         20
  372. #define SQL_API_SQLSETCURSORNAME    21
  373. #define SQL_API_SQLSETPARAM         22
  374. #define SQL_API_SQLTRANSACT         23
  375.  
  376. #define SQL_NUM_FUNCTIONS           23
  377.  
  378. #define SQL_EXT_API_START           40
  379.  
  380. #define SQL_API_SQLCOLUMNS          40    /* Level 1 Functions        */
  381. #define SQL_API_SQLDRIVERCONNECT    41
  382. #define SQL_API_SQLGETCONNECTOPTION 42
  383. #define SQL_API_SQLGETDATA          43
  384. #define SQL_API_SQLGETFUNCTIONS     44
  385. #define SQL_API_SQLGETINFO          45
  386. #define SQL_API_SQLGETSTMTOPTION    46
  387. #define SQL_API_SQLGETTYPEINFO      47
  388. #define SQL_API_SQLPARAMDATA        48
  389. #define SQL_API_SQLPUTDATA          49
  390. #define SQL_API_SQLSETCONNECTOPTION 50
  391. #define SQL_API_SQLSETSTMTOPTION    51
  392. #define SQL_API_SQLSPECIALCOLUMNS   52
  393. #define SQL_API_SQLSTATISTICS       53
  394. #define SQL_API_SQLTABLES           54
  395.  
  396. #define SQL_API_SQLBROWSECONNECT    55    /* Level 2 Functions        */
  397. #define SQL_API_SQLCOLUMNPRIVILEGES 56
  398. #define SQL_API_SQLDATASOURCES      57
  399. #define SQL_API_SQLDESCRIBEPARAM    58
  400. #define SQL_API_SQLEXTENDEDFETCH    59
  401. #define SQL_API_SQLFOREIGNKEYS      60
  402. #define SQL_API_SQLMORERESULTS      61
  403. #define SQL_API_SQLNATIVESQL        62
  404. #define SQL_API_SQLNUMPARAMS        63
  405. #define SQL_API_SQLPARAMOPTIONS     64
  406. #define SQL_API_SQLPRIMARYKEYS      65
  407. #define SQL_API_SQLPROCEDURECOLUMNS 66
  408. #define SQL_API_SQLPROCEDURES       67
  409. #define SQL_API_SQLSETPOS           68
  410. #define SQL_API_SQLSETSCROLLOPTIONS 69
  411. #define SQL_API_SQLTABLEPRIVILEGES  70
  412.  
  413. /*              SDK 2.0 Additions               */
  414. #if (ODBCVER >= 0x0200)
  415. #define SQL_API_SQLDRIVERS          71
  416. #define SQL_API_SQLBINDPARAMETER    72
  417. #define SQL_EXT_API_LAST            SQL_API_SQLBINDPARAMETER
  418. #else
  419. #define SQL_EXT_API_LAST            SQL_API_SQLTABLEPRIVILEGES
  420. #endif  /* ODBCVER >= 0x0200 */
  421.  
  422. #define SQL_API_ALL_FUNCTIONS       0
  423.  
  424. #define SQL_NUM_EXTENSIONS (SQL_EXT_API_LAST-SQL_EXT_API_START+1)
  425. #if (ODBCVER >= 0x0200)
  426. #define SQL_API_LOADBYORDINAL       199
  427. #endif  /* ODBCVER >= 0x0200 */
  428.  
  429. /* Defines for SQLGetInfo */
  430. #define SQL_INFO_FIRST                       0
  431. #define SQL_ACTIVE_CONNECTIONS               0
  432. #define SQL_ACTIVE_STATEMENTS                1
  433. #define SQL_DATA_SOURCE_NAME                 2
  434. #define SQL_DRIVER_HDBC                      3
  435. #define SQL_DRIVER_HENV                      4
  436. #define SQL_DRIVER_HSTMT                     5
  437. #define SQL_DRIVER_NAME                      6
  438. #define SQL_DRIVER_VER                       7
  439. #define SQL_FETCH_DIRECTION                  8
  440. #define SQL_ODBC_API_CONFORMANCE             9
  441. #define SQL_ODBC_VER                        10
  442. #define SQL_ROW_UPDATES                     11
  443. #define SQL_ODBC_SAG_CLI_CONFORMANCE        12
  444. #define SQL_SERVER_NAME                     13
  445. #define SQL_SEARCH_PATTERN_ESCAPE           14
  446. #define SQL_ODBC_SQL_CONFORMANCE            15
  447.  
  448. #define SQL_DBMS_NAME                       17
  449. #define SQL_DBMS_VER                        18
  450.  
  451. #define SQL_ACCESSIBLE_TABLES               19
  452. #define SQL_ACCESSIBLE_PROCEDURES           20
  453. #define SQL_PROCEDURES                      21
  454. #define SQL_CONCAT_NULL_BEHAVIOR            22
  455. #define SQL_CURSOR_COMMIT_BEHAVIOR          23
  456. #define SQL_CURSOR_ROLLBACK_BEHAVIOR        24
  457. #define SQL_DATA_SOURCE_READ_ONLY           25
  458. #define SQL_DEFAULT_TXN_ISOLATION           26
  459. #define SQL_EXPRESSIONS_IN_ORDERBY          27
  460. #define SQL_IDENTIFIER_CASE                 28
  461. #define SQL_IDENTIFIER_QUOTE_CHAR           29
  462. #define SQL_MAX_COLUMN_NAME_LEN             30
  463. #define SQL_MAX_CURSOR_NAME_LEN             31
  464. #define SQL_MAX_OWNER_NAME_LEN              32
  465. #define SQL_MAX_PROCEDURE_NAME_LEN          33
  466. #define SQL_MAX_QUALIFIER_NAME_LEN          34
  467. #define SQL_MAX_TABLE_NAME_LEN              35
  468. #define SQL_MULT_RESULT_SETS                36
  469. #define SQL_MULTIPLE_ACTIVE_TXN             37
  470. #define SQL_OUTER_JOINS                     38
  471. #define SQL_OWNER_TERM                      39
  472. #define SQL_PROCEDURE_TERM                  40
  473. #define SQL_QUALIFIER_NAME_SEPARATOR        41
  474. #define SQL_QUALIFIER_TERM                  42
  475. #define SQL_SCROLL_CONCURRENCY              43
  476. #define SQL_SCROLL_OPTIONS                  44
  477. #define SQL_TABLE_TERM                      45
  478. #define SQL_TXN_CAPABLE                     46
  479. #define SQL_USER_NAME                       47
  480.  
  481. #define SQL_CONVERT_FUNCTIONS               48
  482. #define SQL_NUMERIC_FUNCTIONS               49
  483. #define SQL_STRING_FUNCTIONS                50
  484. #define SQL_SYSTEM_FUNCTIONS                51
  485. #define SQL_TIMEDATE_FUNCTIONS              52
  486.  
  487. #define SQL_CONVERT_BIGINT                  53
  488. #define SQL_CONVERT_BINARY                  54
  489. #define SQL_CONVERT_BIT                     55
  490. #define SQL_CONVERT_CHAR                    56
  491. #define SQL_CONVERT_DATE                    57
  492. #define SQL_CONVERT_DECIMAL                 58
  493. #define SQL_CONVERT_DOUBLE                  59
  494. #define SQL_CONVERT_FLOAT                   60
  495. #define SQL_CONVERT_INTEGER                 61
  496. #define SQL_CONVERT_LONGVARCHAR             62
  497. #define SQL_CONVERT_NUMERIC                 63
  498. #define SQL_CONVERT_REAL                    64
  499. #define SQL_CONVERT_SMALLINT                65
  500. #define SQL_CONVERT_TIME                    66
  501. #define SQL_CONVERT_TIMESTAMP               67
  502. #define SQL_CONVERT_TINYINT                 68
  503. #define SQL_CONVERT_VARBINARY               69
  504. #define SQL_CONVERT_VARCHAR                 70
  505. #define SQL_CONVERT_LONGVARBINARY           71
  506.  
  507. #define SQL_TXN_ISOLATION_OPTION            72
  508. #define SQL_ODBC_SQL_OPT_IEF                73
  509.  
  510. /*** ODBC SDK 1.0 Additions ***/
  511. #define SQL_CORRELATION_NAME                74
  512. #define SQL_NON_NULLABLE_COLUMNS            75
  513.  
  514. /*** ODBC SDK 2.0 Additions ***/
  515. #if (ODBCVER >= 0x0200)
  516. #define SQL_DRIVER_HLIB                     76
  517. #define SQL_DRIVER_ODBC_VER                 77
  518. #define SQL_LOCK_TYPES                      78
  519. #define SQL_POS_OPERATIONS                  79
  520. #define SQL_POSITIONED_STATEMENTS           80
  521. #define SQL_GETDATA_EXTENSIONS              81
  522. #define SQL_BOOKMARK_PERSISTENCE            82
  523. #define SQL_STATIC_SENSITIVITY              83
  524. #define SQL_FILE_USAGE                      84
  525. #define SQL_NULL_COLLATION                  85
  526. #define SQL_ALTER_TABLE                     86
  527. #define SQL_COLUMN_ALIAS                    87
  528. #define SQL_GROUP_BY                        88
  529. #define SQL_KEYWORDS                        89
  530. #define SQL_ORDER_BY_COLUMNS_IN_SELECT      90
  531. #define SQL_OWNER_USAGE                     91
  532. #define SQL_QUALIFIER_USAGE                 92
  533. #define SQL_QUOTED_IDENTIFIER_CASE          93
  534. #define SQL_SPECIAL_CHARACTERS              94
  535. #define SQL_SUBQUERIES                      95
  536. #define SQL_UNION                           96
  537. #define SQL_MAX_COLUMNS_IN_GROUP_BY         97
  538. #define SQL_MAX_COLUMNS_IN_INDEX            98
  539. #define SQL_MAX_COLUMNS_IN_ORDER_BY         99
  540. #define SQL_MAX_COLUMNS_IN_SELECT           100
  541. #define SQL_MAX_COLUMNS_IN_TABLE            101
  542. #define SQL_MAX_INDEX_SIZE                  102
  543. #define SQL_MAX_ROW_SIZE_INCLUDES_LONG      103
  544. #define SQL_MAX_ROW_SIZE                    104
  545. #define SQL_MAX_STATEMENT_LEN               105
  546. #define SQL_MAX_TABLES_IN_SELECT            106
  547. #define SQL_MAX_USER_NAME_LEN               107
  548. #define SQL_MAX_CHAR_LITERAL_LEN            108
  549. #define SQL_TIMEDATE_ADD_INTERVALS          109
  550. #define SQL_TIMEDATE_DIFF_INTERVALS         110
  551. #define SQL_NEED_LONG_DATA_LEN              111
  552. #define SQL_MAX_BINARY_LITERAL_LEN          112
  553. #define SQL_LIKE_ESCAPE_CLAUSE              113
  554. #define SQL_QUALIFIER_LOCATION              114
  555.  
  556. #if (ODBCVER >= 0x0201)
  557. /*** ODBC SDK 2.01 Additions ***/
  558. #define SQL_OJ_CAPABILITIES         65003  /* Temp value until ODBC 3.0 */
  559. #endif  /* ODBCVER >= 0x0201 */
  560.  
  561. #define SQL_INFO_LAST                       SQL_QUALIFIER_LOCATION
  562. #else
  563. #define SQL_INFO_LAST                       SQL_NON_NULLABLE_COLUMNS
  564. #endif  /* ODBCVER >= 0x0200 */
  565.  
  566. #define SQL_INFO_DRIVER_START               1000
  567.  
  568. /* SQL_CONVERT_*  return value bitmasks */
  569.  
  570. #define SQL_CVT_CHAR                        0x00000001L
  571. #define SQL_CVT_NUMERIC                     0x00000002L
  572. #define SQL_CVT_DECIMAL                     0x00000004L
  573. #define SQL_CVT_INTEGER                     0x00000008L
  574. #define SQL_CVT_SMALLINT                    0x00000010L
  575. #define SQL_CVT_FLOAT                       0x00000020L
  576. #define SQL_CVT_REAL                        0x00000040L
  577. #define SQL_CVT_DOUBLE                      0x00000080L
  578. #define SQL_CVT_VARCHAR                     0x00000100L
  579. #define SQL_CVT_LONGVARCHAR                 0x00000200L
  580. #define SQL_CVT_BINARY                      0x00000400L
  581. #define SQL_CVT_VARBINARY                   0x00000800L
  582. #define SQL_CVT_BIT                         0x00001000L
  583. #define SQL_CVT_TINYINT                     0x00002000L
  584. #define SQL_CVT_BIGINT                      0x00004000L
  585. #define SQL_CVT_DATE                        0x00008000L
  586. #define SQL_CVT_TIME                        0x00010000L
  587. #define SQL_CVT_TIMESTAMP                   0x00020000L
  588. #define SQL_CVT_LONGVARBINARY               0x00040000L
  589.  
  590. /* SQL_CONVERT_FUNCTIONS functions */
  591. #define SQL_FN_CVT_CONVERT                  0x00000001L
  592.  
  593. /* SQL_STRING_FUNCTIONS functions */
  594.  
  595. #define SQL_FN_STR_CONCAT                   0x00000001L
  596. #define SQL_FN_STR_INSERT                   0x00000002L
  597. #define SQL_FN_STR_LEFT                     0x00000004L
  598. #define SQL_FN_STR_LTRIM                    0x00000008L
  599. #define SQL_FN_STR_LENGTH                   0x00000010L
  600. #define SQL_FN_STR_LOCATE                   0x00000020L
  601. #define SQL_FN_STR_LCASE                    0x00000040L
  602. #define SQL_FN_STR_REPEAT                   0x00000080L
  603. #define SQL_FN_STR_REPLACE                  0x00000100L
  604. #define SQL_FN_STR_RIGHT                    0x00000200L
  605. #define SQL_FN_STR_RTRIM                    0x00000400L
  606. #define SQL_FN_STR_SUBSTRING                0x00000800L
  607. #define SQL_FN_STR_UCASE                    0x00001000L
  608. #define SQL_FN_STR_ASCII                    0x00002000L
  609. #define SQL_FN_STR_CHAR                     0x00004000L
  610. #if (ODBCVER >= 0x0200)
  611. #define SQL_FN_STR_DIFFERENCE               0x00008000L
  612. #define SQL_FN_STR_LOCATE_2                 0x00010000L
  613. #define SQL_FN_STR_SOUNDEX                  0x00020000L
  614. #define SQL_FN_STR_SPACE                    0x00040000L
  615. #endif  /* ODBCVER >= 0x0200 */
  616.  
  617. /* SQL_NUMERIC_FUNCTIONS functions */
  618.  
  619. #define SQL_FN_NUM_ABS                      0x00000001L
  620. #define SQL_FN_NUM_ACOS                     0x00000002L
  621. #define SQL_FN_NUM_ASIN                     0x00000004L
  622. #define SQL_FN_NUM_ATAN                     0x00000008L
  623. #define SQL_FN_NUM_ATAN2                    0x00000010L
  624. #define SQL_FN_NUM_CEILING                  0x00000020L
  625. #define SQL_FN_NUM_COS                      0x00000040L
  626. #define SQL_FN_NUM_COT                      0x00000080L
  627. #define SQL_FN_NUM_EXP                      0x00000100L
  628. #define SQL_FN_NUM_FLOOR                    0x00000200L
  629. #define SQL_FN_NUM_LOG                      0x00000400L
  630. #define SQL_FN_NUM_MOD                      0x00000800L
  631. #define SQL_FN_NUM_SIGN                     0x00001000L
  632. #define SQL_FN_NUM_SIN                      0x00002000L
  633. #define SQL_FN_NUM_SQRT                     0x00004000L
  634. #define SQL_FN_NUM_TAN                      0x00008000L
  635. #define SQL_FN_NUM_PI                       0x00010000L
  636. #define SQL_FN_NUM_RAND                     0x00020000L
  637. #if (ODBCVER >= 0x0200)
  638. #define SQL_FN_NUM_DEGREES                  0x00040000L
  639. #define SQL_FN_NUM_LOG10                    0x00080000L
  640. #define SQL_FN_NUM_POWER                    0x00100000L
  641. #define SQL_FN_NUM_RADIANS                  0x00200000L
  642. #define SQL_FN_NUM_ROUND                    0x00400000L
  643. #define SQL_FN_NUM_TRUNCATE                 0x00800000L
  644. #endif  /* ODBCVER >= 0x0200 */
  645.  
  646. /* SQL_TIMEDATE_FUNCTIONS functions */
  647.  
  648. #define SQL_FN_TD_NOW                       0x00000001L
  649. #define SQL_FN_TD_CURDATE                   0x00000002L
  650. #define SQL_FN_TD_DAYOFMONTH                0x00000004L
  651. #define SQL_FN_TD_DAYOFWEEK                 0x00000008L
  652. #define SQL_FN_TD_DAYOFYEAR                 0x00000010L
  653. #define SQL_FN_TD_MONTH                     0x00000020L
  654. #define SQL_FN_TD_QUARTER                   0x00000040L
  655. #define SQL_FN_TD_WEEK                      0x00000080L
  656. #define SQL_FN_TD_YEAR                      0x00000100L
  657. #define SQL_FN_TD_CURTIME                   0x00000200L
  658. #define SQL_FN_TD_HOUR                      0x00000400L
  659. #define SQL_FN_TD_MINUTE                    0x00000800L
  660. #define SQL_FN_TD_SECOND                    0x00001000L
  661. #if (ODBCVER >= 0x0200)
  662. #define SQL_FN_TD_TIMESTAMPADD              0x00002000L
  663. #define SQL_FN_TD_TIMESTAMPDIFF             0x00004000L
  664. #define SQL_FN_TD_DAYNAME                   0x00008000L
  665. #define SQL_FN_TD_MONTHNAME                 0x00010000L
  666. #endif  /* ODBCVER >= 0x0200 */
  667.  
  668. /* SQL_SYSTEM_FUNCTIONS functions */
  669.  
  670. #define SQL_FN_SYS_USERNAME                 0x00000001L
  671. #define SQL_FN_SYS_DBNAME                   0x00000002L
  672. #define SQL_FN_SYS_IFNULL                   0x00000004L
  673.  
  674. /* SQL_TIMEDATE_ADD_INTERVALS and SQL_TIMEDATE_DIFF_INTERVALS functions */
  675.  
  676. #if (ODBCVER >= 0x0200)
  677. #define SQL_FN_TSI_FRAC_SECOND              0x00000001L
  678. #define SQL_FN_TSI_SECOND                   0x00000002L
  679. #define SQL_FN_TSI_MINUTE                   0x00000004L
  680. #define SQL_FN_TSI_HOUR                     0x00000008L
  681. #define SQL_FN_TSI_DAY                      0x00000010L
  682. #define SQL_FN_TSI_WEEK                     0x00000020L
  683. #define SQL_FN_TSI_MONTH                    0x00000040L
  684. #define SQL_FN_TSI_QUARTER                  0x00000080L
  685. #define SQL_FN_TSI_YEAR                     0x00000100L
  686. #endif  /* ODBCVER >= 0x0200 */
  687.  
  688. /* SQL_ODBC_API_CONFORMANCE values */
  689.  
  690. #define SQL_OAC_NONE                        0x0000
  691. #define SQL_OAC_LEVEL1                      0x0001
  692. #define SQL_OAC_LEVEL2                      0x0002
  693.  
  694. /* SQL_ODBC_SAG_CLI_CONFORMANCE values */
  695.  
  696. #define SQL_OSCC_NOT_COMPLIANT              0x0000
  697. #define SQL_OSCC_COMPLIANT                  0x0001
  698.  
  699. /* SQL_ODBC_SQL_CONFORMANCE values */
  700.  
  701. #define SQL_OSC_MINIMUM                     0x0000
  702. #define SQL_OSC_CORE                        0x0001
  703. #define SQL_OSC_EXTENDED                    0x0002
  704.  
  705. /* SQL_CONCAT_NULL_BEHAVIOR values */
  706.  
  707. #define SQL_CB_NULL                         0x0000
  708. #define SQL_CB_NON_NULL                     0x0001
  709.  
  710. /* SQL_CURSOR_COMMIT_BEHAVIOR and SQL_CURSOR_ROLLBACK_BEHAVIOR values */
  711.  
  712. #define SQL_CB_DELETE                       0x0000
  713. #define SQL_CB_CLOSE                        0x0001
  714. #define SQL_CB_PRESERVE                     0x0002
  715.  
  716. /* SQL_IDENTIFIER_CASE values */
  717.  
  718. #define SQL_IC_UPPER                        0x0001
  719. #define SQL_IC_LOWER                        0x0002
  720. #define SQL_IC_SENSITIVE                    0x0003
  721. #define SQL_IC_MIXED                        0x0004
  722.  
  723. /* SQL_TXN_CAPABLE values */
  724.  
  725. #define SQL_TC_NONE                         0x0000
  726. #define SQL_TC_DML                          0x0001
  727. #define SQL_TC_ALL                          0x0002
  728. #if (ODBCVER >= 0x0200)
  729. #define SQL_TC_DDL_COMMIT                   0x0003
  730. #define SQL_TC_DDL_IGNORE                   0x0004
  731. #endif  /* ODBCVER >= 0x0200 */
  732.  
  733. /* SQL_SCROLL_OPTIONS masks */
  734.  
  735. #define SQL_SO_FORWARD_ONLY                 0x00000001L
  736. #define SQL_SO_KEYSET_DRIVEN                0x00000002L
  737. #define SQL_SO_DYNAMIC                      0x00000004L
  738. #define SQL_SO_MIXED                        0x00000008L
  739. #if (ODBCVER >= 0x0200)
  740. #define SQL_SO_STATIC                       0x00000010L
  741. #endif  /* ODBCVER >= 0x0200 */
  742.  
  743. /* SQL_SCROLL_CONCURRENCY masks */
  744.  
  745. #define SQL_SCCO_READ_ONLY                  0x00000001L
  746. #define SQL_SCCO_LOCK                       0x00000002L
  747. #define SQL_SCCO_OPT_ROWVER                 0x00000004L
  748. #define SQL_SCCO_OPT_VALUES                 0x00000008L
  749.  
  750. /* SQL_FETCH_DIRECTION masks */
  751.  
  752. #define SQL_FD_FETCH_NEXT                   0x00000001L
  753. #define SQL_FD_FETCH_FIRST                  0x00000002L
  754. #define SQL_FD_FETCH_LAST                   0x00000004L
  755. #define SQL_FD_FETCH_PRIOR                  0x00000008L
  756. #define SQL_FD_FETCH_ABSOLUTE               0x00000010L
  757. #define SQL_FD_FETCH_RELATIVE               0x00000020L
  758. #define SQL_FD_FETCH_RESUME                 0x00000040L
  759. #if (ODBCVER >= 0x0200)
  760. #define SQL_FD_FETCH_BOOKMARK               0x00000080L
  761. #endif  /* ODBCVER >= 0x0200 */
  762.  
  763. /* SQL_TXN_ISOLATION_OPTION masks */
  764.  
  765. #define SQL_TXN_READ_UNCOMMITTED            0x00000001L
  766. #define SQL_TXN_READ_COMMITTED              0x00000002L
  767. #define SQL_TXN_REPEATABLE_READ             0x00000004L
  768. #define SQL_TXN_SERIALIZABLE                0x00000008L
  769. #define SQL_TXN_VERSIONING                  0x00000010L
  770.  
  771. /* SQL_CORRELATION_NAME values */
  772.  
  773. #define SQL_CN_NONE                         0x0000
  774. #define SQL_CN_DIFFERENT                    0x0001
  775. #define SQL_CN_ANY                          0x0002
  776.  
  777. /* SQL_NON_NULLABLE_COLUMNS values */
  778.  
  779. #define SQL_NNC_NULL                        0x0000
  780. #define SQL_NNC_NON_NULL                    0x0001
  781.  
  782. #if (ODBCVER >= 0x0200)
  783. /* SQL_NULL_COLLATION values */
  784.  
  785. #define SQL_NC_HIGH                         0x0000
  786. #define SQL_NC_LOW                          0x0001
  787. #define SQL_NC_START                        0x0002
  788. #define SQL_NC_END                          0x0004
  789.  
  790. /* SQL_FILE_USAGE values */
  791.  
  792. #define SQL_FILE_NOT_SUPPORTED              0x0000
  793. #define SQL_FILE_TABLE                      0x0001
  794. #define SQL_FILE_QUALIFIER                  0x0002
  795.  
  796. /* SQL_GETDATA_EXTENSIONS values */
  797.  
  798. #define SQL_GD_ANY_COLUMN                   0x00000001L
  799. #define SQL_GD_ANY_ORDER                    0x00000002L
  800. #define SQL_GD_BLOCK                        0x00000004L
  801. #define SQL_GD_BOUND                        0x00000008L
  802.  
  803. /* SQL_ALTER_TABLE values */
  804.  
  805. #define SQL_AT_ADD_COLUMN                   0x00000001L
  806. #define SQL_AT_DROP_COLUMN                  0x00000002L
  807.  
  808. /* SQL_POSITIONED_STATEMENTS masks */
  809.  
  810. #define SQL_PS_POSITIONED_DELETE            0x00000001L
  811. #define SQL_PS_POSITIONED_UPDATE            0x00000002L
  812. #define SQL_PS_SELECT_FOR_UPDATE            0x00000004L
  813.  
  814. /* SQL_GROUP_BY values */
  815.  
  816. #define SQL_GB_NOT_SUPPORTED                0x0000
  817. #define SQL_GB_GROUP_BY_EQUALS_SELECT       0x0001
  818. #define SQL_GB_GROUP_BY_CONTAINS_SELECT     0x0002
  819. #define SQL_GB_NO_RELATION                  0x0003
  820.  
  821. /* SQL_OWNER_USAGE masks */
  822.  
  823. #define SQL_OU_DML_STATEMENTS               0x00000001L
  824. #define SQL_OU_PROCEDURE_INVOCATION         0x00000002L
  825. #define SQL_OU_TABLE_DEFINITION             0x00000004L
  826. #define SQL_OU_INDEX_DEFINITION             0x00000008L
  827. #define SQL_OU_PRIVILEGE_DEFINITION         0x00000010L
  828.  
  829. /* SQL_QUALIFIER_USAGE masks */
  830.  
  831. #define SQL_QU_DML_STATEMENTS               0x00000001L
  832. #define SQL_QU_PROCEDURE_INVOCATION         0x00000002L
  833. #define SQL_QU_TABLE_DEFINITION             0x00000004L
  834. #define SQL_QU_INDEX_DEFINITION             0x00000008L
  835. #define SQL_QU_PRIVILEGE_DEFINITION         0x00000010L
  836.  
  837. /* SQL_SUBQUERIES masks */
  838.  
  839. #define SQL_SQ_COMPARISON                   0x00000001L
  840. #define SQL_SQ_EXISTS                       0x00000002L
  841. #define SQL_SQ_IN                           0x00000004L
  842. #define SQL_SQ_QUANTIFIED                   0x00000008L
  843. #define SQL_SQ_CORRELATED_SUBQUERIES        0x00000010L
  844.  
  845. /* SQL_UNION masks */
  846.  
  847. #define SQL_U_UNION                         0x00000001L
  848. #define SQL_U_UNION_ALL                     0x00000002L
  849.  
  850. /* SQL_BOOKMARK_PERSISTENCE values */
  851.  
  852. #define SQL_BP_CLOSE                        0x00000001L
  853. #define SQL_BP_DELETE                       0x00000002L
  854. #define SQL_BP_DROP                         0x00000004L
  855. #define SQL_BP_TRANSACTION                  0x00000008L
  856. #define SQL_BP_UPDATE                       0x00000010L
  857. #define SQL_BP_OTHER_HSTMT                  0x00000020L
  858. #define SQL_BP_SCROLL                       0x00000040L
  859.  
  860. /* SQL_STATIC_SENSITIVITY values */
  861.  
  862. #define SQL_SS_ADDITIONS                    0x00000001L
  863. #define SQL_SS_DELETIONS                    0x00000002L
  864. #define SQL_SS_UPDATES                      0x00000004L
  865.  
  866. /* SQL_LOCK_TYPESL masks */
  867.  
  868. #define SQL_LCK_NO_CHANGE                   0x00000001L
  869. #define SQL_LCK_EXCLUSIVE                   0x00000002L
  870. #define SQL_LCK_UNLOCK                      0x00000004L
  871.  
  872. /* SQL_POS_OPERATIONS masks */
  873.  
  874. #define SQL_POS_POSITION                    0x00000001L
  875. #define SQL_POS_REFRESH                     0x00000002L
  876. #define SQL_POS_UPDATE                      0x00000004L
  877. #define SQL_POS_DELETE                      0x00000008L
  878. #define SQL_POS_ADD                         0x00000010L
  879.  
  880. /* SQL_QUALIFIER_LOCATION values */
  881.  
  882. #define SQL_QL_START                        0x0001L
  883. #define SQL_QL_END                          0x0002L
  884.  
  885. /* SQL_OJ_CAPABILITIES values */
  886.  
  887. #if (ODBCVER >= 0x0201)
  888. #define SQL_OJ_LEFT                         0x00000001L
  889. #define SQL_OJ_RIGHT                        0x00000002L
  890. #define SQL_OJ_FULL                         0x00000004L
  891. #define SQL_OJ_NESTED                       0x00000008L
  892. #define SQL_OJ_NOT_ORDERED                  0x00000010L
  893. #define SQL_OJ_INNER                        0x00000020L
  894. #define SQL_OJ_ALL_COMPARISON_OPS           0x00000040L
  895. #endif  /* ODBCVER >= 0x0201 */
  896. #endif  /* ODBCVER >= 0x0200 */
  897.  
  898. /* options for SQLGetStmtOption/SQLSetStmtOption */
  899. #define SQL_QUERY_TIMEOUT               0
  900. #define SQL_MAX_ROWS                    1
  901. #define SQL_NOSCAN                      2
  902. #define SQL_MAX_LENGTH                  3
  903. #define SQL_ASYNC_ENABLE                4
  904. #define SQL_BIND_TYPE                   5
  905. #if (ODBCVER >= 0x0200)
  906. #define SQL_CURSOR_TYPE                 6
  907. #define SQL_CONCURRENCY                 7
  908. #define SQL_KEYSET_SIZE                 8
  909. #define SQL_ROWSET_SIZE                 9
  910. #define SQL_SIMULATE_CURSOR             10
  911. #define SQL_RETRIEVE_DATA               11
  912. #define SQL_USE_BOOKMARKS               12
  913. #define SQL_GET_BOOKMARK                13      /*      GetStmtOption Only */
  914. #define SQL_ROW_NUMBER                  14      /*      GetStmtOption Only */
  915. #define SQL_STMT_OPT_MAX                SQL_ROW_NUMBER
  916. #else
  917. #define SQL_STMT_OPT_MAX                SQL_BIND_TYPE
  918. #endif  /* ODBCVER >= 0x0200 */
  919.  
  920. #define SQL_STMT_OPT_MIN                SQL_QUERY_TIMEOUT
  921.  
  922.  
  923. /* SQL_QUERY_TIMEOUT options */
  924. #define SQL_QUERY_TIMEOUT_DEFAULT       0UL
  925.  
  926. /* SQL_MAX_ROWS options */
  927. #define SQL_MAX_ROWS_DEFAULT            0UL
  928.  
  929. /* SQL_NOSCAN options */
  930. #define SQL_NOSCAN_OFF                  0UL     /*      1.0 FALSE */
  931. #define SQL_NOSCAN_ON                   1UL     /*      1.0 TRUE */
  932. #define SQL_NOSCAN_DEFAULT              SQL_NOSCAN_OFF
  933.  
  934. /* SQL_MAX_LENGTH options */
  935. #define SQL_MAX_LENGTH_DEFAULT          0UL
  936.  
  937. /* SQL_ASYNC_ENABLE options */
  938. #define SQL_ASYNC_ENABLE_OFF            0UL
  939. #define SQL_ASYNC_ENABLE_ON             1UL
  940. #define SQL_ASYNC_ENABLE_DEFAULT        SQL_ASYNC_ENABLE_OFF
  941.  
  942. /* SQL_BIND_TYPE options */
  943. #define SQL_BIND_BY_COLUMN              0UL
  944. #define SQL_BIND_TYPE_DEFAULT           SQL_BIND_BY_COLUMN  /* Default value */
  945.  
  946. /* SQL_CONCURRENCY options */
  947. #define SQL_CONCUR_READ_ONLY            1
  948. #define SQL_CONCUR_LOCK                 2
  949. #define SQL_CONCUR_ROWVER               3
  950. #define SQL_CONCUR_VALUES               4
  951. #define SQL_CONCUR_DEFAULT              SQL_CONCUR_READ_ONLY /* Default value
  952. */
  953.  
  954. #if (ODBCVER >= 0x0200)
  955. /* SQL_CURSOR_TYPE options */
  956. #define SQL_CURSOR_FORWARD_ONLY         0UL
  957. #define SQL_CURSOR_KEYSET_DRIVEN        1UL
  958. #define SQL_CURSOR_DYNAMIC              2UL
  959. #define SQL_CURSOR_STATIC               3UL
  960. #define SQL_CURSOR_TYPE_DEFAULT         SQL_CURSOR_FORWARD_ONLY /* Default value */
  961.  
  962. /* SQL_ROWSET_SIZE options */
  963. #define SQL_ROWSET_SIZE_DEFAULT         1UL
  964.  
  965. /* SQL_KEYSET_SIZE options */
  966. #define SQL_KEYSET_SIZE_DEFAULT         0UL
  967.  
  968. /* SQL_SIMULATE_CURSOR options */
  969. #define SQL_SC_NON_UNIQUE               0UL
  970. #define SQL_SC_TRY_UNIQUE               1UL
  971. #define SQL_SC_UNIQUE                   2UL
  972.  
  973. /* SQL_RETRIEVE_DATA options */
  974. #define SQL_RD_OFF                      0UL
  975. #define SQL_RD_ON                       1UL
  976. #define SQL_RD_DEFAULT                  SQL_RD_ON
  977.  
  978. /* SQL_USE_BOOKMARKS options */
  979. #define SQL_UB_OFF                      0UL
  980. #define SQL_UB_ON                       1UL
  981. #define SQL_UB_DEFAULT                  SQL_UB_OFF
  982.  
  983. #endif  /* ODBCVER >= 0x0200 */
  984.  
  985. /* options for SQLSetConnectOption/SQLGetConnectOption */
  986. #define SQL_ACCESS_MODE                 101
  987. #define SQL_AUTOCOMMIT                  102
  988. #define SQL_LOGIN_TIMEOUT               103
  989. #define SQL_OPT_TRACE                   104
  990. #define SQL_OPT_TRACEFILE               105
  991. #define SQL_TRANSLATE_DLL               106
  992. #define SQL_TRANSLATE_OPTION            107
  993. #define SQL_TXN_ISOLATION               108
  994. #define SQL_CURRENT_QUALIFIER           109
  995. #if (ODBCVER >= 0x0200)
  996. #define SQL_ODBC_CURSORS                110
  997. #define SQL_QUIET_MODE                  111
  998. #define SQL_PACKET_SIZE                 112
  999. #define SQL_CONN_OPT_MAX                SQL_PACKET_SIZE
  1000. #else
  1001. #define SQL_CONN_OPT_MAX                SQL_CURRENT_QUALIFIER
  1002. #endif  /* ODBCVER >= 0x0200 */
  1003. #define SQL_CONNECT_OPT_DRVR_START      1000
  1004.  
  1005. #define SQL_CONN_OPT_MIN                SQL_ACCESS_MODE
  1006.  
  1007. /* SQL_ACCESS_MODE options */
  1008. #define SQL_MODE_READ_WRITE             0UL
  1009. #define SQL_MODE_READ_ONLY              1UL
  1010. #define SQL_MODE_DEFAULT                SQL_MODE_READ_WRITE
  1011.  
  1012. /* SQL_AUTOCOMMIT options */
  1013. #define SQL_AUTOCOMMIT_OFF              0UL
  1014. #define SQL_AUTOCOMMIT_ON               1UL
  1015. #define SQL_AUTOCOMMIT_DEFAULT          SQL_AUTOCOMMIT_ON
  1016.  
  1017. /* SQL_LOGIN_TIMEOUT options */
  1018. #define SQL_LOGIN_TIMEOUT_DEFAULT       15UL
  1019.  
  1020. /* SQL_OPT_TRACE options */
  1021. #define SQL_OPT_TRACE_OFF               0UL
  1022. #define SQL_OPT_TRACE_ON                1UL
  1023. #define SQL_OPT_TRACE_DEFAULT           SQL_OPT_TRACE_OFF
  1024. #define SQL_OPT_TRACE_FILE_DEFAULT      "\\SQL.LOG"
  1025.  
  1026. #if (ODBCVER >= 0x0200)
  1027. /* SQL_ODBC_CURSORS options */
  1028. #define SQL_CUR_USE_IF_NEEDED           0UL
  1029. #define SQL_CUR_USE_ODBC                1UL
  1030. #define SQL_CUR_USE_DRIVER              2UL
  1031. #define SQL_CUR_DEFAULT                 SQL_CUR_USE_DRIVER
  1032. #endif  /* ODBCVER >= 0x0200 */
  1033.  
  1034. /* Column types and scopes in SQLSpecialColumns.  */
  1035. #define SQL_BEST_ROWID                  1
  1036. #define SQL_ROWVER                      2
  1037.  
  1038. #define SQL_SCOPE_CURROW                0
  1039. #define SQL_SCOPE_TRANSACTION           1
  1040. #define SQL_SCOPE_SESSION               2
  1041.  
  1042. /* Defines for SQLStatistics */
  1043. #define SQL_INDEX_UNIQUE                0
  1044. #define SQL_INDEX_ALL                   1
  1045.  
  1046. #define SQL_QUICK                       0
  1047. #define SQL_ENSURE                      1
  1048.  
  1049. /* Defines for SQLStatistics (returned in the result set) */
  1050. #define SQL_TABLE_STAT                  0
  1051. #define SQL_INDEX_CLUSTERED             1
  1052. #define SQL_INDEX_HASHED                2
  1053. #define SQL_INDEX_OTHER                 3
  1054.  
  1055. #if (ODBCVER >= 0x0200)
  1056. /* Defines for SQLSpecialColumns (returned in the result set) */
  1057. #define SQL_PC_UNKNOWN                  0
  1058. #define SQL_PC_NOT_PSEUDO               1
  1059. #define SQL_PC_PSEUDO                   2
  1060. #endif  /* ODBCVER >= 0x0200 */
  1061.  
  1062. /* SQLDataSources "fDirection" values, also used on SQLExtendedFetch() */
  1063. #define SQL_FETCH_NEXT                    1
  1064. #define SQL_FETCH_FIRST                    2
  1065.  
  1066. #ifndef RC_INVOKED
  1067.  
  1068. #if (ODBCVER >= 0x0200)
  1069. /*      This define is too large for RC */
  1070. #define SQL_ODBC_KEYWORDS \
  1071. "ABSOLUTE,ACTION,ADA,ADD,ALL,ALLOCATE,ALTER,AND,ANY,ARE,AS,"\
  1072. "ASC,ASSERTION,AT,AUTHORIZATION,AVG,"\
  1073. "BEGIN,BETWEEN,BIT,BIT_LENGTH,BOTH,BY,CASCADE,CASCADED,CASE,CAST,CATALOG,"\
  1074. "CHAR,CHAR_LENGTH,CHARACTER,CHARACTER_LENGTH,CHECK,CLOSE,COALESCE,"\
  1075. "COBOL,COLLATE,COLLATION,COLUMN,COMMIT,CONNECT,CONNECTION,CONSTRAINT,"\
  1076. "CONSTRAINTS,CONTINUE,CONVERT,CORRESPONDING,COUNT,CREATE,CROSS,CURRENT,"\
  1077. "CURRENT_DATE,CURRENT_TIME,CURRENT_TIMESTAMP,CURRENT_USER,CURSOR,"\
  1078. "DATE,DAY,DEALLOCATE,DEC,DECIMAL,DECLARE,DEFAULT,DEFERRABLE,"\
  1079. "DEFERRED,DELETE,DESC,DESCRIBE,DESCRIPTOR,DIAGNOSTICS,DISCONNECT,"\
  1080. "DISTINCT,DOMAIN,DOUBLE,DROP,"\
  1081. "ELSE,END,END-EXEC,ESCAPE,EXCEPT,EXCEPTION,EXEC,EXECUTE,"\
  1082. "EXISTS,EXTERNAL,EXTRACT,"\
  1083. "FALSE,FETCH,FIRST,FLOAT,FOR,FOREIGN,FORTRAN,FOUND,FROM,FULL,"\
  1084. "GET,GLOBAL,GO,GOTO,GRANT,GROUP,HAVING,HOUR,"\
  1085. "IDENTITY,IMMEDIATE,IN,INCLUDE,INDEX,INDICATOR,INITIALLY,INNER,"\
  1086. "INPUT,INSENSITIVE,INSERT,INTEGER,INTERSECT,INTERVAL,INTO,IS,ISOLATION,"\
  1087. "JOIN,KEY,LANGUAGE,LAST,LEADING,LEFT,LEVEL,LIKE,LOCAL,LOWER,"\
  1088. "MATCH,MAX,MIN,MINUTE,MODULE,MONTH,MUMPS,"\
  1089. "NAMES,NATIONAL,NATURAL,NCHAR,NEXT,NO,NONE,NOT,NULL,NULLIF,NUMERIC,"\
  1090. "OCTET_LENGTH,OF,ON,ONLY,OPEN,OPTION,OR,ORDER,OUTER,OUTPUT,OVERLAPS,"\
  1091. "PAD,PARTIAL,PASCAL,PLI,POSITION,PRECISION,PREPARE,PRESERVE,"\
  1092. "PRIMARY,PRIOR,PRIVILEGES,PROCEDURE,PUBLIC,"\
  1093. "REFERENCES,RELATIVE,RESTRICT,REVOKE,RIGHT,ROLLBACK,ROWS,"\
  1094. "SCHEMA,SCROLL,SECOND,SECTION,SELECT,SEQUENCE,SESSION,SESSION_USER,SET,SIZE,"\
  1095. "SMALLINT,SOME,SPACE,SQL,SQLCA,SQLCODE,SQLERROR,SQLSTATE,SQLWARNING,"\
  1096. "SUBSTRING,SUM,SYSTEM_USER,"\
  1097. "TABLE,TEMPORARY,THEN,TIME,TIMESTAMP,TIMEZONE_HOUR,TIMEZONE_MINUTE,"\
  1098. "TO,TRAILING,TRANSACTION,TRANSLATE,TRANSLATION,TRIM,TRUE,"\
  1099. "UNION,UNIQUE,UNKNOWN,UPDATE,UPPER,USAGE,USER,USING,"\
  1100. "VALUE,VALUES,VARCHAR,VARYING,VIEW,WHEN,WHENEVER,WHERE,WITH,WORK,YEAR"
  1101. #endif  /* ODBCVER >= 0x0200 */
  1102.  
  1103. /* Level 1 Prototypes */
  1104. SQLRETURN SQL_API SQLColumns(
  1105.     SQLHSTMT           hstmt,
  1106.     SQLCHAR FAR       *szCatalogName,
  1107.     SQLSMALLINT        cbCatalogName,
  1108.     SQLCHAR FAR       *szSchemaName,
  1109.     SQLSMALLINT        cbSchemaName,
  1110.     SQLCHAR FAR       *szTableName,
  1111.     SQLSMALLINT        cbTableName,
  1112.     SQLCHAR FAR       *szColumnName,
  1113.     SQLSMALLINT        cbColumnName);
  1114.  
  1115. SQLRETURN SQL_API SQLGetConnectOption(
  1116.     SQLHDBC            hdbc,
  1117.     SQLUSMALLINT       fOption,
  1118.     SQLPOINTER         pvParam);
  1119.  
  1120. SQLRETURN SQL_API SQLGetData(
  1121.     SQLHSTMT           hstmt,
  1122.     SQLUSMALLINT       icol,
  1123.     SQLSMALLINT        fCType,
  1124.     SQLPOINTER         rgbValue,
  1125.     SQLINTEGER         cbValueMax,
  1126.     SQLINTEGER FAR    *pcbValue);
  1127.  
  1128. SQLRETURN SQL_API SQLGetFunctions(
  1129.     SQLHDBC            hdbc,
  1130.     SQLUSMALLINT       fFunction,
  1131.     SQLUSMALLINT FAR  *pfExists);
  1132.  
  1133. SQLRETURN SQL_API SQLGetInfo(
  1134.     SQLHDBC            hdbc,
  1135.     SQLUSMALLINT       fInfoType,
  1136.     SQLPOINTER         rgbInfoValue,
  1137.     SQLSMALLINT        cbInfoValueMax,
  1138.     SQLSMALLINT FAR   *pcbInfoValue);
  1139.  
  1140. SQLRETURN SQL_API SQLGetStmtOption(
  1141.     SQLHSTMT           hstmt,
  1142.     SQLUSMALLINT       fOption,
  1143.     SQLPOINTER         pvParam);
  1144.  
  1145. SQLRETURN SQL_API SQLGetTypeInfo(
  1146.     SQLHSTMT           hstmt,
  1147.     SQLSMALLINT        fSqlType);
  1148.  
  1149. SQLRETURN SQL_API SQLParamData(
  1150.     SQLHSTMT           hstmt,
  1151.     SQLPOINTER FAR    *prgbValue);
  1152.  
  1153. SQLRETURN SQL_API SQLPutData(
  1154.     SQLHSTMT           hstmt,
  1155.     SQLPOINTER         rgbValue,
  1156.     SQLINTEGER         cbValue);
  1157.  
  1158. SQLRETURN SQL_API SQLSetConnectOption(
  1159.     SQLHDBC            hdbc,
  1160.     SQLUSMALLINT       fOption,
  1161.     SQLUINTEGER        vParam);
  1162.  
  1163. SQLRETURN SQL_API SQLSetStmtOption(
  1164.     SQLHSTMT           hstmt,
  1165.     SQLUSMALLINT       fOption,
  1166.     SQLUINTEGER        vParam);
  1167.  
  1168. SQLRETURN SQL_API SQLSpecialColumns(
  1169.     SQLHSTMT           hstmt,
  1170.     SQLUSMALLINT       fColType,
  1171.     SQLCHAR FAR       *szCatalogName,
  1172.     SQLSMALLINT        cbCatalogName,
  1173.     SQLCHAR FAR       *szSchemaName,
  1174.     SQLSMALLINT        cbSchemaName,
  1175.     SQLCHAR FAR       *szTableName,
  1176.     SQLSMALLINT        cbTableName,
  1177.     SQLUSMALLINT       fScope,
  1178.     SQLUSMALLINT       fNullable);
  1179.  
  1180. SQLRETURN SQL_API SQLStatistics(
  1181.     SQLHSTMT           hstmt,
  1182.     SQLCHAR FAR       *szCatalogName,
  1183.     SQLSMALLINT        cbCatalogName,
  1184.     SQLCHAR FAR       *szSchemaName,
  1185.     SQLSMALLINT        cbSchemaName,
  1186.     SQLCHAR FAR       *szTableName,
  1187.     SQLSMALLINT        cbTableName,
  1188.     SQLUSMALLINT       fUnique,
  1189.     SQLUSMALLINT       fAccuracy);
  1190.  
  1191. SQLRETURN SQL_API SQLTables(
  1192.     SQLHSTMT           hstmt,
  1193.     SQLCHAR FAR       *szCatalogName,
  1194.     SQLSMALLINT        cbCatalogName,
  1195.     SQLCHAR FAR       *szSchemaName,
  1196.     SQLSMALLINT        cbSchemaName,
  1197.     SQLCHAR FAR       *szTableName,
  1198.     SQLSMALLINT        cbTableName,
  1199.     SQLCHAR FAR       *szTableType,
  1200.     SQLSMALLINT        cbTableType);
  1201. #endif /* RC_INVOKED */
  1202.  
  1203.  
  1204. /* Level 2 Functions                             */
  1205.  
  1206.  
  1207.  
  1208. #ifndef RC_INVOKED
  1209.  
  1210. SQLRETURN SQL_API SQLDataSources(
  1211.     SQLHENV            henv,
  1212.     SQLUSMALLINT       fDirection,
  1213.     SQLCHAR FAR       *szDSN,
  1214.     SQLSMALLINT        cbDSNMax,
  1215.     SQLSMALLINT FAR   *pcbDSN,
  1216.     SQLCHAR FAR       *szDescription,
  1217.     SQLSMALLINT        cbDescriptionMax,
  1218.     SQLSMALLINT FAR   *pcbDescription);
  1219.  
  1220.  
  1221. #endif /* RC_INVOKED */
  1222.  
  1223. /*      Deprecated defines from prior versions of ODBC */
  1224. #define SQL_DATABASE_NAME               16    /* Use SQLGetConnectOption/SQL_CURRENT_QUALIFIER */
  1225. #define SQL_FD_FETCH_PREV               SQL_FD_FETCH_PRIOR
  1226. #define SQL_FETCH_PREV                  SQL_FETCH_PRIOR
  1227. #define SQL_CONCUR_TIMESTAMP            SQL_CONCUR_ROWVER
  1228. #define SQL_SCCO_OPT_TIMESTAMP          SQL_SCCO_OPT_ROWVER
  1229. #define SQL_CC_DELETE                   SQL_CB_DELETE
  1230. #define SQL_CR_DELETE                   SQL_CB_DELETE
  1231. #define SQL_CC_CLOSE                    SQL_CB_CLOSE
  1232. #define SQL_CR_CLOSE                    SQL_CB_CLOSE
  1233. #define SQL_CC_PRESERVE                 SQL_CB_PRESERVE
  1234. #define SQL_CR_PRESERVE                 SQL_CB_PRESERVE
  1235. #define SQL_FETCH_RESUME                7     /* Not supported by 2.0 drivers */
  1236. #define SQL_SCROLL_FORWARD_ONLY         0L    /*-SQL_CURSOR_FORWARD_ONLY */
  1237. #define SQL_SCROLL_KEYSET_DRIVEN        (-1L) /*-SQL_CURSOR_KEYSET_DRIVEN */
  1238. #define SQL_SCROLL_DYNAMIC              (-2L) /*-SQL_CURSOR_DYNAMIC */
  1239. #if (ODBCVER >= 0x0200)
  1240. #define SQL_SCROLL_STATIC               (-3L) /*-SQL_CURSOR_STATIC */
  1241. #define SQL_PC_NON_PSEUDO               SQL_PC_NOT_PSEUDO
  1242. #endif  /* ODBCVER >= 0x0200 */
  1243.  
  1244. /*      Deprecrated functions from prior versions of ODBC */
  1245. #ifndef RC_INVOKED
  1246.  
  1247. SQLRETURN SQL_API SQLSetScrollOptions(    /*      Use SQLSetStmtOptions */
  1248.     SQLHSTMT           hstmt,
  1249.     SQLUSMALLINT       fConcurrency,
  1250.     SQLINTEGER         crowKeyset,
  1251.     SQLUSMALLINT       crowRowset);
  1252.  
  1253. #endif /* RC_INVOKED */
  1254.  
  1255. #ifdef __cplusplus
  1256. }                                    /* End of extern "C" { */
  1257. #endif  /* __cplusplus */
  1258.  
  1259. #endif  /* #ifndef __SQL */
  1260.