home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / db2clisq.zip / sqlcli.h next >
C/C++ Source or Header  |  2002-08-04  |  28KB  |  843 lines

  1. /******************************************************************************
  2.  * (C) COPYRIGHT International Business Machines Corp. 2000 - 2002
  3.  *
  4.  * 5724-D04
  5.  *
  6.  * All Rights Reserved
  7.  *
  8.  * US Government Users Restricted Rights - Use, duplication, or disclosure
  9.  * restricted by GSA ADP Schedule Contract with IBM Corp.
  10.  *
  11.  * Source File Name = sqlcli.h
  12.  *
  13.  * Function = Include File defining:
  14.  *              DB2 CLI Interface - Constants
  15.  *              DB2 CLI Interface - Data Structures
  16.  *              DB2 CLI Interface - Function Prototypes
  17.  *
  18.  * Operating System = Common C Include File
  19.  *
  20.  *****************************************************************************/
  21.  
  22. #ifndef __clidll__
  23. #ifdef UNDER_CE
  24. #define __clidll__ __declspec(dllimport)
  25. #else 
  26. #define __clidll__
  27. #endif // of under_ce
  28. #endif // end of #ifndef __clidll__
  29.  
  30. #ifndef SQL_H_SQLCLI
  31. #define SQL_H_SQLCLI            /* Permit duplicate Includes */
  32.  
  33.  
  34. /* DB2CLI_VER            DB2 Call Level Interface Version Number (0x0210).
  35.  *                       To revert to Version 1.0 definitions,
  36.  *                       issue #define DB2CLI_VER 0x0110 before including
  37.  *                       sqlcli.h and sqlcli1.h
  38.  */
  39.  
  40. /* If DB2CLI_VER is not defined, assume version 2.10 */
  41. #ifndef DB2CLI_VER
  42. #define DB2CLI_VER 0x0310
  43. #endif
  44.  
  45. #ifndef DB2E_C_VER
  46. #define DB2E_C_VER 0x720F
  47. #endif
  48.  
  49.  
  50. #ifdef __cplusplus
  51. extern "C" {
  52. #endif
  53.  
  54. //#include <stdlib.h>
  55.  
  56. #include "sqlsystm.h"                  /* System dependent defines  */
  57.  
  58. #if defined(DB2WIN) || defined(DB2NT)
  59. #include <windows.h>
  60. #else
  61. #ifndef FAR
  62. #define FAR
  63. #endif
  64. #endif
  65. #ifdef DB2OS2
  66. #define INCL_WIN
  67. #define INCL_DOS
  68. /* #include <os2.h> */
  69. #endif
  70.  
  71. #ifdef DB2MAC
  72.  
  73. /* #include <Quickdraw.h> */
  74. typedef GrafPtr HWND;
  75.  
  76. #ifdef SQL_API
  77. #undef SQL_API
  78. #endif
  79.  
  80. #endif
  81.  
  82. #define SQL_API SQL_API_FN
  83.  
  84.  
  85. /* generally useful constants */
  86. //define  SQL_MAX_MESSAGE_LENGTH   1024 /* message buffer size             */
  87. #define  SQL_MAX_MESSAGE_LENGTH   127 /* message buffer size             */
  88. #define  SQL_MAX_ID_LENGTH        18   /* maximum identifier name size,
  89.                                           e.g. cursor names               */
  90.  
  91. /* date/time length constants */
  92. #define SQL_DATE_LEN           10
  93. #define SQL_TIME_LEN            8  /* add P+1 if precision is nonzero */
  94. #define SQL_TIMESTAMP_LEN      26  /* add P+1 if precision is nonzero */
  95.  
  96. /* handle type identifiers */
  97. #define SQL_HANDLE_ENV             1
  98. #define SQL_HANDLE_DBC             2
  99. #define SQL_HANDLE_STMT            3
  100. #define SQL_HANDLE_DESC            4
  101.  
  102. /* RETCODE values             */
  103. #define  SQL_SUCCESS                        0
  104. #define  SQL_SUCCESS_WITH_INFO              1
  105. #define  SQL_NEED_DATA                      99
  106. #define  SQL_NO_DATA                        100
  107. #define  SQL_STILL_EXECUTING                2
  108. #define  SQL_ERROR                          -1
  109. #define  SQL_INVALID_HANDLE                 -2
  110. #define  SQL_SUCCESS_WITH_VERSION_CONFLICT  4
  111.  
  112. /* test for SQL_SUCCESS or SQL_SUCCESS_WITH_INFO */
  113. #define SQL_SUCCEEDED(rc) ((((rc)&(~1))==0) || ((rc)&(~4) == 0))
  114.  
  115. /* SQLFreeStmt option values  */
  116. #define  SQL_CLOSE               0
  117. #define  SQL_DROP                1
  118. #define  SQL_UNBIND              2
  119. #define  SQL_RESET_PARAMS        3
  120.  
  121. /* SQLTransact option values  */
  122. #define  SQL_COMMIT              0
  123. #define  SQL_ROLLBACK            1
  124.  
  125. /* Standard SQL data types */
  126. #define  SQL_UNKNOWN_TYPE        0
  127. #define  SQL_CHAR                1
  128. #define  SQL_NUMERIC             2
  129. #define  SQL_DECIMAL             3
  130. #define  SQL_INTEGER             4
  131. #define  SQL_SMALLINT            5
  132. #define  SQL_FLOAT               6
  133. #define  SQL_REAL                7
  134. #define  SQL_DOUBLE              8
  135. #define  SQL_DATETIME            9
  136. #define  SQL_VARCHAR            12
  137. //BA 1679
  138. #define  SQL_WCHAR              (-8)
  139. #define  SQL_WVARCHAR           (-9)
  140. #define  SQL_WLONGVARCHAR       (-10)
  141. //EA 1679
  142. /* One-parameter shortcuts for date/time data types */
  143. #define SQL_TYPE_DATE      91
  144. #define SQL_TYPE_TIME      92
  145. #define SQL_TYPE_TIMESTAMP 93
  146.  
  147. /* Statement attribute values for cursor sensitivity */
  148. #define SQL_UNSPECIFIED     0
  149. #define SQL_INSENSITIVE     1
  150. #define SQL_SENSITIVE       2
  151.  
  152. /* Default conversion code for SQLBindCol(), SQLBindParam() and SQLGetData() */
  153. #define SQL_DEFAULT        99
  154.  
  155. /* SQLGetData() code indicating that the application row descriptor
  156.  * specifies the data type
  157.  */
  158. #define SQL_ARD_TYPE      (-99)
  159.  
  160. /* SQL date/time type subcodes */
  161. #define SQL_CODE_DATE       1
  162. #define SQL_CODE_TIME       2
  163. #define SQL_CODE_TIMESTAMP  3
  164.  
  165. /* SQL extended data types */
  166. #define  SQL_GRAPHIC            -95
  167. #define  SQL_VARGRAPHIC         -96
  168. #define  SQL_LONGVARGRAPHIC     -97
  169. #define  SQL_BLOB               -98
  170. #define  SQL_CLOB               -99
  171. #define  SQL_DBCLOB             -350
  172. #define  SQL_DATALINK           -400
  173. #define  SQL_USER_DEFINED_TYPE  -450  //d1679
  174.  
  175. /* C data type to SQL data type mapping */
  176. #define  SQL_C_DBCHAR         SQL_DBCLOB
  177. #define  SQL_C_DECIMAL_IBM    SQL_DECIMAL
  178. #define  SQL_C_DATALINK       SQL_C_CHAR
  179. #define  SQL_C_PTR            2463        //d1679
  180. /*
  181.  *  locator type identifier
  182.  */
  183.  
  184. #define SQL_BLOB_LOCATOR       31
  185. #define SQL_CLOB_LOCATOR       41
  186. #define SQL_DBCLOB_LOCATOR    -351
  187.  
  188. /*
  189.  * C Data Type for the LOB locator types
  190.  */
  191. #define SQL_C_BLOB_LOCATOR     SQL_BLOB_LOCATOR
  192. #define SQL_C_CLOB_LOCATOR     SQL_CLOB_LOCATOR
  193. #define SQL_C_DBCLOB_LOCATOR   SQL_DBCLOB_LOCATOR
  194.  
  195. /*
  196.  * NULL status defines; these are used in SQLColAttributes, SQLDescribeCol,
  197.  * to describe the nullability of a column in a table.
  198.  */
  199.  
  200. #define  SQL_NO_NULLS         0
  201. #define  SQL_NULLABLE         1
  202. #define  SQL_NULLABLE_UNKNOWN 2
  203.  
  204. /* values of UNNAMED field in descriptor used in SQLColAttribute */
  205. #define SQL_NAMED             0
  206. #define SQL_UNNAMED           1
  207.  
  208. /* values of ALLOC_TYPE field in descriptor */
  209. #define SQL_DESC_ALLOC_AUTO 1
  210. #define SQL_DESC_ALLOC_USER 2
  211.  
  212. /* Special length values  */
  213. #define  SQL_NULL_DATA        -1
  214. #define  SQL_DATA_AT_EXEC     -2
  215. #define  SQL_NTS              -3      /* NTS = Null Terminated String    */
  216. #define  SQL_NTSL             -3L     /* NTS = Null Terminated String    */
  217.  
  218. /* SQLColAttributes defines */
  219. #define  SQL_COLUMN_SCHEMA_NAME      16
  220. #define  SQL_COLUMN_CATALOG_NAME     17
  221. #define  SQL_COLUMN_DISTINCT_TYPE    1250
  222. #define  SQL_DESC_DISTINCT_TYPE      SQL_COLUMN_DISTINCT_TYPE
  223. #define  SQL_COLUMN_REFERENCE_TYPE   1251
  224. #define  SQL_DESC_REFERENCE_TYPE     SQL_COLUMN_REFERENCE_TYPE
  225.  
  226. /* identifiers of fields in the SQL descriptor */
  227. #define SQL_DESC_COUNT                  1001
  228. #define SQL_DESC_TYPE                   1002
  229. #define SQL_DESC_LENGTH                 1003
  230. #define SQL_DESC_OCTET_LENGTH_PTR       1004
  231. #define SQL_DESC_PRECISION              1005
  232. #define SQL_DESC_SCALE                  1006
  233. #define SQL_DESC_DATETIME_INTERVAL_CODE 1007
  234. #define SQL_DESC_NULLABLE               1008
  235. #define SQL_DESC_INDICATOR_PTR          1009
  236. #define SQL_DESC_DATA_PTR               1010
  237. #define SQL_DESC_NAME                   1011
  238. #define SQL_DESC_UNNAMED                1012
  239. #define SQL_DESC_OCTET_LENGTH           1013
  240. #define SQL_DESC_ALLOC_TYPE             1099
  241.  
  242.  
  243. /* SQLColAttribute defines for SQL_COLUMN_UPDATABLE condition */
  244. #define  SQL_UPDT_READONLY            0
  245. #define  SQL_UPDT_WRITE               1
  246. #define  SQL_UPDT_READWRITE_UNKNOWN   2
  247.  
  248. /*
  249.  * SQLColAttribute defines for SQL_COLUMN_SEARCHABLE condition.
  250.  */
  251. #define  SQL_PRED_NONE         0
  252. #define  SQL_PRED_CHAR         1
  253. #define  SQL_PRED_BASIC        2
  254.  
  255. /* NULL handle defines    */
  256. #define  SQL_NULL_HENV                0L
  257. #define  SQL_NULL_HDBC                0L
  258. #define  SQL_NULL_HSTMT               0L
  259. #define  SQL_NULL_HDESC               0L
  260. #define  SQL_NULL_HANDLE              0L
  261.  
  262. /* identifiers of fields in the diagnostics area */
  263. #define SQL_DIAG_RETURNCODE        1
  264. #define SQL_DIAG_NUMBER            2
  265. #define SQL_DIAG_ROW_COUNT         3
  266. #define SQL_DIAG_SQLSTATE          4
  267. #define SQL_DIAG_NATIVE            5
  268. #define SQL_DIAG_MESSAGE_TEXT      6
  269. #define SQL_DIAG_DYNAMIC_FUNCTION  7
  270. #define SQL_DIAG_CLASS_ORIGIN      8
  271. #define SQL_DIAG_SUBCLASS_ORIGIN   9
  272. #define SQL_DIAG_CONNECTION_NAME  10
  273. #define SQL_DIAG_SERVER_NAME      11
  274. #define SQL_DIAG_DYNAMIC_FUNCTION_CODE 12
  275.  
  276. /* dynamic function codes */
  277. #define SQL_DIAG_ALTER_TABLE            4
  278. #define SQL_DIAG_CREATE_INDEX          (-1)
  279. #define SQL_DIAG_CREATE_TABLE          77
  280. #define SQL_DIAG_CREATE_VIEW           84
  281. #define SQL_DIAG_DELETE_WHERE          19
  282. #define SQL_DIAG_DROP_INDEX            (-2)
  283. #define SQL_DIAG_DROP_TABLE            32
  284. #define SQL_DIAG_DROP_VIEW             36
  285. #define SQL_DIAG_DYNAMIC_DELETE_CURSOR 38
  286. #define SQL_DIAG_DYNAMIC_UPDATE_CURSOR 81
  287. #define SQL_DIAG_GRANT                 48
  288. #define SQL_DIAG_INSERT                50
  289. #define SQL_DIAG_REVOKE                59
  290. #define SQL_DIAG_SELECT_CURSOR         85
  291. #define SQL_DIAG_UNKNOWN_STATEMENT      0
  292. #define SQL_DIAG_UPDATE_WHERE          82
  293.  
  294. /*
  295.  *  IBM specific SQLGetDiagField values.
  296.  */
  297.  
  298. #define SQL_DIAG_DEFERRED_PREPARE_ERROR   1279
  299.  
  300. /* SQL_DIAG_ROW_NUMBER values */
  301. #define SQL_ROW_NO_ROW_NUMBER                   (-1)
  302. #define SQL_ROW_NUMBER_UNKNOWN                  (-2)
  303.  
  304. /* SQL_DIAG_COLUMN_NUMBER values */
  305. #define SQL_COLUMN_NO_COLUMN_NUMBER             (-1)
  306. #define SQL_COLUMN_NUMBER_UNKNOWN               (-2)
  307.  
  308. /*
  309.  * The following are provided to enhance portability and compatibility
  310.  * with ODBC
  311.  */
  312.  
  313. #if !defined(DB2OS2) && !defined(UNDER_ZR)
  314. typedef           unsigned char         UCHAR;
  315. typedef  unsigned long                  ULONG;
  316. typedef  unsigned short                 USHORT;
  317. #endif
  318.  
  319. typedef           signed   char         SCHAR;
  320. typedef           long     int          SDWORD;
  321. typedef           short    int          SWORD;
  322. typedef  unsigned long     int          UDWORD;
  323. typedef  unsigned short    int          UWORD;
  324. typedef                    double       SDOUBLE;
  325. typedef                    float        SFLOAT;
  326. typedef  unsigned          char         SQLDATE;
  327. typedef  unsigned          char         SQLTIME;
  328. typedef  unsigned          char         SQLTIMESTAMP;
  329. typedef  unsigned          char         SQLDECIMAL;
  330. typedef  unsigned          char         SQLNUMERIC;
  331.  
  332. typedef  signed   long                  SLONG;
  333. typedef  signed   short                 SSHORT;
  334.  
  335.  
  336. #if defined(WINDOWS)
  337. typedef  long     double                LDOUBLE;
  338. #else
  339. typedef           double                LDOUBLE;
  340. #endif
  341.  
  342. #if !defined(UNDER_ZR)
  343.   typedef void FAR *         PTR;
  344. #endif
  345. typedef void FAR *         HENV;
  346. typedef void FAR *         HDBC;
  347. typedef void FAR *         HSTMT;
  348.  
  349. typedef signed short       RETCODE;
  350.  
  351.  
  352.  
  353. /* SQL portable types for C  */
  354. typedef  UCHAR             SQLCHAR;
  355. typedef  UCHAR             SQLVARCHAR;
  356. typedef  SCHAR             SQLSCHAR;
  357. typedef  SDWORD            SQLINTEGER;
  358. typedef  SWORD             SQLSMALLINT;
  359. typedef  SDOUBLE           SQLDOUBLE;
  360. typedef  SDOUBLE           SQLFLOAT;
  361. typedef  SFLOAT            SQLREAL;
  362.  
  363. typedef  SQLSMALLINT       SQLRETURN;
  364.  
  365. #if (DB2CLI_VER >= 0x0200)
  366. typedef  UDWORD            SQLUINTEGER;
  367. typedef  UWORD             SQLUSMALLINT;
  368. #else
  369. typedef  SQLINTEGER        SQLUINTEGER;
  370. typedef  SQLSMALLINT       SQLUSMALLINT;
  371. #endif
  372.  
  373. typedef  PTR               SQLPOINTER;
  374.  
  375. /*
  376.  * Double Byte Character Set support
  377.  */
  378. //BA1679
  379. #ifdef UNICODE
  380. #undef SQL_WCHART_CONVERT
  381. #endif
  382.  
  383. #ifdef SQL_WCHART_CONVERT
  384. typedef  wchar_t           SQLDBCHAR;
  385. #else
  386. typedef  unsigned short    SQLDBCHAR;
  387. #endif
  388.  
  389. #ifdef DB2WIN
  390. typedef  wchar_t           SQLWCHAR;
  391. #else
  392. typedef  unsigned short    SQLWCHAR;
  393. #endif
  394. //EA1679
  395. /*
  396. #ifdef SQL_WCHART_CONVERT
  397. typedef  wchar_t           SQLDBCHAR;
  398. typedef  wchar_t           SQLWCHAR;
  399. #else
  400. typedef  unsigned short    SQLDBCHAR;
  401. typedef  unsigned short    SQLWCHAR;
  402. #endif
  403.  
  404. #ifdef UNICODE
  405. typedef SQLWCHAR        SQLTCHAR;
  406. #else
  407. typedef SQLCHAR         SQLTCHAR;
  408. #endif  //
  409. */
  410.  
  411. #ifdef DB2WIN
  412.  
  413. typedef  SQLINTEGER        SQLHANDLE;
  414. /*
  415. typedef  HENV              SQLHENV;
  416. typedef  HDBC              SQLHDBC;
  417. typedef  HSTMT             SQLHSTMT;
  418. */
  419. typedef  SQLINTEGER        SQLHENV;
  420. typedef  SQLINTEGER        SQLHDBC;
  421. typedef  SQLINTEGER        SQLHSTMT;
  422. typedef  HWND              SQLHWND;
  423.  
  424. #else
  425.  
  426. #ifndef __SQLTYPES
  427. typedef  SQLINTEGER        SQLHANDLE;
  428. typedef  SQLINTEGER        SQLHENV;
  429. typedef  SQLINTEGER        SQLHDBC;
  430. typedef  SQLINTEGER        SQLHSTMT;
  431. #endif
  432.  
  433. #if defined(DB2OS2) || defined (DB2WIN) || defined (DB2NT) || defined(DB2MAC)
  434. typedef  HWND              SQLHWND;
  435. #else
  436. typedef  SQLPOINTER        SQLHWND;
  437. #endif
  438.  
  439. #endif
  440. typedef  SQLHANDLE         SQLHDESC;
  441.  
  442. #ifndef __SQLTYPES
  443.  
  444. /*
  445.  * SQL_NO_NATIVE_BIGINT_SUPPORT and SQL_BIGINT_TYPE are defined in sqlsystm.h
  446.  *
  447.  */
  448.  
  449. #if defined(SQL_NO_NATIVE_BIGINT_SUPPORT)
  450. typedef struct
  451. {
  452.         SQLUINTEGER dwLowWord;
  453.         SQLINTEGER  dwHighWord;
  454. } SQLBIGINT;
  455. typedef struct
  456. {
  457.         SQLUINTEGER dwLowWord;
  458.         SQLUINTEGER dwHighWord;
  459. } SQLUBIGINT;
  460. #elif defined(SQL_BIGINT_TYPE)
  461. typedef  SQL_BIGINT_TYPE   SQLBIGINT;
  462. typedef  unsigned SQL_BIGINT_TYPE  SQLUBIGINT;
  463. #endif
  464.  
  465. typedef  struct DATE_STRUCT
  466.   {
  467.     SQLSMALLINT    year;
  468.     SQLUSMALLINT   month;
  469.     SQLUSMALLINT   day;
  470.   } DATE_STRUCT;
  471.  
  472. typedef DATE_STRUCT SQL_DATE_STRUCT;
  473.  
  474. typedef  struct TIME_STRUCT
  475.   {
  476.     SQLUSMALLINT   hour;
  477.     SQLUSMALLINT   minute;
  478.     SQLUSMALLINT   second;
  479.   } TIME_STRUCT;
  480.  
  481. typedef TIME_STRUCT SQL_TIME_STRUCT;
  482.  
  483. typedef  struct TIMESTAMP_STRUCT
  484.   {
  485.     SQLSMALLINT    year;
  486.     SQLUSMALLINT   month;
  487.     SQLUSMALLINT   day;
  488.     SQLUSMALLINT   hour;
  489.     SQLUSMALLINT   minute;
  490.     SQLUSMALLINT   second;
  491.     SQLUINTEGER    fraction;     /* fraction of a second */
  492.   } TIMESTAMP_STRUCT;
  493.  
  494.  
  495. typedef TIMESTAMP_STRUCT SQL_TIMESTAMP_STRUCT;
  496.  
  497. typedef enum
  498. {
  499.         SQL_IS_YEAR                                             = 1,
  500.         SQL_IS_MONTH                                    = 2,
  501.         SQL_IS_DAY                                              = 3,
  502.         SQL_IS_HOUR                                             = 4,
  503.         SQL_IS_MINUTE                                   = 5,
  504.         SQL_IS_SECOND                                   = 6,
  505.         SQL_IS_YEAR_TO_MONTH                    = 7,
  506.         SQL_IS_DAY_TO_HOUR                              = 8,
  507.         SQL_IS_DAY_TO_MINUTE                    = 9,
  508.         SQL_IS_DAY_TO_SECOND                    = 10,
  509.         SQL_IS_HOUR_TO_MINUTE                   = 11,
  510.         SQL_IS_HOUR_TO_SECOND                   = 12,
  511.         SQL_IS_MINUTE_TO_SECOND                 = 13
  512. } SQLINTERVAL;
  513.  
  514. typedef struct tagSQL_YEAR_MONTH
  515. {
  516.                 SQLUINTEGER             year;
  517.                 SQLUINTEGER             month;
  518. } SQL_YEAR_MONTH_STRUCT;
  519.  
  520. typedef struct tagSQL_DAY_SECOND
  521. {
  522.                 SQLUINTEGER             day;
  523.                 SQLUINTEGER             hour;
  524.                 SQLUINTEGER             minute;
  525.                 SQLUINTEGER             second;
  526.                 SQLUINTEGER             fraction;
  527. } SQL_DAY_SECOND_STRUCT;
  528.  
  529. typedef struct tagSQL_INTERVAL_STRUCT
  530. {
  531.         SQLINTERVAL             interval_type;
  532.         SQLSMALLINT             interval_sign;
  533.         union {
  534.                 SQL_YEAR_MONTH_STRUCT           year_month;
  535.                 SQL_DAY_SECOND_STRUCT           day_second;
  536.         } intval;
  537.  
  538. } SQL_INTERVAL_STRUCT;
  539.  
  540. /* internal representation of numeric data type */
  541. #define SQL_MAX_NUMERIC_LEN             16
  542. typedef struct tagSQL_NUMERIC_STRUCT
  543. {
  544.         SQLCHAR         precision;
  545.         SQLSCHAR        scale;
  546.         SQLCHAR         sign;   /* 1 if positive, 0 if negative */
  547.         SQLCHAR         val[SQL_MAX_NUMERIC_LEN];
  548. } SQL_NUMERIC_STRUCT;
  549.  
  550. #endif
  551.  
  552. /* Core Function Prototypes  */
  553.  
  554. #ifndef DB2E_ENGINE  // do not define this macro in application programs.
  555. #define SQLAllocConnect(a,b) SQLAllocConnectVer(a,b,DB2E_C_VER)
  556. #define SQLAllocEnv(a) SQLAllocEnvVer(a,DB2E_C_VER)
  557. #define SQLAllocStmt(a,b) SQLAllocStmtVer(a,b,DB2E_C_VER)
  558. #define SQLAllocHandle(a,b,c) SQLAllocHandleVer(a,b,c,DB2E_C_VER)
  559. #endif
  560.  
  561. __clidll__ 
  562. SQLRETURN SQL_API_FN  SQLAllocConnectVer  (SQLHENV           henv,
  563.                                            SQLHDBC     FAR   *phdbc,
  564.                                            SQLINTEGER version);
  565.  
  566. __clidll__ 
  567. SQLRETURN SQL_API_FN  SQLAllocEnvVer      (SQLHENV     FAR   *phenv,
  568.                                            SQLINTEGER version);
  569.  
  570. __clidll__ 
  571. SQLRETURN SQL_API_FN  SQLAllocStmtVer     (SQLHDBC           hdbc,
  572.                                            SQLHSTMT    FAR   *phstmt,
  573.                                            SQLINTEGER version);
  574.  
  575. __clidll__ 
  576. SQLRETURN SQL_API_FN SQLAllocHandleVer(    SQLSMALLINT fHandleType,
  577.                                            SQLHANDLE hInput,
  578.                                            SQLHANDLE * phOutput,
  579.                                            SQLINTEGER version);
  580. __clidll__ 
  581. SQLRETURN SQL_API_FN  SQLBindCol       (SQLHSTMT          hstmt,
  582.                                         SQLUSMALLINT      icol,
  583.                                         SQLSMALLINT       fCType,
  584.                                         SQLPOINTER        rgbValue,
  585.                                         SQLINTEGER        cbValueMax,
  586.                                         SQLINTEGER  FAR   *pcbValue);
  587.  
  588. __clidll__ 
  589. SQLRETURN SQL_API SQLBindParameter(
  590.                                         SQLHSTMT           hstmt,
  591.                                         SQLUSMALLINT       ipar,
  592.                                         SQLSMALLINT        fParamType,
  593.                                         SQLSMALLINT        fCType,
  594.                                         SQLSMALLINT        fSqlType,
  595.                                         SQLUINTEGER        cbColDef,
  596.                                         SQLSMALLINT        ibScale,
  597.                                         SQLPOINTER         rgbValue,
  598.                                         SQLINTEGER         cbValueMax,
  599.                                         SQLINTEGER           *pcbValue);
  600.  
  601. __clidll__ 
  602. SQLRETURN SQL_API_FN  SQLCancel        (SQLHSTMT          hstmt);
  603.  
  604. __clidll__ 
  605. SQLRETURN SQL_API_FN  SQLColAttribute  (SQLHSTMT          hstmt,
  606.                                         SQLUSMALLINT      icol,
  607.                                         SQLUSMALLINT      fDescType,
  608.                                         SQLPOINTER        rgbDesc,
  609.                                         SQLSMALLINT       cbDescMax,
  610.                                         SQLSMALLINT FAR   *pcbDesc,
  611.                                         SQLPOINTER         pfDesc);
  612.  
  613. __clidll__ 
  614. SQLRETURN SQL_API_FN  SQLConnect       (SQLHDBC           hdbc,
  615.                                         SQLCHAR     FAR   *szDSN,
  616.                                         SQLSMALLINT       cbDSN,
  617.                                         SQLCHAR     FAR   *szUID,
  618.                                         SQLSMALLINT       cbUID,
  619.                                         SQLCHAR     FAR   *szAuthStr,
  620.                                         SQLSMALLINT       cbAuthStr);
  621.  
  622. __clidll__ 
  623. SQLRETURN SQL_API_FN  SQLDescribeCol   (SQLHSTMT          hstmt,
  624.                                         SQLUSMALLINT      icol,
  625.                                         SQLCHAR     FAR   *szColName,
  626.                                         SQLSMALLINT       cbColNameMax,
  627.                                         SQLSMALLINT FAR   *pcbColName,
  628.                                         SQLSMALLINT FAR   *pfSqlType,
  629.                                         SQLUINTEGER FAR   *pcbColDef,
  630.                                         SQLSMALLINT FAR   *pibScale,
  631.                                         SQLSMALLINT FAR   *pfNullable);
  632.  
  633. __clidll__ 
  634. SQLRETURN SQL_API_FN  SQLDisconnect    (SQLHDBC           hdbc);
  635.  
  636. __clidll__ 
  637. SQLRETURN SQL_API_FN  SQLError         (SQLHENV           henv,
  638.                                         SQLHDBC           hdbc,
  639.                                         SQLHSTMT          hstmt,
  640.                                         SQLCHAR     FAR   *szSqlState,
  641.                                         SQLINTEGER  FAR   *pfNativeError,
  642.                                         SQLCHAR     FAR   *szErrorMsg,
  643.                                         SQLSMALLINT       cbErrorMsgMax,
  644.                                         SQLSMALLINT FAR   *pcbErrorMsg);
  645.  
  646. __clidll__ 
  647. SQLRETURN SQL_API_FN  SQLExecDirect    (SQLHSTMT          hstmt,
  648.                                         SQLCHAR     FAR   *szSqlStr,
  649.                                         SQLINTEGER        cbSqlStr);
  650.  
  651. __clidll__ 
  652. SQLRETURN SQL_API_FN  SQLExecute       (SQLHSTMT          hstmt);
  653.  
  654. __clidll__ 
  655. SQLRETURN SQL_API_FN  SQLFetch         (SQLHSTMT          hstmt);
  656.  
  657. __clidll__ 
  658. SQLRETURN SQL_API_FN  SQLFreeConnect   (SQLHDBC           hdbc);
  659.  
  660. __clidll__ 
  661. SQLRETURN SQL_API_FN  SQLFreeEnv       (SQLHENV           henv);
  662.  
  663. __clidll__ 
  664. SQLRETURN SQL_API_FN  SQLFreeStmt      (SQLHSTMT          hstmt,
  665.                                         SQLUSMALLINT      fOption);
  666.  
  667. __clidll__ 
  668. SQLRETURN SQL_API_FN SQLCloseCursor(    SQLHSTMT hStmt );
  669.  
  670. __clidll__ 
  671. SQLRETURN SQL_API_FN  SQLGetCursorName (SQLHSTMT          hstmt,
  672.                                         SQLCHAR     FAR   *szCursor,
  673.                                         SQLSMALLINT       cbCursorMax,
  674.                                         SQLSMALLINT FAR   *pcbCursor);
  675.  
  676. __clidll__ 
  677. SQLRETURN SQL_API_FN  SQLGetData       (SQLHSTMT          hstmt,
  678.                                         SQLUSMALLINT      icol,
  679.                                         SQLSMALLINT       fCType,
  680.                                         SQLPOINTER        rgbValue,
  681.                                         SQLINTEGER        cbValueMax,
  682.                                         SQLINTEGER  FAR   *pcbValue);
  683.  
  684. __clidll__ 
  685. SQLRETURN SQL_API_FN  SQLNumResultCols (SQLHSTMT          hstmt,
  686.                                         SQLSMALLINT FAR   *pccol);
  687.  
  688. __clidll__ 
  689. SQLRETURN SQL_API_FN  SQLPrepare       (SQLHSTMT          hstmt,
  690.                                         SQLCHAR     FAR   *szSqlStr,
  691.                                         SQLINTEGER        cbSqlStr);
  692.  
  693. __clidll__ 
  694. SQLRETURN SQL_API_FN  SQLRowCount      (SQLHSTMT          hstmt,
  695.                                         SQLINTEGER  FAR   *pcrow);
  696.  
  697. __clidll__ 
  698. SQLRETURN SQL_API_FN  SQLSetCursorName (SQLHSTMT          hstmt,
  699.                                         SQLCHAR     FAR   *szCursor,
  700.                                         SQLSMALLINT       cbCursor);
  701.  
  702. __clidll__ 
  703. SQLRETURN SQL_API_FN  SQLSetParam      (SQLHSTMT          hstmt,
  704.                                         SQLUSMALLINT      ipar,
  705.                                         SQLSMALLINT       fCType,
  706.                                         SQLSMALLINT       fSqlType,
  707.                                         SQLUINTEGER       cbParamDef,
  708.                                         SQLSMALLINT       ibScale,
  709.                                         SQLPOINTER        rgbValue,
  710.                                         SQLINTEGER  FAR   *pcbValue);
  711.  
  712. __clidll__ 
  713. SQLRETURN SQL_API_FN  SQLTransact      (SQLHENV           henv,
  714.                                         SQLHDBC           hdbc,
  715.                                         SQLUSMALLINT      fType);
  716.  
  717. __clidll__ 
  718. SQLRETURN SQL_API_FN SQLEndTran(        SQLSMALLINT fHandleType,
  719.                                         SQLHANDLE hHandle,
  720.                                         SQLSMALLINT fType );
  721.  
  722. __clidll__ 
  723. SQLRETURN SQL_API_FN SQLFreeHandle(     SQLSMALLINT fHandleType,
  724.                                         SQLHANDLE hHandle );
  725.  
  726. __clidll__ 
  727. SQLRETURN SQL_API_FN SQLGetDiagRec(     SQLSMALLINT fHandleType,
  728.                                         SQLHANDLE hHandle,
  729.                                         SQLSMALLINT iRecNumber,
  730.                                         SQLCHAR * pszSqlState,
  731.                                         SQLINTEGER * pfNativeError,
  732.                                         SQLCHAR * pszErrorMsg,
  733.                                         SQLSMALLINT cbErrorMsgMax,
  734.                                         SQLSMALLINT * pcbErrorMsg );
  735.  
  736. __clidll__ 
  737. SQLRETURN SQL_API_FN SQLGetDiagField(   SQLSMALLINT fHandleType,
  738.                                         SQLHANDLE hHandle,
  739.                                         SQLSMALLINT iRecNumber,
  740.                                         SQLSMALLINT fDiagIdentifier,
  741.                                         SQLPOINTER pDiagInfo,
  742.                                         SQLSMALLINT cbDiagInfoMax,
  743.                                         SQLSMALLINT * pcbDiagInfo );
  744.  
  745. __clidll__ 
  746. SQLRETURN  SQL_API_FN SQLCopyDesc(      SQLHDESC hDescSource,
  747.                                         SQLHDESC hDescTarget );
  748.  
  749. __clidll__ 
  750. SQLRETURN  SQL_API_FN SQLGetDescField(SQLHDESC DescriptorHandle,
  751.            SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier,
  752.            SQLPOINTER Value, SQLINTEGER BufferLength,
  753.            SQLINTEGER *StringLength);
  754.  
  755. __clidll__ 
  756. SQLRETURN  SQL_API_FN SQLGetDescRec(SQLHDESC DescriptorHandle,
  757.            SQLSMALLINT RecNumber, SQLCHAR *Name,
  758.            SQLSMALLINT BufferLength, SQLSMALLINT *StringLength,
  759.            SQLSMALLINT *Type, SQLSMALLINT *SubType,
  760.            SQLINTEGER *Length, SQLSMALLINT *Precision,
  761.            SQLSMALLINT *Scale, SQLSMALLINT *Nullable);
  762.  
  763. __clidll__ 
  764. SQLRETURN  SQL_API_FN SQLSetDescField(SQLHDESC DescriptorHandle,
  765.            SQLSMALLINT RecNumber, SQLSMALLINT FieldIdentifier,
  766.            SQLPOINTER Value, SQLINTEGER BufferLength);
  767.  
  768. __clidll__ 
  769. SQLRETURN  SQL_API_FN SQLSetDescRec(SQLHDESC DescriptorHandle,
  770.            SQLSMALLINT RecNumber, SQLSMALLINT Type,
  771.            SQLSMALLINT SubType, SQLINTEGER Length,
  772.            SQLSMALLINT Precision, SQLSMALLINT Scale,
  773.            SQLPOINTER Data, SQLINTEGER *StringLength,
  774.            SQLINTEGER *Indicator);
  775.  
  776.  
  777. __clidll__ 
  778. SQLRETURN SQL_API_FN  SQLSetStmtAttr   (SQLHSTMT          hstmt,
  779.                                         SQLINTEGER        fOption,
  780.                                         SQLPOINTER        pvParam,
  781.                                         SQLINTEGER       fStrLen);
  782. //f728 mhsing
  783. __clidll__ 
  784. SQLRETURN SQL_API_FN  SQLFetchScroll    (SQLHSTMT        hstmt,
  785.                                          SQLSMALLINT    fOrientation,
  786.                                          SQLINTEGER        nFetchOffset);
  787.  
  788. //f751 mhsing
  789. __clidll__ 
  790. SQLRETURN SQL_API SQLPrimaryKeys(
  791.     SQLHSTMT              hstmt,
  792.     SQLCHAR         FAR   *szCatalogName,
  793.     SQLSMALLINT           cbCatalogName,
  794.     SQLCHAR         FAR   *szSchemaName,
  795.     SQLSMALLINT           cbSchemaName,
  796.     SQLCHAR         FAR   *szTableName,
  797.     SQLSMALLINT           cbTableName);
  798.  
  799. __clidll__ 
  800. SQLRETURN SQL_API SQLForeignKeys(
  801.     SQLHSTMT               hstmt,
  802.     SQLCHAR         FAR    *szPkCatalogName,
  803.     SQLSMALLINT            cbPkCatalogName,
  804.     SQLCHAR         FAR    *szPkSchemaName,
  805.     SQLSMALLINT            cbPkSchemaName,
  806.     SQLCHAR         FAR    *szPkTableName,
  807.     SQLSMALLINT            cbPkTableName,
  808.     SQLCHAR         FAR    *szFkCatalogName,
  809.     SQLSMALLINT            cbFkCatalogName,
  810.     SQLCHAR         FAR    *szFkSchemaName,
  811.     SQLSMALLINT            cbFkSchemaName,
  812.     SQLCHAR         FAR    *szFkTableName,
  813.     SQLSMALLINT            cbFkTableName);
  814.  
  815.  
  816. #ifdef __cplusplus
  817. }
  818. #endif
  819.  
  820. /*
  821.  * Include ODBC header files for
  822.  * functions that are not specified in the X/Open Call Level Interface.
  823.  * This is included with permission from Microsoft.
  824.  * Do not modify (i.e. must not add, remove, rearrange) any part of the
  825.  * contents of sqlext.h
  826.  * Note: SQLDrivers is not supported by DB2 CLI.
  827.  */
  828. #ifndef __SQL
  829. #define __SQL
  830. #define ODBCVER 0x0300
  831. #endif
  832. #if !defined(WINDOWS) && !defined(WIN32) && !defined(SQLWIN) && !defined(SQLWINT)
  833. typedef signed char *      LPWSTR;
  834. typedef long     int       DWORD;
  835. #ifndef VOID
  836. #define VOID void
  837. #endif
  838. #endif
  839. #include "sqlext.h"
  840. #include "sqlcli1.h"
  841.  
  842. #endif /* SQL_H_SQLCLI */
  843.