home *** CD-ROM | disk | FTP | other *** search
/ Microsoft Internet Business Development Kit / PRODUCT_CD.iso / sqlsvr / odbcsdk / include / sql.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-12-07  |  8.4 KB  |  322 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 - 1994 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. *********************************************************************/
  13.  
  14. #ifndef __SQL
  15. #define __SQL
  16.  
  17. /*
  18. * ODBCVER            ODBC version number (0x0200).    To exclude
  19. *                    definitions introduced in version 2.0 (or above)
  20. *                    #define ODBCVER 0x0100 before #including <sql.h>
  21. */
  22.  
  23. /* If ODBCVER is not defined, assume version 2.10 */
  24. #ifndef ODBCVER
  25. #define ODBCVER    0x0210
  26. #endif
  27.  
  28. #ifdef __cplusplus
  29. extern "C" {                        /* Assume C declarations for C++   */
  30. #endif    /* __cplusplus */
  31.  
  32. /* generally useful constants */
  33. #if (ODBCVER >= 0x0200)
  34. #define SQL_SPEC_MAJOR              2        /* Major version of specification  */
  35. #define SQL_SPEC_MINOR              10    /* Minor version of specification  */
  36. #define SQL_SPEC_STRING     "02.10"        /* String constant for version       */
  37. #endif    /* ODBCVER >= 0x0200 */
  38. #define SQL_SQLSTATE_SIZE          5        /* size of SQLSTATE                */
  39. #define SQL_MAX_MESSAGE_LENGTH    512        /* message buffer size               */
  40. #define SQL_MAX_DSN_LENGTH         32        /* maximum data source name size   */
  41.  
  42. /* RETCODEs */
  43. #define SQL_INVALID_HANDLE        (-2)
  44. #define SQL_ERROR                (-1)
  45. #define SQL_SUCCESS             0
  46. #define SQL_SUCCESS_WITH_INFO    1
  47. #define SQL_NO_DATA_FOUND        100
  48.  
  49. /* Standard SQL datatypes, using ANSI type numbering */
  50. #define SQL_CHAR                1
  51. #define SQL_NUMERIC             2
  52. #define SQL_DECIMAL             3
  53. #define SQL_INTEGER             4
  54. #define SQL_SMALLINT            5
  55. #define SQL_FLOAT                6
  56. #define SQL_REAL                7
  57. #define SQL_DOUBLE                8
  58. #define SQL_VARCHAR             12
  59.  
  60. #define SQL_TYPE_MIN            SQL_CHAR
  61. #define SQL_TYPE_NULL            0
  62. #define SQL_TYPE_MAX            SQL_VARCHAR
  63.  
  64. /* C datatype to SQL datatype mapping    SQL types
  65.                                         ------------------- */
  66. #define SQL_C_CHAR      SQL_CHAR            /* CHAR, VARCHAR, DECIMAL, NUMERIC */
  67. #define SQL_C_LONG      SQL_INTEGER        /* INTEGER            */
  68. #define SQL_C_SHORT   SQL_SMALLINT        /* SMALLINT            */
  69. #define SQL_C_FLOAT   SQL_REAL            /* REAL                */
  70. #define SQL_C_DOUBLE  SQL_DOUBLE        /* FLOAT, DOUBLE    */
  71. #define SQL_C_DEFAULT 99
  72.  
  73. /* NULL status constants.  These are used in SQLColumns, SQLColAttributes,
  74. SQLDescribeCol, SQLDescribeParam, and SQLSpecialColumns to describe the
  75. nullablity of a column in a table. */
  76. #define SQL_NO_NULLS                0
  77. #define SQL_NULLABLE                1
  78. #define SQL_NULLABLE_UNKNOWN        2
  79.  
  80. /* Special length values */
  81. #define SQL_NULL_DATA                (-1)
  82. #define SQL_DATA_AT_EXEC            (-2)
  83. #define SQL_NTS                     (-3)
  84.  
  85. /* SQLFreeStmt defines */
  86. #define SQL_CLOSE                    0
  87. #define SQL_DROP                    1
  88. #define SQL_UNBIND                    2
  89. #define SQL_RESET_PARAMS            3
  90.  
  91. /* SQLTransact defines */
  92. #define SQL_COMMIT                    0
  93. #define SQL_ROLLBACK                1
  94.  
  95. /* SQLColAttributes defines */
  96. #define SQL_COLUMN_COUNT            0
  97. #define SQL_COLUMN_NAME             1
  98. #define SQL_COLUMN_TYPE             2
  99. #define SQL_COLUMN_LENGTH           3
  100. #define SQL_COLUMN_PRECISION        4
  101. #define SQL_COLUMN_SCALE            5
  102. #define SQL_COLUMN_DISPLAY_SIZE     6
  103. #define SQL_COLUMN_NULLABLE         7
  104. #define SQL_COLUMN_UNSIGNED         8
  105. #define SQL_COLUMN_MONEY            9
  106. #define SQL_COLUMN_UPDATABLE        10
  107. #define SQL_COLUMN_AUTO_INCREMENT    11
  108. #define SQL_COLUMN_CASE_SENSITIVE    12
  109. #define SQL_COLUMN_SEARCHABLE        13
  110. #define SQL_COLUMN_TYPE_NAME        14
  111. #if (ODBCVER >= 0x0200)
  112. #define SQL_COLUMN_TABLE_NAME        15
  113. #define SQL_COLUMN_OWNER_NAME        16
  114. #define SQL_COLUMN_QUALIFIER_NAME    17
  115. #define SQL_COLUMN_LABEL            18
  116. #define SQL_COLATT_OPT_MAX            SQL_COLUMN_LABEL
  117. #else
  118. #define SQL_COLATT_OPT_MAX            SQL_COLUMN_TYPE_NAME
  119. #endif    /* ODBCVER >= 0x0200 */
  120. #define SQL_COLUMN_DRIVER_START        1000
  121.  
  122. #define    SQL_COLATT_OPT_MIN            SQL_COLUMN_COUNT
  123.  
  124. /* SQLColAttributes subdefines for SQL_COLUMN_UPDATABLE */
  125. #define SQL_ATTR_READONLY            0
  126. #define SQL_ATTR_WRITE                1
  127. #define SQL_ATTR_READWRITE_UNKNOWN    2
  128.  
  129. /* SQLColAttributes subdefines for SQL_COLUMN_SEARCHABLE */
  130. /* These are also used by SQLGetInfo                     */
  131. #define SQL_UNSEARCHABLE            0
  132. #define SQL_LIKE_ONLY                1
  133. #define SQL_ALL_EXCEPT_LIKE         2
  134. #define SQL_SEARCHABLE                3
  135.  
  136. /* SQLError defines */
  137. #define SQL_NULL_HENV                0
  138. #define SQL_NULL_HDBC                0
  139. #define SQL_NULL_HSTMT                0
  140.  
  141. /* environment specific definitions */
  142. #ifndef EXPORT
  143. #define EXPORT  _export
  144. #endif
  145.  
  146. #ifdef WIN32
  147. #define SQL_API __stdcall
  148. #else
  149. #define SQL_API EXPORT CALLBACK
  150. #endif
  151.  
  152. #ifndef RC_INVOKED
  153. /* SQL portable types for C */
  154. typedef unsigned char       UCHAR;
  155. typedef signed char         SCHAR;
  156. typedef long int            SDWORD;
  157. typedef short int           SWORD;
  158. typedef unsigned long int   UDWORD;
  159. typedef unsigned short int  UWORD;
  160. #if (ODBCVER >= 0x0200)
  161. typedef signed long         SLONG;
  162. typedef signed short        SSHORT;
  163. typedef unsigned long        ULONG;
  164. typedef unsigned short        USHORT;
  165. #endif    /* ODBCVER >= 0x0200 */
  166. typedef double              SDOUBLE;
  167. #ifdef WIN32
  168. typedef double                 LDOUBLE; /* long double == short double in Win32 */
  169. #else
  170. typedef long double         LDOUBLE;
  171. #endif
  172. typedef float               SFLOAT;
  173.  
  174. typedef void FAR *          PTR;
  175.  
  176. typedef void FAR *          HENV;
  177. typedef void FAR *          HDBC;
  178. typedef void FAR *          HSTMT;
  179.  
  180. typedef signed short        RETCODE;
  181.  
  182.  
  183. /* Core Function Prototypes */
  184.  
  185. RETCODE SQL_API SQLAllocConnect(
  186.     HENV        henv,
  187.     HDBC   FAR *phdbc);
  188.  
  189. RETCODE SQL_API SQLAllocEnv(
  190.     HENV   FAR *phenv);
  191.  
  192. RETCODE SQL_API SQLAllocStmt(
  193.     HDBC        hdbc,
  194.     HSTMT  FAR *phstmt);
  195.  
  196. RETCODE SQL_API SQLBindCol(
  197.     HSTMT       hstmt,
  198.     UWORD       icol,
  199.     SWORD       fCType,
  200.     PTR         rgbValue,
  201.     SDWORD      cbValueMax,
  202.     SDWORD FAR *pcbValue);
  203.  
  204. RETCODE SQL_API SQLCancel(
  205.     HSTMT       hstmt);
  206.  
  207. RETCODE SQL_API SQLColAttributes(
  208.     HSTMT       hstmt,
  209.     UWORD       icol,
  210.     UWORD       fDescType,
  211.     PTR         rgbDesc,
  212.     SWORD       cbDescMax,
  213.     SWORD  FAR *pcbDesc,
  214.     SDWORD FAR *pfDesc);
  215.  
  216. RETCODE SQL_API SQLConnect(
  217.     HDBC        hdbc,
  218.     UCHAR  FAR *szDSN,
  219.     SWORD       cbDSN,
  220.     UCHAR  FAR *szUID,
  221.     SWORD       cbUID,
  222.     UCHAR  FAR *szAuthStr,
  223.     SWORD       cbAuthStr);
  224.  
  225. RETCODE SQL_API SQLDescribeCol(
  226.     HSTMT       hstmt,
  227.     UWORD       icol,
  228.     UCHAR  FAR *szColName,
  229.     SWORD       cbColNameMax,
  230.     SWORD  FAR *pcbColName,
  231.     SWORD  FAR *pfSqlType,
  232.     UDWORD FAR *pcbColDef,
  233.     SWORD  FAR *pibScale,
  234.     SWORD  FAR *pfNullable);
  235.  
  236. RETCODE SQL_API SQLDisconnect(
  237.     HDBC        hdbc);
  238.  
  239. RETCODE SQL_API SQLError(
  240.     HENV        henv,
  241.     HDBC        hdbc,
  242.     HSTMT       hstmt,
  243.     UCHAR  FAR *szSqlState,
  244.     SDWORD FAR *pfNativeError,
  245.     UCHAR  FAR *szErrorMsg,
  246.     SWORD       cbErrorMsgMax,
  247.     SWORD  FAR *pcbErrorMsg);
  248.  
  249. RETCODE SQL_API SQLExecDirect(
  250.     HSTMT       hstmt,
  251.     UCHAR  FAR *szSqlStr,
  252.     SDWORD      cbSqlStr);
  253.  
  254. RETCODE SQL_API SQLExecute(
  255.     HSTMT       hstmt);
  256.  
  257. RETCODE SQL_API SQLFetch(
  258.     HSTMT       hstmt);
  259.  
  260. RETCODE SQL_API SQLFreeConnect(
  261.     HDBC        hdbc);
  262.  
  263. RETCODE SQL_API SQLFreeEnv(
  264.     HENV        henv);
  265.  
  266. RETCODE SQL_API SQLFreeStmt(
  267.     HSTMT       hstmt,
  268.     UWORD       fOption);
  269.  
  270. RETCODE SQL_API SQLGetCursorName(
  271.     HSTMT       hstmt,
  272.     UCHAR  FAR *szCursor,
  273.     SWORD       cbCursorMax,
  274.     SWORD  FAR *pcbCursor);
  275.  
  276. RETCODE SQL_API SQLNumResultCols(
  277.     HSTMT       hstmt,
  278.     SWORD  FAR *pccol);
  279.  
  280. RETCODE SQL_API SQLPrepare(
  281.     HSTMT       hstmt,
  282.     UCHAR  FAR *szSqlStr,
  283.     SDWORD      cbSqlStr);
  284.  
  285. RETCODE SQL_API SQLRowCount(
  286.     HSTMT       hstmt,
  287.     SDWORD FAR *pcrow);
  288.  
  289. RETCODE SQL_API SQLSetCursorName(
  290.     HSTMT       hstmt,
  291.     UCHAR  FAR *szCursor,
  292.     SWORD       cbCursor);
  293.  
  294. RETCODE SQL_API SQLTransact(
  295.     HENV        henv,
  296.     HDBC        hdbc,
  297.     UWORD       fType);
  298.  
  299. #endif /* RC_INVOKED */
  300.  
  301. /*    Deprecrated functions from prior versions of ODBC */
  302. #ifndef RC_INVOKED
  303.  
  304. RETCODE SQL_API SQLSetParam(        /*    Use SQLBindParameter */
  305.     HSTMT       hstmt,
  306.     UWORD       ipar,
  307.     SWORD       fCType,
  308.     SWORD       fSqlType,
  309.     UDWORD      cbColDef,
  310.     SWORD       ibScale,
  311.     PTR         rgbValue,
  312.     SDWORD FAR *pcbValue);
  313.  
  314. #endif /* RC_INVOKED */
  315.  
  316.  
  317. #ifdef __cplusplus
  318. }                                    /* End of extern "C" { */
  319. #endif    /* __cplusplus */
  320.  
  321. #endif  /* #ifndef __SQL */
  322.