Files correlati : Commento : - Creazione nuova cartella per contenere tutte le librerie esterne - Aggiunta nuova libreria sqlapi per interfacciare campo a vari DB git-svn-id: svn://10.65.10.50/branches/R_10_00@24149 c028cbd2-c16b-5b4b-a496-9718f37d4682
		
			
				
	
	
		
			2846 lines
		
	
	
		
			161 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			2846 lines
		
	
	
		
			161 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /******************************************************************************
 | |
| ** 
 | |
| ** Source File Name: SQL
 | |
| ** 
 | |
| ** (C) COPYRIGHT International Business Machines Corp. 1987, 2006
 | |
| ** All Rights Reserved
 | |
| ** Licensed Materials - Property of IBM
 | |
| ** 
 | |
| ** US Government Users Restricted Rights - Use, duplication or
 | |
| ** disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
 | |
| ** 
 | |
| ** Function = Include File defining:
 | |
| **              System Constants
 | |
| **              National Language Support Information
 | |
| **              SQLCA / SQLDA Constants
 | |
| **              Interface to BINDER and PRECOMPILER
 | |
| **              Error Message Retrieval Interface
 | |
| **              Authorization Constants
 | |
| ** 
 | |
| ** Operating System:  Windows NT
 | |
| ** 
 | |
| *******************************************************************************/
 | |
| #ifndef SQL_H_SQL
 | |
| #define SQL_H_SQL
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| 
 | |
| /* Note: _SQLOLDCHAR defaults to 'char'.  See sqlsystm.h for details.         */
 | |
| 
 | |
| #include <stddef.h>                    
 | |
| #include "sqlsystm.h"                  /* System dependent defines  */
 | |
| 
 | |
| #ifndef SQLCODE
 | |
| #include "sqlca.h"                     /* Required include file    */
 | |
| #endif
 | |
| 
 | |
| #ifdef _WIN64
 | |
| #pragma pack(8)
 | |
| #else
 | |
| #pragma pack(4)
 | |
| #endif
 | |
| 
 | |
| /* Release Identifier Constants                                               */
 | |
| 
 | |
| #define SQL_RELPRE6            0       /* Pre Version 6.1.0.0                 */
 | |
| #define SQL_REL6100            6010000 /* V6.1.0.0                            */
 | |
| #define SQL_REL7100            7010000 /* V7.1.0.0                            */
 | |
| #define SQL_REL7102            7010200 /* V7.1.2.0                            */
 | |
| #define SQL_REL7200            7020100 /* V7.2.0.0                            */
 | |
| #define SQL_REL7201            7020200 /* V7.2.1.0                            */
 | |
| #define SQL_REL7204            7020400 /* V7.2.4.0                            */
 | |
| #define SQL_REL8100            8010000 /* V8.1.0.0                            */
 | |
| #define SQL_REL8101            8010100 /* V8.1.1.0                            */
 | |
| #define SQL_REL8102            8010200 /* V8.1.2.0                            */
 | |
| #define SQL_REL8103            8010300 /* V8.1.3.0                            */
 | |
| #define SQL_REL8104            8010400 /* V8.1.4.0                            */
 | |
| #define SQL_REL8105            8010500 /* V8.1.5.0                            */
 | |
| #define SQL_REL8106            8010600 /* V8.1.6.0                            */
 | |
| #define SQL_REL8200            8020000 /* V8.2.0.0                            */
 | |
| #define SQL_REL8201            8020100 /* V8.2.1.0                            */
 | |
| #define SQL_REL8202            8020200 /* V8.2.2.0                            */
 | |
| #define SQL_REL9000            9000000 /* V9.0.0.0                            */
 | |
| #define SQL_REL9100            9010000 /* V9.1.0.0                            */
 | |
| #define SQL_FUTUREL            9999999 /* Future Release                      */
 | |
| 
 | |
| /* System Constants                                                           */
 | |
| 
 | |
| #ifndef   SQL_RC_OK
 | |
| #define SQL_RC_OK              0       /* successful execution                */
 | |
| #endif
 | |
| 
 | |
| #define SQL_KEYPMAX            64      /* Maximum nbr of key parts in Index   */
 | |
| #define SQL_KEYLMAX            8192    /* Maximum key length                  */
 | |
| #define SQL_KEYLMAX_4KPAGE     1024    /* Maximum key length for 4K page      */
 | |
| #define SQL_KEYLMAX_8KPAGE     2048    /* Maximum key length for 8K page      */
 | |
| #define SQL_KEYLMAX_16KPAGE    4096    /* Maximum key length for 16K page     */
 | |
| #define SQL_KEYLMAX_32KPAGE    8192    /* Maximum key length for 32K page     */
 | |
| #define SQL_SORTFLDLMT         32677   /* Maximum size of field for sort      */
 | |
| #define SQL_MAXRECL_4K         4005    /* Maximum record length on a 4K page  */
 | |
| #define SQL_MAXRECL_8K         8101    /* Maximum record length on a 8K page  */
 | |
| #define SQL_MAXRECL            32677   /* Maximum record length               */
 | |
| #define SQL_MAXTABLES          15      /* Maximum nbr of tables in a SELECT   */
 | |
| #define SQL_MAXVARS_STMT       32767   /* Maximum nbr of Host Vars per stmt   */
 | |
| #define SQL_MAXCOLS            3000    /* Internal max nbr of columns in a    */
 | |
|                                        /* table                               */
 | |
| #define SQL_MAXCOLS_EXT        1012    /* External max nbr of columns in a    */
 | |
|                                        /* table                               */
 | |
| #define SQL_MAXSEL_ITEMS       1012    /* Maximum nbr of items in a SELECT    */
 | |
| #define SQL_MAXPARMS           90      /* Maximum nbr of parms in a function  */
 | |
| #define SQL_MAX_STMT_SIZ       2097152 /* Maximum statement size              */
 | |
| 
 | |
| #define SQL_SMALL_LENGTH       2       /* Size of a SMALLINT                  */
 | |
| #define SQL_MAXSMALLVAL        32767   /* Maximum value of a SMALLINT         */
 | |
| #define   SQL_MINSMALLVAL (-(SQL_MAXSMALLVAL)-1) /* Minimum value of a SMALLINT */
 | |
| #define SQL_INT_LENGTH         4       /* Size of an INTEGER                  */
 | |
| #define SQL_MAXINTVAL          2147483647 /* Maximum value of an INTEGER      */
 | |
| #define   SQL_MININTVAL (-(SQL_MAXINTVAL)-1) /* Minimum value of an INTEGER  */
 | |
| 
 | |
| #define SQL_BIGINT_LENGTH      8       /*           Size of a BIGINT          */
 | |
| #ifndef SQL_NO_NATIVE_BIGINT_SUPPORT
 | |
| #define SQL_MAXBIGINTVAL DB2_CONSTRUCT_BIGINT_CONSTANT(9223372036854775807)  /* Maximum value of a BIGINT */
 | |
| #define SQL_MINBIGINTVAL (-(SQL_MAXBIGINTVAL)-1) /* Minimum value of a BIGINT */
 | |
| #endif
 | |
| 
 | |
| #define SQL_FLOAT_LENGTH       8       /* Size of a FLOAT                     */
 | |
| #define SQL_FLOAT4_LENGTH      4       /* Size of a 4-byte FLOAT              */
 | |
| #define SQL_MAXSFLTPREC        24      /* Maximum prec for small float        */
 | |
| #define SQL_MINSFLTPREC        1       /* Minimum prec for small float        */
 | |
| #define SQL_MAXFLOATPREC       53      /* Minimum prec for any float          */
 | |
| #define SQL_DEFDEC_PRECISION   5       /* Default precision for DECIMAL       */
 | |
| #define SQL_DEFDEC_SCALE       0       /* Default scale for DECIMAL           */
 | |
| #define SQL_MAXDECIMAL         31      /* Maximum scale/prec. for DECIMAL     */
 | |
| #define SQL_DEFCHAR            1       /* Default length for a CHAR           */
 | |
| #define SQL_DEFWCHAR           1       /* Default length for a graphic        */
 | |
| #define SQL_MAXCHAR            254     /* Maximum length of a CHAR            */
 | |
| #define SQL_MAXLSTR            255     /* Maximum length of an LSTRING        */
 | |
| #define SQL_MAXVCHAR           (SQL_MAXRECL - 5) /* Maximum length of a       */
 | |
|                                        /* VARCHAR                             */
 | |
| #define SQL_MAXVGRAPH          SQL_MAXVCHAR/2 /* Maximum length of a          */
 | |
|                                        /* VARGRAPHIC                          */
 | |
| #define SQL_MAXBLOB            2147483647 /* Max. length of a BLOB host var   */
 | |
| #define SQL_MAXCLOB            2147483647 /* Max. length of a CLOB host var   */
 | |
| #define SQL_MAXDBCLOB          1073741823 /* Max. length of an DBCLOB host    */
 | |
|                                        /* var                                 */
 | |
| #define SQL_LOBLOCATOR_LEN     4       /* Length of a LOB locator host var    */
 | |
| #define SQL_LOBFILE_LEN        267     /* Length of a LOB file host var       */
 | |
| #define SQL_VCHAROH            4       /* Overhead for VARCHAR in record      */
 | |
| #define SQL_VARCOL_OH          4       /* Overhead for variable length type   */
 | |
|                                        /* in record                           */
 | |
| #define SQL_VARKEY_OH          2       /* Overhead for variable keyparts      */
 | |
| #define SQL_LONGMAX            32700   /* Maximum length of a LONG VARCHAR    */
 | |
| #define SQL_LONGGRMAX          16350   /* Max. length of a LONG VARGRAPHIC    */
 | |
| #define SQL_LVCHAROH           24      /* Overhead for LONG VARCHAR in        */
 | |
|                                        /* record                              */
 | |
| #define SQL_LOBCHAROH          312     /* Overhead for LOB in record          */
 | |
| #define SQL_BLOB_MAXLEN        2147483647 /* BLOB maximum length, in bytes    */
 | |
| #define SQL_CLOB_MAXLEN        2147483647 /* CLOB maximum length, in chars    */
 | |
| #define SQL_DBCLOB_MAXLEN      1073741823 /* maxlen for dbcs lobs             */
 | |
| #define SQL_TIME_LENGTH        3       /* Size of a TIME field                */
 | |
| #define SQL_TIME_STRLEN        8       /* Size of a TIME field output         */
 | |
| #define SQL_TIME_MINSTRLEN     5       /* Size of a non-USA TIME field        */
 | |
|                                        /* output without seconds              */
 | |
| #define SQL_DATE_LENGTH        4       /* Size of a DATE field                */
 | |
| #define SQL_DATE_STRLEN        10      /* Size of a DATE field output         */
 | |
| #define SQL_STAMP_LENGTH       10      /* Size of a TIMESTAMP field           */
 | |
| #define SQL_STAMP_STRLEN       26      /* Size of a TIMESTAMP field output    */
 | |
| #define SQL_STAMP_MINSTRLEN    19      /* Size of a TIMESTAMP field output    */
 | |
|                                        /* without microseconds                */
 | |
| #define SQL_BOOLEAN_LENGTH     1       /* Size of a BOOLEAN field             */
 | |
| #define SQL_DATALINK_LENGTH    254     /* Size of a DATALINK field            */
 | |
| #define SQL_IND_LENGTH         2       /* Size of an indicator value          */
 | |
| 
 | |
| #define SQL_DECFLOAT16_LENGTH  8       /* Size of a DECFLOAT16 field          */
 | |
| #define SQL_DECFLOAT34_LENGTH  16      /* Size of a DECFLOAT34 field          */
 | |
| #define SQL_MAXDECFLOAT        34      /* Maximum precision for DECFLOAT      */
 | |
| 
 | |
| #define SQL_MAX_PNAME_LENGTH   254     /* Max size of Stored Proc Name        */
 | |
| #define SQL_MAX_IDENT          128     /* Maximum length of Identifer         */
 | |
| #define SQL_LG_IDENT           18      /* Maximum length of Long Identifer    */
 | |
| #define SQL_SH_IDENT           8       /* Maximum length of Short Identifer   */
 | |
| #define SQL_MN_IDENT           1       /* Minimum length of Identifiers       */
 | |
| #define SQL_MAX_VAR_NAME       255     /* Max size of Host Variable Name      */
 | |
| #define SQL_PDB_MAP_SIZE       4096    /* Number of partitions in a pmap      */
 | |
| #define SQL_MAX_NUM_PART_KEYS  500     /* Max # of Partition Keys             */
 | |
| #define SQL_ZONEDDECIMAL_FORMAT 0x20   /* decimal columns for sqlugrpn are    */
 | |
|                                        /* in zoneddecimal format              */
 | |
| #define SQL_IMPLIEDDECIMAL_FORMAT 0x10 /* decimal columns for sqlugrpn are    */
 | |
|                                        /* in implieddecimal format            */
 | |
| #define SQL_BINARYNUMERICS_FORMAT 0x4  /* numeric columns for sqlugrpn are    */
 | |
|                                        /* in binary format                    */
 | |
| #define SQL_PACKEDDECIMAL_FORMAT 0x8   /* decimal columns for sqlugrpn are    */
 | |
|                                        /* in packeddecimal format             */
 | |
| #define SQL_CHARSTRING_FORMAT  0x0     /* numeric/decimal columns for         */
 | |
|                                        /* sqlugrpn are in character string    */
 | |
|                                        /* format                              */
 | |
| #define SQL_KILO_VALUE         1024    /* # of bytes in a kilobyte            */
 | |
| #define SQL_MEGA_VALUE         1048576 /* # of bytes in a megabyte            */
 | |
| #define SQL_GIGA_VALUE         1073741824 /* # of bytes in a gigabyte         */
 | |
| 
 | |
| #define SQLB_MAX_CONTAIN_NAME_SZ 256   /* size of container name for api's    */
 | |
|                                        /* (includes 1 byte for C NULL         */
 | |
|                                        /* terminator)                         */
 | |
| /* System types                                                               */
 | |
| typedef signed short SQL_PDB_NODE_TYPE;/* Datatype of PDB node               */
 | |
| typedef int          SQL_PDB_PORT_TYPE;/* Datatype of PDB port               */
 | |
| #define SQL_PDB_MAX_NUM_NODE   1000    /* limit for max. # of nodes           */
 | |
| /* information related to logical node name                                   */
 | |
| #define SQL_PDB_NODE_NUM_DIGIT 4       /* no. of digits for node number in    */
 | |
|                                        /* node name                           */
 | |
| #define SQL_PDB_NODE_NAME_LEN  8       /* length of logical node name         */
 | |
| #define SQL_NODE_NUM_TO_NAME(name_p,node_num) \
 | |
|         0 <= node_num ? sprintf(name_p,"NODE%.*d", SQL_PDB_NODE_NUM_DIGIT, node_num) : \
 | |
|                         sprintf(name_p,"NODE%.*d", SQL_PDB_NODE_NUM_DIGIT-1, node_num)
 | |
| /* Codepages                                                                  */
 | |
| #define SQL_CP_367             367     /* Codepage 367 - EUC single byte      */
 | |
| #define SQL_CP_420             420     /* CCSID x01A4, (CP420, ST4)           */
 | |
| #define SQL_CP_424             424     /* CCSID x01A8, (CP424, ST4)           */
 | |
| #define SQL_CP_425             425     /* CCSID x01A9, (CP420, ST5)           */
 | |
| #define SQL_CP_437             437     /* Codepage 437 - US, Europe           */
 | |
| #define SQL_CP_737             737     /* Codepage 737 - WIN Greece           */
 | |
| #define SQL_CP_806             806     /* Codepage 806 - ISCII, India         */
 | |
| #define SQL_CP_813             813     /* Codepage 813 - AIX Greece           */
 | |
| #define SQL_CP_819             819     /* Codepage 819 - ISO 8859-1           */
 | |
| #define SQL_CP_850             850     /* Codepage 850 - International PC     */
 | |
| #define SQL_CP_855             855     /* Codepage 855 - OS2 Cyrillic         */
 | |
| #define SQL_CP_852             852     /* Codepage 852 - OS2 Latin2           */
 | |
| #define SQL_CP_856             856     /* Codepage 856 - Hebrew               */
 | |
| #define SQL_CP_857             857     /* Codepage 857 - OS2 Turkey           */
 | |
| #define SQL_CP_860             860     /* Codepage 860 - Portuguese           */
 | |
| #define SQL_CP_862             862     /* Codepage 862 - OS2 Hebrew           */
 | |
| #define SQL_CP_863             863     /* Codepage 863 - Canadian-French      */
 | |
| #define SQL_CP_864             864     /* Codepage 864 - OS2 Arabic           */
 | |
| #define SQL_CP_865             865     /* Codepage 865 - Norway, Denmark      */
 | |
| #define SQL_CP_866             866     /* Codepage 866 - Russia               */
 | |
| #define SQL_CP_867             867     /* Codepage 867 - OS2 Hebrew           */
 | |
| #define SQL_CP_869             869     /* Codepage 869 - OS2 Greece           */
 | |
| #define SQL_CP_874             874     /* Codepage 874 - OS2/AIX Thailand     */
 | |
| #define SQL_CP_878             878     /* Codepage 878 - KOI-8R Russia        */
 | |
| #define SQL_CP_891             891     /* Codepage 891 - Korean               */
 | |
| #define SQL_CP_897             897     /* Codepage 897 - Japanese             */
 | |
| #define SQL_CP_903             903     /* Codepage 903 - Chinese              */
 | |
| #define SQL_CP_904             904     /* Codepage 904 - Taiwan               */
 | |
| #define SQL_CP_912             912     /* Codepage 912 - AIX Latin2           */
 | |
| #define SQL_CP_915             915     /* Codepage 915 - AIX Cyrillic         */
 | |
| #define SQL_CP_916             916     /* Codepage 916 - AIX Hebrew           */
 | |
| #define SQL_CP_920             920     /* Codepage 920 - AIX Turkey           */
 | |
| #define SQL_CP_921             921     /* Codepage 921 - Latvia, Lithuania    */
 | |
| #define SQL_CP_922             922     /* Codepage 922 - Estonia              */
 | |
| #define SQL_CP_923             923     /* Codepage 923 - ISO 8859-15          */
 | |
| #define SQL_CP_1004            1004    /* Codepage 1004 - MS-WINDOWS          */
 | |
| #define SQL_CP_1040            1040    /* Codepage 1040 - Extended Korean     */
 | |
| #define SQL_CP_1041            1041    /* Codepage 1041 - Extended Japanese   */
 | |
| #define SQL_CP_1042            1042    /* Codepage 1042 - Extended Chinese    */
 | |
| #define SQL_CP_1043            1043    /* Codepage 1043 - Extended Taiwan     */
 | |
| #define SQL_CP_1046            1046    /* Codepage 1046 - AIX Arabic          */
 | |
| #define SQL_CP_1051            1051    /* Codepage 1051 - HP Roman8           */
 | |
| #define SQL_CP_1088            1088    /* Codepage 1088 - Korea Std           */
 | |
| #define SQL_CP_1089            1089    /* Codepage 1089 - AIX Arabic          */
 | |
| #define SQL_CP_1114            1114    /* Codepage 1114 - Big-5 & GBK         */
 | |
| #define SQL_CP_1115            1115    /* Codepage 1115 - China GB            */
 | |
| #define SQL_CP_1124            1124    /* Codepage 1124 - AIX Ukraine         */
 | |
| #define SQL_CP_1125            1125    /* Codepage 1125 - OS/2 Ukraine        */
 | |
| #define SQL_CP_1126            1126    /* Codepage 1126 - Windows Korean Std  */
 | |
| #define SQL_CP_1129            1129    /* Codepage 1129 - Vietnamese          */
 | |
| #define SQL_CP_1131            1131    /* Codepage 1131 - OS/2 Belarus        */
 | |
| #define SQL_CP_1163            1163    /* Codepage 1163 - Vietnamese          */
 | |
| #define SQL_CP_1167            1167    /* KOI8-RU - Belarus                   */
 | |
| #define SQL_CP_1168            1168    /* KOI8-U - Ukraine                    */
 | |
| #define SQL_CP_1250            1250    /* Codepage 1250 - Windows Latin-2     */
 | |
| #define SQL_CP_1251            1251    /* Codepage 1251 - Windows Cyrillic    */
 | |
| #define SQL_CP_1252            1252    /* Codepage 1252 - Windows Latin-1     */
 | |
| #define SQL_CP_1253            1253    /* Codepage 1253 - Windows Greek       */
 | |
| #define SQL_CP_1254            1254    /* Codepage 1254 - Windows Turkish     */
 | |
| #define SQL_CP_1255            1255    /* Codepage 1255 - Windows Hebrew      */
 | |
| #define SQL_CP_1256            1256    /* Codepage 1256 - Windows Arabic      */
 | |
| #define SQL_CP_1257            1257    /* Codepage 1257 - Windows Baltic      */
 | |
| #define SQL_CP_1258            1258    /* Codepage 1258 - Windows Vietnamese  */
 | |
| #define SQL_CP_1275            1275    /* Codepage 1275 - Mac Latin-1         */
 | |
| #define SQL_CP_1280            1280    /* Codepage 1280 - Mac Greek           */
 | |
| #define SQL_CP_1281            1281    /* Codepage 1281 - Mac Turkish         */
 | |
| #define SQL_CP_1282            1282    /* Codepage 1282 - Mac Latin-2         */
 | |
| #define SQL_CP_1283            1283    /* Codepage 1283 - Mac Cyrillic        */
 | |
| #define SQL_CP_62208           62208   /* CCSID xF300, (CP856, ST4)           */
 | |
| #define SQL_CP_62209           62209   /* CCSID xF301, (CP862, ST4)           */
 | |
| #define SQL_CP_62210           62210   /* CCSID xF302, (CP916, ST4)           */
 | |
| #define SQL_CP_62213           62213   /* CCSID xF305, (CP862, ST5)           */
 | |
| #define SQL_CP_62220           62220   /* CCSID xF30C, (CP856, ST6)           */
 | |
| #define SQL_CP_62221           62221   /* CCSID xF30D, (CP862, ST6)           */
 | |
| #define SQL_CP_62222           62222   /* CCSID xF30E, (CP916, ST6)           */
 | |
| #define SQL_CP_62223           62223   /* CCSID xF30F, (CP1255, ST6)          */
 | |
| #define SQL_CP_62225           62225   /* CCSID xF311, (CP864, ST6)           */
 | |
| #define SQL_CP_62226           62226   /* CCSID xF312, (CP1046, ST6)          */
 | |
| #define SQL_CP_62227           62227   /* CCSID xF313, (CP1089, ST6)          */
 | |
| #define SQL_CP_62228           62228   /* CCSID xF314, (CP1256, ST6)          */
 | |
| #define SQL_CP_62230           62230   /* CCSID xF316, (CP856, ST8)           */
 | |
| #define SQL_CP_62231           62231   /* CCSID xF317, (CP862, ST8)           */
 | |
| #define SQL_CP_62232           62232   /* CCSID xF318, (CP916, ST8)           */
 | |
| #define SQL_CP_62236           62236   /* CCSID xF31C, (CP856, ST10)          */
 | |
| #define SQL_CP_62238           62238   /* CCSID xF31E, (CP916, ST10)          */
 | |
| #define SQL_CP_62239           62239   /* CCSID xF31F, (CP1255, ST10)         */
 | |
| #define SQL_CP_62241           62241   /* CCSID xF321, (CP856, ST11)          */
 | |
| #define SQL_CP_62242           62242   /* CCSID xF322, (CP862, ST11)          */
 | |
| #define SQL_CP_62243           62243   /* CCSID xF323, (CP916, ST11)          */
 | |
| #define SQL_CP_62244           62244   /* CCSID xF324, (CP1255, ST11)         */
 | |
| #define SQL_CP_UNKNOWN         57344   /* CCSID xE000, (Unknown or            */
 | |
|                                        /* unsupported)                        */
 | |
| #define SQL_CP_1162            1162    /* CCSID 1162 - Windows Thailand       */
 | |
|                                        /* (with Euro)                         */
 | |
| #define SQL_CP_5222            5222    /* CCSID 5222 - Windows Korea          */
 | |
| #define SQL_CP_5346            5346    /* CCSID 5346 - Windows Latin-2 (v2    */
 | |
|                                        /* with Euro)                          */
 | |
| #define SQL_CP_5347            5347    /* CCSID 5347 - Windows Cyrillic (v2   */
 | |
|                                        /* with Euro)                          */
 | |
| #define SQL_CP_5348            5348    /* CCSID 5348 - Windows Latin-1 (v2    */
 | |
|                                        /* with Euro)                          */
 | |
| #define SQL_CP_5349            5349    /* CCSID 5349 - Windows Greece (v2     */
 | |
|                                        /* with Euro)                          */
 | |
| #define SQL_CP_5350            5350    /* CCSID 5350 - Windows Turkey (v2     */
 | |
|                                        /* with Euro)                          */
 | |
| #define SQL_CP_5351            5351    /* CCSID 5351 - Windows Hebrew ST5     */
 | |
|                                        /* (v2 with Euro)                      */
 | |
| #define SQL_CP_5352            5352    /* CCSID 5352 - Windows Arabic ST5     */
 | |
|                                        /* (v2 with Euro)                      */
 | |
| #define SQL_CP_5353            5353    /* CCSID 5353 - Windows Baltic (v2     */
 | |
|                                        /* with Euro)                          */
 | |
| #define SQL_CP_5354            5354    /* CCSID 5354 - Windows Vietnam (v2    */
 | |
|                                        /* with Euro)                          */
 | |
| #define SQL_CP_62215           62215   /* CCSID 62215 - Windows Hebrew ST4    */
 | |
| #define SQL_CP_62237           62237   /* CCSID 62237 - Windows Hebrew ST8    */
 | |
| #define SQL_CP_895             895     /* CCSID 895 - Japan 7-bit Latin       */
 | |
| #define SQL_CP_901             901     /* CCSID 901 - Baltic 8-bit (with      */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_902             902     /* CCSID 902 - Estonia ISO-8 (with     */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_1008            1008    /* CCSID 1008 - Arabic 8-bit ISO       */
 | |
|                                        /* ASCII                               */
 | |
| #define SQL_CP_1155            1155    /* CCSID 1155 - Turkey Latin-5 (with   */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_4909            4909    /* CCSID 4909 - Greece, Latin ISO-8    */
 | |
|                                        /* (with Euro)                         */
 | |
| #define SQL_CP_5104            5104    /* CCSID 5104 - Arabic 8-bit ISO       */
 | |
|                                        /* ASCII (with Euro)                   */
 | |
| #define SQL_CP_9005            9005    /* CCSID 9005 - Greece, Latin ISO      */
 | |
|                                        /* 8859-7:2003 (with Euro)             */
 | |
| #define SQL_CP_21427           21427   /* CCSID 21427 - Taiwan IBM Big-5      */
 | |
|                                        /* (with 13493 CNS, 566, 6204 UDC,     */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_62212           62212   /* CCSID 62212 - CP867 Hebrew ST10     */
 | |
| #define SQL_CP_62214           62214   /* CCSID 62214 - CP867 Hebrew ST5      */
 | |
| #define SQL_CP_62216           62216   /* CCSID 62216 - CP867 Hebrew ST6      */
 | |
| #define SQL_CP_62217           62217   /* CCSID 62217 - CP867 Hebrew ST8      */
 | |
| #define SQL_CP_62219           62219   /* CCSID 62219 - CP867 Hebrew ST11     */
 | |
| #define SQL_CP_62240           62240   /* CCSID 62240 - CP856 Hebrew ST11     */
 | |
| 
 | |
| /* DBCS Codepages                                                             */
 | |
| #define SQL_CP_926             926     /* Codepage 926 - Korean               */
 | |
| #define SQL_CP_951             951     /* Codepage 951 - New Korean           */
 | |
| #define SQL_CP_301             301     /* Codepage 301 - Japanese             */
 | |
| #define SQL_CP_928             928     /* Codepage 928 - Chinese              */
 | |
| #define SQL_CP_927             927     /* Codepage 927 - Taiwan               */
 | |
| #define SQL_CP_941             941     /* Codepage 941 - Japanese             */
 | |
| #define SQL_CP_947             947     /* Codepage 947 - Taiwan Big-5         */
 | |
| #define SQL_CP_971             971     /* Codepage 971 - Korean 5601          */
 | |
| #define SQL_CP_1351            1351    /* Codepage 1351 - Japanese            */
 | |
| #define SQL_CP_1362            1362    /* Codepage 1362 - Korean Windows      */
 | |
| #define SQL_CP_1380            1380    /* Codepage1380 - China GB             */
 | |
| #define SQL_CP_1382            1382    /* Codepage1382 - Simp Chinese GB      */
 | |
| #define SQL_CP_1385            1385    /* Codepage1385 - Simp Chinese GBK     */
 | |
| #define SQL_CP_1393            1393    /* Codepage 1393 - Japanese            */
 | |
| 
 | |
| /* Combined Codepages                                                         */
 | |
| #define SQL_CP_934             934     /* Codepage 891 + 926 - Korean         */
 | |
| #define SQL_CP_949             949     /* CP 1088 + 951 - Korean Std          */
 | |
| #define SQL_CP_932             932     /* Codepage 897 + 301 - Japanese       */
 | |
| #define SQL_CP_936             936     /* Codepage 903 + 928 - Chinese        */
 | |
| #define SQL_CP_938             938     /* Codepage 904 + 927 - Taiwan         */
 | |
| #define SQL_CP_944             944     /* Codepage 1040 + 926 - Ext.Korean    */
 | |
| #define SQL_CP_942             942     /* Codepage 1041 + 301 - Ext.Japanese  */
 | |
| #define SQL_CP_943             943     /* Codepage  897 + 941 - Ext.Japanese  */
 | |
| #define SQL_CP_946             946     /* Codepage 1042 + 928 - Ext.Chinese   */
 | |
| #define SQL_CP_948             948     /* Codepage 1043 + 927 - Ext.Taiwan    */
 | |
| #define SQL_CP_950             950     /* Codepage 1114 + 947 - Taiwan Big5   */
 | |
| #define SQL_CP_954             954     /* Codepage 954 + 13488 - euc Japan    */
 | |
| #define SQL_CP_964             964     /* Codepage 964 + 13488 - euc Taiwan   */
 | |
| #define SQL_CP_970             970     /* Codepage  367 + 971 - Korean 5601   */
 | |
| #define SQL_CP_1363            1363    /* Codepage 1363 - Korean Windows      */
 | |
| #define SQL_CP_1381            1381    /* Codepage 1115 +1380 - China GB      */
 | |
| #define SQL_CP_1383            1383    /* Codepage  367 +1382 - Chinese GB    */
 | |
| #define SQL_CP_1386            1386    /* Codepage  1114 +1385 - Chinese GBK  */
 | |
| #define SQL_CP_5488            5488    /* Codepage  - Chinese GB18030         */
 | |
| #define SQL_CP_1392            1392    /* Codepage  - Chinese GB18030         */
 | |
| #define SQL_CP_1394            1394    /* Codepage  - Japanese Shift          */
 | |
|                                        /* JISX0213                            */
 | |
| #define SQL_CP_5039            5039    /* Codepage  1041 + 1351 - Japanese    */
 | |
| #define SQL_CP_8612            8612    /* CCSID x21A4, (CP420, ST5)           */
 | |
| #define SQL_CP_62218           62218   /* CCSID xF30A, (CP864, ST8)           */
 | |
| #define SQL_CP_62224           62224   /* CCSID xF310, (CP420, ST6)           */
 | |
| #define SQL_CP_62233           62233   /* CCSID xF319, (CP420, ST8)           */
 | |
| #define SQL_CP_62234           62234   /* CCSID xF31A, (CP1255, ST9)          */
 | |
| #define SQL_CP_62246           62246   /* CCSID xF326, (CP1046, ST8)          */
 | |
| #define SQL_CP_62247           62247   /* CCSID xF327, (CP1046, ST9)          */
 | |
| #define SQL_CP_62248           62248   /* CCSID xF328, (CP1046, ST4)          */
 | |
| #define SQL_CP_62249           62249   /* CCSID xF329, (CP1046, ST2)          */
 | |
| #define SQL_CP_62250           62250   /* CCSID xF32A, (CP420, ST12)          */
 | |
| 
 | |
| /* Unicode CCSIDs                                                             */
 | |
| #define SQL_CP_1200            1200    /* Codepage1200 - UCS-2 (big-endian)   */
 | |
| #define SQL_CP_1202            1202    /* Codepage1202 - UCS-2 (little        */
 | |
|                                        /* endian)                             */
 | |
| #define SQL_CP_1204            1204    /* Codepage1204 - UCS-2 (BOM)          */
 | |
| #define SQL_CP_1208            1208    /* Codepage1208 - UTF-8                */
 | |
| #define SQL_CP_1232            1232    /* Codepage1232 - UTF-32 (big-endian)  */
 | |
| #define SQL_CP_1234            1234    /* Codepage1234 - UTF-32 (little       */
 | |
|                                        /* endian)                             */
 | |
| #define SQL_CP_UTF32BE         SQL_CP_1232 /* Big-endian UTF-32               */
 | |
| #define SQL_CP_UTF32LE         SQL_CP_1234 /* Little-endian UTF-32            */
 | |
| #define SQL_CP_1236            1236    /* Codepage1236 - UTF-32 (BOM)         */
 | |
| #define SQL_CP_13488           13488   /* Codepg13488 - UCS-2 (Unicode v2,    */
 | |
|                                        /* big-endian)                         */
 | |
| #define SQL_CP_13490           13490   /* Codepg13490 - UCS-2 (Unicode v2,    */
 | |
|                                        /* little-endiant)                     */
 | |
| #define SQL_CP_17584           17584   /* Codepg17584 - UCS-2 (Unicode v3,    */
 | |
|                                        /* big-endian)                         */
 | |
| #define SQL_CP_17586           17586   /* Codepg17586 - UCS-2 (Unicode v3,    */
 | |
|                                        /* little-endiant)                     */
 | |
| #define SQL_CP_UTF8            SQL_CP_1208 /* UTF-8                           */
 | |
| #define SQL_CP_UTF16BE         SQL_CP_1200 /* Big-endian UTF-16               */
 | |
| #define SQL_CP_UTF16LE         SQL_CP_1202 /* Little-endian UTF-16            */
 | |
| 
 | |
| /* EBCDIC, PCDATA and ECECP CCSIDs                                            */
 | |
| #define SQL_CP_37              37      /* CCSID 37 - EBCDIC - Common          */
 | |
|                                        /* European                            */
 | |
| #define SQL_CP_273             273     /* CCSID 273 - EBCDIC Austria,         */
 | |
|                                        /* Germany                             */
 | |
| #define SQL_CP_274             274     /* CCSID 274 - EBCDIC Belgium          */
 | |
| #define SQL_CP_277             277     /* CCSID 277 - EBCDIC Denmark, Norway  */
 | |
| #define SQL_CP_278             278     /* CCSID 278 - EBCDIC Finland, Sweden  */
 | |
| #define SQL_CP_280             280     /* CCSID 280 - EBCDIC Italy            */
 | |
| #define SQL_CP_284             284     /* CCSID 284 - EBCDIC Spain, Latin     */
 | |
|                                        /* America                             */
 | |
| #define SQL_CP_285             285     /* CCSID 285 - EBCDIC UK               */
 | |
| #define SQL_CP_290             290     /* CCSID 290 - EBCDIC Japan            */
 | |
| #define SQL_CP_297             297     /* CCSID 297 - EBCDIC France           */
 | |
| #define SQL_CP_300             300     /* CCSID 300 - EBCDIC Japan DBCS       */
 | |
| #define SQL_CP_423             423     /* CCSID 423 - EBCDIC Greece           */
 | |
| #define SQL_CP_500             500     /* CCSID 500 - EBCDIC Latin-1          */
 | |
| #define SQL_CP_803             803     /* CCSID 803 - EBCDIC Hebrew Set-A,    */
 | |
|                                        /* ST4                                 */
 | |
| #define SQL_CP_833             833     /* CCSID 833 - EBCDIC Korea Extended   */
 | |
|                                        /* SBCS                                */
 | |
| #define SQL_CP_834             834     /* CCSID 834 - EBCDIC Korea DBCS       */
 | |
|                                        /* (with 1880 UDC)                     */
 | |
| #define SQL_CP_835             835     /* CCSID 835 - EBCDIC Taiwan DBCS      */
 | |
|                                        /* (with 6204 UDC)                     */
 | |
| #define SQL_CP_836             836     /* CCSID 836 - EBCDIC China SBCS       */
 | |
| #define SQL_CP_837             837     /* CCSID 837 - EBCDIC China DBCS       */
 | |
|                                        /* (with 1880 UDC)                     */
 | |
| #define SQL_CP_838             838     /* CCSID 838 - EBCDIC Thailand         */
 | |
|                                        /* Extended SBCS                       */
 | |
| #define SQL_CP_870             870     /* CCSID 870 - EBCDIC Latin-2          */
 | |
| #define SQL_CP_871             871     /* CCSID 871 - EBCDIC Iceland          */
 | |
| #define SQL_CP_875             875     /* CCSID 875 - EBCDIC Greece           */
 | |
| #define SQL_CP_924             924     /* CCSID 924 - EBCDIC Latin-9          */
 | |
| #define SQL_CP_930             930     /* CCSID 930 - EBCDIC Japan mix (with  */
 | |
|                                        /* 4370 UDC, Extended SBCS)            */
 | |
| #define SQL_CP_933             933     /* CCSID 933 - EBCDIC Korea mix (with  */
 | |
|                                        /* 1880 UDC, Extended SBCS)            */
 | |
| #define SQL_CP_935             935     /* CCSID 935 - EBCDIC China mix (with  */
 | |
|                                        /* 1880 UDC, Extended SBCS)            */
 | |
| #define SQL_CP_937             937     /* CCSID 937 - EBCDIC Taiwan mix       */
 | |
|                                        /* (with 6204 UDC, Extended SBCS)      */
 | |
| #define SQL_CP_939             939     /* CCSID 939 - EBCDIC Japan mix (with  */
 | |
|                                        /* 4370 UDC, Extended SBCS)            */
 | |
| #define SQL_CP_1025            1025    /* CCSID 1025 - EBCDIC Cyrillic        */
 | |
| #define SQL_CP_1026            1026    /* CCSID 1026 - EBCDIC Turkey Latin-5  */
 | |
| #define SQL_CP_1027            1027    /* CCSID 1027 - EBCDIC Japan Extended  */
 | |
|                                        /* SBCS                                */
 | |
| #define SQL_CP_1047            1047    /* CCSID 1047 - EBCDIC Open Systems    */
 | |
|                                        /* Latin-1                             */
 | |
| #define SQL_CP_1112            1112    /* CCSID 1112 - EBCDIC Baltic          */
 | |
| #define SQL_CP_1122            1122    /* CCSID 1122 - EBCDIC Estonia         */
 | |
| #define SQL_CP_1123            1123    /* CCSID 1123 - EBCDIC Ukraine         */
 | |
| #define SQL_CP_1130            1130    /* CCSID 1130 - EBCDIC Vietnam         */
 | |
| #define SQL_CP_1137            1137    /* CCSID 1137 - EBCDIC Devangari       */
 | |
|                                        /* (Based on Unicode)                  */
 | |
| #define SQL_CP_1153            1153    /* CCSID 1153 - EBCDIC Latin-2 (with   */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_1154            1154    /* CCSID 1154 - EBCDIC Cyrillic (with  */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_1156            1156    /* CCSID 1156 - EBCDIC Baltic          */
 | |
| #define SQL_CP_1157            1157    /* CCSID 1157 - EBCDIC Estonia         */
 | |
| #define SQL_CP_1158            1158    /* CCSID 1158 - EBCDIC Ukraine         */
 | |
| #define SQL_CP_1159            1159    /* CCSID 1159 - EBCDIC Taiwan          */
 | |
|                                        /* Extended SBCS (with Euro)           */
 | |
| #define SQL_CP_1160            1160    /* CCSID 1160 - EBCDIC Thailanf (with  */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_1164            1164    /* CCSID 1164 - EBCDIC Vietnam (with   */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_1364            1364    /* CCSID 1364 - EBCDIC Korea mix       */
 | |
|                                        /* (with Full Hangul)                  */
 | |
| #define SQL_CP_1371            1371    /* CCSID 1371 - EBCDIC Taiwan mix      */
 | |
|                                        /* (with 6204 UDC, Extended SBCS)      */
 | |
| #define SQL_CP_1388            1388    /* CCSID 1388 - EBCDIC China mix       */
 | |
| #define SQL_CP_1390            1390    /* CCSID 1390 - EBCDIC Japan mix       */
 | |
|                                        /* (with 6205 UDC, Extended SBCS,      */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_1399            1399    /* CCSID 1399 - EBCDIC Japan max       */
 | |
|                                        /* (with 6205 UDC, Exnteded SBCS,      */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_4369            4369    /* CCSID 4369 - EBCDIC Austria,        */
 | |
|                                        /* German (DP94)                       */
 | |
| #define SQL_CP_4396            4396    /* CCSID 4396 - EBCDIC Japan DBCS      */
 | |
|                                        /* (with 1880 UCD)                     */
 | |
| #define SQL_CP_4899            4899    /* CCSID 4899 - EBCDIC Hebrew Set-A,   */
 | |
|                                        /* ST4 (with Euro, Sheqel)             */
 | |
| #define SQL_CP_4930            4930    /* CCSID 4930 - EBCDIC Korea DBCS      */
 | |
|                                        /* (with Full Hangul)                  */
 | |
| #define SQL_CP_4933            4933    /* CCSID 4933 - EBCDIC China DBCS      */
 | |
|                                        /* (with all GBK)                      */
 | |
| #define SQL_CP_4971            4971    /* CCSID 4971 - EBCDIC Greece (with    */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_5026            5026    /* CCSID 5026 - EBCDIC Japan mix       */
 | |
|                                        /* (with 1880 UDC, Extended SBCS)      */
 | |
| #define SQL_CP_5035            5035    /* CCSID 5035 - EBCDIC Japan mix       */
 | |
|                                        /* (with 1880 UDC, Extended SBCS)      */
 | |
| #define SQL_CP_5123            5123    /* CCSID 5123 - EBCDIC Japan Latin     */
 | |
|                                        /* (with Extended SBCS, Euro)          */
 | |
| #define SQL_CP_8482            8482    /* CCSID 8482 - EBCDIC Japan SBCS      */
 | |
|                                        /* (with Euro)                         */
 | |
| #define SQL_CP_8616            8616    /* CCSID 8616 - EBCDIC Hebrew subset   */
 | |
|                                        /* ST10                                */
 | |
| #define SQL_CP_9027            9027    /* CCSID 9027 - EBCDIC Taiwan (with    */
 | |
|                                        /* 6204 UDC, Euro)                     */
 | |
| #define SQL_CP_12708           12708   /* CCSID 12708 - EBCDIC Arabic ST7     */
 | |
| #define SQL_CP_12712           12712   /* CCSID 12712 - EBCDIC Hebrew ST10    */
 | |
|                                        /* (with Euro, Sheqel)                 */
 | |
| #define SQL_CP_13121           13121   /* CCSID 13121 - EBCDIC Korea (with    */
 | |
|                                        /* Extended SBCS)                      */
 | |
| #define SQL_CP_13124           13124   /* CCSID 13124 - EBCDIC China SBCS     */
 | |
| #define SQL_CP_16684           16684   /* CCSID 16684 - EBCDIC Japan (with    */
 | |
|                                        /* 6295 UDC, Euro)                     */
 | |
| #define SQL_CP_16804           16804   /* CCSID 16804 - EBCDIC Arabic ST4     */
 | |
|                                        /* (with Euro)                         */
 | |
| #define SQL_CP_28709           28709   /* CCSID 28709 - EBCDIC Taiwan SBCS    */
 | |
| #define SQL_CP_62211           62211   /* CCSID 62211 - EBCDIC Hebrew ST5     */
 | |
| #define SQL_CP_62229           62229   /* CCSID 62229 - EBCDIC Hebrew ST8     */
 | |
| #define SQL_CP_62235           62235   /* CCSID 62235 - EBCDIC Hebrew ST6     */
 | |
| #define SQL_CP_62245           62245   /* CCSID 62245 - EBCDIC Hebrew ST10    */
 | |
| #define SQL_CP_62251           62251   /* CCSID 62251 - zOS Arabic/Latin ST6  */
 | |
| #define SQL_CP_808             808     /* CCSID 808 - PCDATA Cyrillic         */
 | |
|                                        /* (Russian with Euro)                 */
 | |
| #define SQL_CP_848             848     /* CCSID 848 - PCDATA Uktaine (with    */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_849             849     /* CCSID 849 - PCDATA Belarus (with    */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_858             858     /* CCSID 858 - PCDATA Latin-1E (with   */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_872             872     /* CCSID 872 - PCDATA Cyrillic (with   */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_1161            1161    /* CCSID 1161 - PCDATA Thailand (with  */
 | |
|                                        /* Euero)                              */
 | |
| #define SQL_CP_1370            1370    /* CCSID 1370 - PCDATA Taiwan mix      */
 | |
|                                        /* (with Euro)                         */
 | |
| #define SQL_CP_5210            5210    /* CCSID 5210 - PCDATA China SBCS      */
 | |
| #define SQL_CP_9044            9044    /* CCSID 9044 - PCDATA Latin-2 (with   */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_9048            9048    /* CCSID 9048 - PCDATA Hebrew ST5      */
 | |
|                                        /* (with Euro, Sheqel)                 */
 | |
| #define SQL_CP_9049            9049    /* CCSID 9049 - PCDATA Turkey Latin-5  */
 | |
|                                        /* (with Euro)                         */
 | |
| #define SQL_CP_9061            9061    /* CCSID 9061 - PCDATA Greece (with    */
 | |
|                                        /* Euro)                               */
 | |
| #define SQL_CP_9238            9238    /* CCSID 9238 - PCDATA Arabic ST5      */
 | |
|                                        /* (with Euro)                         */
 | |
| #define SQL_CP_17248           17248   /* CCSID 17248 - PCDATA Arabic ST5     */
 | |
|                                        /* (with Euro)                         */
 | |
| #define SQL_CP_1140            1140    /* CCSID 1140 - ECECP Common           */
 | |
|                                        /* European, US, Canada                */
 | |
| #define SQL_CP_1141            1141    /* CCSID 1141 - ECECP Austria,         */
 | |
|                                        /* Germany                             */
 | |
| #define SQL_CP_1142            1142    /* CCSID 1142 - ECECP Denmakr, Norway  */
 | |
| #define SQL_CP_1143            1143    /* CCSID 1143 - ECECP Finalnd, Sweden  */
 | |
| #define SQL_CP_1144            1144    /* CCSID 1144 - ECECP Italy            */
 | |
| #define SQL_CP_1145            1145    /* CCSID 1145 - ECECP Spanish, Latin   */
 | |
|                                        /* America                             */
 | |
| #define SQL_CP_1146            1146    /* CCSID 1146 - ECECP UK               */
 | |
| #define SQL_CP_1147            1147    /* CCSID 1147 - ECECP France           */
 | |
| #define SQL_CP_1148            1148    /* CCSID 1148 - ECECP International 1  */
 | |
| #define SQL_CP_1149            1149    /* CCSID 1149 - ECECP Iceland          */
 | |
| #define SQL_CP_65535           65535   /* CCSID 65535 - Reserved              */
 | |
| 
 | |
| /* Datastream Types                                                           */
 | |
| #define SQL_SBC_PC             0       /* Single byte PC                      */
 | |
| #define SQL_JPN_PC             1       /* Japanese-PC                         */
 | |
| #define SQL_CHN_PC             2       /* Chinese-PC                          */
 | |
| #define SQL_KOR_PC             3       /* Korean-PC                           */
 | |
| #define SQL_KSC_PC             4       /* New Korean-PC                       */
 | |
| #define SQL_KR5_PC             5       /* Korean 5601                         */
 | |
| #define SQL_TWN_PC             6       /* Taiwan Big-5                        */
 | |
| #define SQL_CGB_PC             7       /* China GB                            */
 | |
| #define SQL_CGBA_PC            8       /* China GB on AIX                     */
 | |
| #define SQL_EUCJP_PC           9       /* Japan euc                           */
 | |
| #define SQL_EUCTW_PC           10      /* Taiwan euc                          */
 | |
| #define SQL_UCS2_PC            11      /* UCS-2                               */
 | |
| #define SQL_KSC2_PC            12      /* Korean Windows                      */
 | |
| #define SQL_CGBK_PC            13      /* China GBK                           */
 | |
| #define SQL_UTF8_PC            14      /* UTF-8                               */
 | |
| #define SQL_CGB18030_PC        15      /* China GB18030                       */
 | |
| #define SQL_UNKN_PC            255     /* Unknown                             */
 | |
| 
 | |
| /* AIX codeset & locale lengths                                               */
 | |
| #define SQL_CODESET_LEN        9
 | |
| #define SQL_LOCALE_LEN         5
 | |
| 
 | |
| /* Codeset & locale lengths for sqle_db_territory_info struct                 */
 | |
| #define SQL_CODESET_SIZE       17
 | |
| #define SQL_LOCALE_SIZE        33
 | |
| 
 | |
| /* SQLCA Constants                                                            */
 | |
| #ifndef SQL_RC_INVALID_SQLCA
 | |
| #endif
 | |
| 
 | |
| /* Size of SQLCA                                                              */
 | |
| #define SQLCA_SIZE             sizeof(struct sqlca)
 | |
| 
 | |
| /* SQL Error message token delimiter                                          */
 | |
| #define SQL_ERRMC_PRES ((char) 0xFF) /* delimiter for string entry */
 | |
| 
 | |
| /* Offset in SQLERRD - Diagnostic information                                 */
 | |
| #define SQL_ERRD_RC            0       /* return code                         */
 | |
| #define SQL_ERRD_REAS          1       /* reason code                         */
 | |
| #define SQL_ERRD_CNT           2       /* nbr rows inserted/updated/deleted   */
 | |
| #define SQL_ERRD_OPT_CARD      2       /* optimizer estimate of # rows        */
 | |
| #define SQL_ERRD_OPTM          3       /* obsolete -- do not use --           */
 | |
| #define SQL_ERRD_OPT_TOTCOST   3       /* optimzer estimate of total cost     */
 | |
| #define SQL_ERRD_DCNT          4       /* nbr of cascaded deletes/updates     */
 | |
| #define SQL_ERRD_LINE          4       /* line number for recompile error     */
 | |
| #define SQL_ERRD_AUTHTYPE      4       /* authentication type returned for    */
 | |
|                                        /* CONNECT/ATTACH                      */
 | |
| #define SQL_ERRD_DIAG          5       /* diagnostics                         */
 | |
| 
 | |
| /* Indexes in SQLWARN - Warning flags                                         */
 | |
| #define SQL_WARN_ANY           0       /* composite - set if any warnings     */
 | |
| #define SQL_WARN_TRUNC         1       /* string column truncated             */
 | |
| #define SQL_WARN_NUL           2       /* null values eliminated              */
 | |
| #define SQL_WARN_MISM          3       /* nbr of columns/host vars mismatch   */
 | |
| #define SQL_WARN_ALLR          4       /* no WHERE clause in update/delete    */
 | |
| #define SQL_WARN_ETO           5       /* error is tolerated                  */
 | |
| #define SQL_WARN_DATE          6       /* date has been truncated             */
 | |
| #define SQL_WARN_SUB           8       /* character conversion substitution   */
 | |
| #define SQL_WARN_NUL2          9       /* arithmetic error nulls eliminated   */
 | |
| #define SQL_WARN_SQLCA         10      /* SQLCA conversion error              */
 | |
| 
 | |
| /* Values for Warning flags in SQLWARN                                        */
 | |
| #define SQL_WARNING            'W'     /* warning indicator                   */
 | |
| #define SQL_NULL_TRN           'N'     /* null terminator truncated warning   */
 | |
| #define SQL_TRN_APP_LEN        'X'     /* truncation warning with             */
 | |
|                                        /* application context length          */
 | |
|                                        /* returned in sqlind                  */
 | |
| #define SQL_NO_WARN            ' '     /* no warning indicator                */
 | |
| #define SQL_ETO                'E'     /* error has been tolerated            */
 | |
| 
 | |
| #define SQL_PREPARE_ESTIMATE_WARNING 'P' /* Compiler estimate warning         */
 | |
|                                        /* indicator                           */
 | |
| /* SQLDA Constants                                                            */
 | |
| 
 | |
| /* Increment for type with null indicator                                     */
 | |
| #define SQL_TYP_NULINC         1
 | |
| 
 | |
| /* Variable Types                                                             */
 | |
| #define SQL_TYP_DATE           384     /* DATE                                */
 | |
| #define SQL_TYP_NDATE          (SQL_TYP_DATE+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_TIME           388     /* TIME                                */
 | |
| #define SQL_TYP_NTIME          (SQL_TYP_TIME+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_STAMP          392     /* TIMESTAMP                           */
 | |
| #define SQL_TYP_NSTAMP         (SQL_TYP_STAMP+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_DATALINK       396     /* DATALINK                            */
 | |
| #define SQL_TYP_NDATALINK      (SQL_TYP_DATALINK+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_CGSTR          400     /* C NUL-terminated graphic str        */
 | |
| #define SQL_TYP_NCGSTR         (SQL_TYP_CGSTR+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_BLOB           404     /* BLOB - varying length string        */
 | |
| #define SQL_TYP_NBLOB          (SQL_TYP_BLOB+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_CLOB           408     /* CLOB - varying length string        */
 | |
| #define SQL_TYP_NCLOB          (SQL_TYP_CLOB+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_DBCLOB         412     /* DBCLOB - varying length string      */
 | |
| #define SQL_TYP_NDBCLOB        (SQL_TYP_DBCLOB+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_VARCHAR        448     /* VARCHAR(i) - varying length string  */
 | |
|                                        /* (2 byte length)                     */
 | |
| #define SQL_TYP_NVARCHAR       (SQL_TYP_VARCHAR+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_CHAR           452     /* CHAR(i) - fixed length string       */
 | |
| #define SQL_TYP_NCHAR          (SQL_TYP_CHAR+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_LONG           456     /* LONG VARCHAR - varying length       */
 | |
|                                        /* string                              */
 | |
| #define SQL_TYP_NLONG          (SQL_TYP_LONG+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_CSTR           460     /* varying length string for C (null   */
 | |
|                                        /* terminated)                         */
 | |
| #define SQL_TYP_NCSTR          (SQL_TYP_CSTR+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_VARGRAPH       464     /* VARGRAPHIC(i) - varying length      */
 | |
|                                        /* graphic string (2 byte length)      */
 | |
| #define SQL_TYP_NVARGRAPH      (SQL_TYP_VARGRAPH+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_GRAPHIC        468     /* GRAPHIC(i) - fixed length graphic   */
 | |
|                                        /* string                              */
 | |
| #define SQL_TYP_NGRAPHIC       (SQL_TYP_GRAPHIC+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_LONGRAPH       472     /* LONG VARGRAPHIC(i) - varying        */
 | |
|                                        /* length graphic string               */
 | |
| #define SQL_TYP_NLONGRAPH      (SQL_TYP_LONGRAPH+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_LSTR           476     /* varying length string for Pascal    */
 | |
|                                        /* (1-byte length)                     */
 | |
| #define SQL_TYP_NLSTR          (SQL_TYP_LSTR+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_FLOAT          480     /* FLOAT - 4 or 8 byte floating point  */
 | |
| #define SQL_TYP_NFLOAT         (SQL_TYP_FLOAT+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_DECIMAL        484     /* DECIMAL (m,n)                       */
 | |
| #define SQL_TYP_NDECIMAL       (SQL_TYP_DECIMAL+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_ZONED          488     /* Zoned Decimal -> DECIMAL (m,n)      */
 | |
| #define SQL_TYP_NZONED         (SQL_TYP_ZONED+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_BIGINT         492     /* BIGINT - 8-byte signed integer      */
 | |
| #define SQL_TYP_NBIGINT        (SQL_TYP_BIGINT+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_INTEGER        496     /* INTEGER - 4-byte signed integer     */
 | |
| #define SQL_TYP_NINTEGER       (SQL_TYP_INTEGER+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_SMALL          500     /* SMALLINT - 2-byte signed integer    */
 | |
| #define SQL_TYP_NSMALL         (SQL_TYP_SMALL+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_NUMERIC        504     /* NUMERIC -> DECIMAL (m,n)            */
 | |
| #define SQL_TYP_NNUMERIC       (SQL_TYP_NUMERIC+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_BLOB_FILE_OBSOLETE 804 /* Obsolete Value                      */
 | |
| #define SQL_TYP_NBLOB_FILE_OBSOLETE (SQL_TYP_BLOB_FILE_OBSOLETE+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_CLOB_FILE_OBSOLETE 808 /* Obsolete Value                      */
 | |
| #define SQL_TYP_NCLOB_FILE_OBSOLETE (SQL_TYP_CLOB_FILE_OBSOLETE+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_DBCLOB_FILE_OBSOLETE 812 /* Obsolete Value                    */
 | |
| #define SQL_TYP_NDBCLOB_FILE_OBSOLETE (SQL_TYP_DBCLOB_FILE_OBSOLETE+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_VARBINARY      908     /* Variable Binary                     */
 | |
| #define SQL_TYP_NVARBINARY     (SQL_TYP_VARBINARY+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_BINARY         912     /* Fixed Binary                        */
 | |
| #define SQL_TYP_NBINARY        (SQL_TYP_BINARY+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_BLOB_FILE      916     /* BLOB File - Binary Large Object     */
 | |
|                                        /* File                                */
 | |
| #define SQL_TYP_NBLOB_FILE     (SQL_TYP_BLOB_FILE+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_CLOB_FILE      920     /* CLOB File - Char Large Object File  */
 | |
| #define SQL_TYP_NCLOB_FILE     (SQL_TYP_CLOB_FILE+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_DBCLOB_FILE    924     /* DBCLOB File - Double Byte Char      */
 | |
|                                        /* Large Object File                   */
 | |
| #define SQL_TYP_NDBCLOB_FILE   (SQL_TYP_DBCLOB_FILE+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_BLOB_LOCATOR   960     /* BLOB locator                        */
 | |
| #define SQL_TYP_NBLOB_LOCATOR  (SQL_TYP_BLOB_LOCATOR+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_CLOB_LOCATOR   964     /* CLOB locator                        */
 | |
| #define SQL_TYP_NCLOB_LOCATOR  (SQL_TYP_CLOB_LOCATOR+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_DBCLOB_LOCATOR 968     /* DBCLOB locator                      */
 | |
| #define SQL_TYP_NDBCLOB_LOCATOR (SQL_TYP_DBCLOB_LOCATOR+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_XML            988     /* XML                                 */
 | |
| #define SQL_TYP_NXML           (SQL_TYP_XML+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_TYP_DECFLOAT       996     /* Decimal Float (16/34)               */
 | |
| #define SQL_TYP_NDECFLOAT      (SQL_TYP_DECFLOAT+SQL_TYP_NULINC)
 | |
| 
 | |
| #define SQL_LOBTOKEN_LEN       SQL_LOBLOCATOR_LEN
 | |
| #define SQL_TYP_BLOB_TOKEN     SQL_TYP_BLOB_LOCATOR
 | |
| #define SQL_TYP_NBLOB_TOKEN    SQL_TYP_NBLOB_LOCATOR
 | |
| #define SQL_TYP_CLOB_TOKEN     SQL_TYP_CLOB_LOCATOR
 | |
| #define SQL_TYP_NCLOB_TOKEN    SQL_TYP_NCLOB_LOCATOR
 | |
| #define SQL_TYP_DBCLOB_TOKEN   SQL_TYP_DBCLOB_LOCATOR
 | |
| #define SQL_TYP_NDBCLOB_TOKEN  SQL_TYP_NDBCLOB_LOCATOR
 | |
| #define SQL_NCLOB_MAXLEN       SQL_DBCLOB_MAXLEN
 | |
| #define SQL_LOBHANDLE_LEN      SQL_LOBTOKEN_LEN
 | |
| #define SQL_TYP_BLOB_HANDLE    SQL_TYP_BLOB_TOKEN
 | |
| #define SQL_TYP_NBLOB_HANDLE   SQL_TYP_NBLOB_TOKEN
 | |
| #define SQL_TYP_CLOB_HANDLE    SQL_TYP_CLOB_TOKEN
 | |
| #define SQL_TYP_NCLOB_HANDLE   SQL_TYP_NCLOB_TOKEN
 | |
| #define SQL_TYP_DBCLOB_HANDLE  SQL_TYP_DBCLOB_TOKEN
 | |
| #define SQL_TYP_NDBCLOB_HANDLE SQL_TYP_NDBCLOB_TOKEN
 | |
| 
 | |
| /* Values for 30th byte of sqlname                                            */
 | |
| #define SQL_SQLNAME_SYSGEN     ((char) 0xFF) /* sqlname is system generated   */
 | |
| #define SQL_SQLNAME_NOT_SYSGEN ((char) 0x00) /* sqlname is directly derived   */
 | |
|                                              /* from a single column or       */
 | |
|                                              /* specified in the AS clause    */
 | |
| 
 | |
| /* Return Codes for sqlabndx, sqlaprep and sqlarbnd                           */
 | |
| #define SQLA_RC_OPT_IGNORED    20      /* The option(s) specified are not     */
 | |
|                                        /* supported by the target  database   */
 | |
|                                        /* and will be ignored                 */
 | |
| #define SQLA_RC_BINDWARN       25      /* Bind execution succeeded with       */
 | |
|                                        /* warnings.                           */
 | |
| #define SQLA_RC_PREPWARN       25      /* Precompilation succeeded with       */
 | |
|                                        /* warnings.                           */
 | |
| #define SQLA_RC_BINDERROR      -1      /* Bind execution failed               */
 | |
| #define SQLA_RC_PREPERROR      -1      /* Precompilation failed               */
 | |
| #define SQLA_RC_BAD_BINDNAME   -2      /* Invalid bind file                   */
 | |
| #define SQLA_RC_BAD_DBNAME     -3      /* Invalid database                    */
 | |
| #define SQLA_RC_BAD_MSGNAME    -5      /* Invalid message file                */
 | |
| #define SQLA_RC_BAD_FORMAT     -6      /* Invalid format                      */
 | |
| #define SQLA_RC_OPEN_ERROR     -31     /* Error opening list file             */
 | |
| #define SQLA_RC_MFILE_OPEN_ERR -35     /* Error opening message file          */
 | |
| #define SQLA_RC_FILE_NAME_BAD  -36     /* Source file name is invalid         */
 | |
| #define SQLA_RC_BAD_BNDFILE    -39     /* Bind file corrupted                 */
 | |
| #define SQLA_RC_LIST_ERROR     -40     /* Bind list errors                    */
 | |
| #define SQLA_RC_INTERRUPT      -94     /* Interrupt                           */
 | |
| #define SQLA_RC_OSERROR        -1086   /* System error                        */
 | |
| #define SQLA_RC_PREP_BIND_BUSY -1392   /* Prep/Bind already in use            */
 | |
| #define SQLA_RC_OPTION_LEN_BAD -4903   /* Invalid parm. length                */
 | |
| #define SQLA_RC_OPTION_PTR_BAD -4904   /* Invalid parm. ptr                   */
 | |
| #define SQLA_RC_OPTION_SIZE_BAD -4905  /* Invalid parm. size                  */
 | |
| #define SQLA_RC_OPTION_DATA_BAD -4917  /* Invalid parm. data                  */
 | |
| #define SQLA_RC_OPTION_INVALID -30104  /* Invalid option or option value      */
 | |
| #define SQLA_RC_SDK_LICENSE    -8005   /* No SDK/6000 license                 */
 | |
| 
 | |
| /* Values used for the date/time format parameter of sqlabind() ** OBSOLETE   */
 | |
| /* **                                                                         */
 | |
| #define SQL_FMT_DEF            "DEF"   /* FORMAT = Default for Country Code   */
 | |
| #define SQL_FMT_USA            "USA"   /* FORMAT = USA                        */
 | |
| #define SQL_FMT_EUR            "EUR"   /* FORMAT = EUR                        */
 | |
| #define SQL_FMT_ISO            "ISO"   /* FORMAT = ISO                        */
 | |
| #define SQL_FMT_JIS            "JIS"   /* FORMAT = JIS                        */
 | |
| #define SQL_FMT_LOC            "LOC"   /* FORMAT = LOCAL                      */
 | |
| 
 | |
| /* The size of a date/time format buffer                                      */
 | |
| #define SQL_FMT_LENGTH         3
 | |
| 
 | |
| /* Structures used system wide                                                */
 | |
| 
 | |
| #ifndef SQL_SQLDBCHAR_DEFN
 | |
| #define SQL_SQLDBCHAR_DEFN
 | |
|   typedef unsigned short sqldbchar;
 | |
| #endif
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlchar data structure
 | |
| ** This structure is used to pass variable length data to the database manager.
 | |
| ** 
 | |
| ** Table: Fields in the SQLCHAR Structure
 | |
| ** ----------------------------------------------------------------------------
 | |
| ** |Field Name           |Data Type      |Description                         |
 | |
| ** |---------------------|---------------|------------------------------------|
 | |
| ** |LENGTH               |SMALLINT       |Length of the character string      |
 | |
| ** |                     |               |pointed to by DATA.                 |
 | |
| ** |---------------------|---------------|------------------------------------|
 | |
| ** |DATA                 |CHAR(n)        |An array of characters of length    |
 | |
| ** |                     |               |LENGTH.                             |
 | |
| ** |---------------------|---------------|------------------------------------|
 | |
| ** 
 | |
| ** COBOL Structure
 | |
| ** 
 | |
| ** This is not defined in any header file. The following is an example that
 | |
| ** shows how to define the structure in COBOL:
 | |
| ** 
 | |
| ** * Replace maxlen with the appropriate value:
 | |
| ** 01 SQLCHAR.
 | |
| ** 49 SQLCHAR-LEN  PIC S9(4) COMP-5.
 | |
| ** 49 SQLCHAR-DATA PIC X(maxlen).
 | |
| *******************************************************************************/
 | |
| SQL_STRUCTURE sqlchar                  /* General-purpose VARCHAR for         */
 | |
|                                        /* casting                             */
 | |
| {
 | |
|         short                  length;
 | |
|         _SQLOLDCHAR            data[1];
 | |
| };
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlgraphic data structure
 | |
| *******************************************************************************/
 | |
| SQL_STRUCTURE sqlgraphic               /* General-purpose VARGRAPHIC for      */
 | |
|                                        /* casting                             */
 | |
| {
 | |
|         short                  length;
 | |
| #ifdef SQL_WCHART_CONVERT
 | |
|         wchar_t                data[1];
 | |
| #else
 | |
|         sqldbchar              data[1];
 | |
| #endif
 | |
| };
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqllob data structure
 | |
| ** This structure is used to represent a LOB data type in a host
 | |
| ** programming language.
 | |
| ** 
 | |
| ** Table: Fields in the sqllob structure
 | |
| ** ----------------------------------------------------------------
 | |
| ** |Field name    |Data type    |Description                      |
 | |
| ** |--------------|-------------|---------------------------------|
 | |
| ** |length        |sqluint32    |Length in bytes of the data      |
 | |
| ** |              |             |parameter.                       |
 | |
| ** |--------------|-------------|---------------------------------|
 | |
| ** |data          |char(1)      |Data being passed in.            |
 | |
| ** |--------------|-------------|---------------------------------|
 | |
| ** 
 | |
| *******************************************************************************/
 | |
| SQL_STRUCTURE sqllob                   /* General-purpose LOB for casting     */
 | |
| {
 | |
|         sqluint32              length;
 | |
|         char                   data[1];
 | |
| };
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqldbclob data structure
 | |
| *******************************************************************************/
 | |
| SQL_STRUCTURE sqldbclob                /* General-purpose DBCLOB for casting  */
 | |
| {
 | |
|         sqluint32              length;
 | |
| #ifdef SQL_WCHART_CONVERT
 | |
|         wchar_t                data[1];
 | |
| #else
 | |
|         sqldbchar              data[1];
 | |
| #endif
 | |
| };
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlfile data structure
 | |
| *******************************************************************************/
 | |
| SQL_STRUCTURE sqlfile                  /* File reference structure for LOBs   */
 | |
| {
 | |
|         sqluint32              name_length;
 | |
|         sqluint32              data_length;
 | |
|         sqluint32              file_options;
 | |
|         char                   name[255];
 | |
| };
 | |
| 
 | |
| SQL_STRUCTURE sqlfile2                 /* Extended file reference structure   */
 | |
|                                        /* for LOBs                            */
 | |
| {
 | |
|         sqluint32              name_length;
 | |
|         sqluint32              data_length;
 | |
|         sqluint32              file_options;
 | |
|         char                   name[255];
 | |
|         char                   reserved[5];
 | |
|         sqluint64              offset;
 | |
| };
 | |
| 
 | |
| /* Values used for SQLVAR.SQLLEN with sqlfile structures                      */
 | |
| #define SQL_SQLFILE_LEN        SQL_LOBFILE_LEN /* Length of an sqlfile LOB    */
 | |
|                                        /* file host var                       */
 | |
| #define SQL_SQLFILE2_LEN       280     /* Length of an sqlfile2 LOB file      */
 | |
|                                        /* host var                            */
 | |
| 
 | |
| /* Values used for file_options in the sqlfile structures                     */
 | |
| #define SQL_FILE_READ          2       /* Input file to read from             */
 | |
| #define SQL_FILE_CREATE        8       /* Output file - new file to be        */
 | |
|                                        /* created                             */
 | |
| #define SQL_FILE_OVERWRITE     16      /* Output file - overwrite existing    */
 | |
|                                        /* file or create a new file if it     */
 | |
|                                        /* doesn't exist                       */
 | |
| #define SQL_FILE_APPEND        32      /* Output file - append to an          */
 | |
|                                        /* existing file or create a new file  */
 | |
|                                        /* if it doesn't exist                 */
 | |
| 
 | |
| /* Structure used to store binder options when calling sqlabndr()             */
 | |
| /* or sqlabndx(), or to store precompile options when calling                 */
 | |
| /* sqlaprep(), or to store rebind options when calling sqlarbnd().            */
 | |
| 
 | |
| #define sqlbindopt sqloptions
 | |
| 
 | |
| #ifndef SQL_BIND_OPTS
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqloptheader data structure
 | |
| ** Table: Fields in the SQLOPTHEADER Structure
 | |
| ** |----------------------------------------------------------------|
 | |
| ** |Field Name|Data Type|Description                                |
 | |
| ** |----------|---------|-------------------------------------------|
 | |
| ** |ALLOCATED |INTEGER  |Number of elements in the option array     |
 | |
| ** |          |         |of the sqlopt structure.                   |
 | |
| ** |----------|---------|-------------------------------------------|
 | |
| ** |USED      |INTEGER  |Number of elements in the option array     |
 | |
| ** |          |         |of the sqlopt structure actually used.     |
 | |
| ** |          |         |This is the number of option pairs (TYPE   |
 | |
| ** |          |         |and VAL) supplied.                         |
 | |
| ** |----------|---------|-------------------------------------------|
 | |
| *******************************************************************************/
 | |
| SQL_STRUCTURE sqloptheader     /* Header for sqlopt structure */
 | |
| {
 | |
|    sqluint32     allocated; /* Number of options allocated */
 | |
|    sqluint32     used;      /* Number of options used */
 | |
| };
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqloptions data structure
 | |
| ** Table: Fields in the SQLOPTIONS Structure
 | |
| ** |----------------------------------------------------------------|
 | |
| ** |Field Name| Data Type | Description                             |
 | |
| ** |----------------------------------------------------------------|
 | |
| ** |TYPE      | INTEGER   | Bind/precompile/rebind option type.     |
 | |
| ** |VAL       | INTEGER   | Bind/precompile/rebind option value.    |
 | |
| ** |----------------------------------------------------------------|
 | |
| ** |Note:                                                           |
 | |
| ** |The TYPE and VAL fields are repeated for each bind/precompile/  |
 | |
| ** |rebind option specified.                                        |
 | |
| ** |----------------------------------------------------------------|
 | |
| *******************************************************************************/
 | |
| SQL_STRUCTURE sqloptions       /* bind/prep/rebind option          */
 | |
| {
 | |
|    sqluint32     type; /* Type  of bind/prep/rebind option */
 | |
|    sqluintptr    val;  /* Value of bind/prep/rebind option */
 | |
| };
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlopt data structure
 | |
| ** This structure is used to pass bind options to the sqlabndx API,
 | |
| ** precompile options to the sqlaprep API, and rebind options to the
 | |
| ** sqlarbnd API.
 | |
| 
 | |
| ** Table: Fields in the SQLOPT Structure
 | |
| ** |----------------------------------------------------------------|
 | |
| ** |Field Name| Data Type|Description                               |
 | |
| ** |----------|----------|------------------------------------------|
 | |
| ** |HEADER    | Structure|An sqloptheader structure.                |
 | |
| ** |----------|----------|------------------------------------------|
 | |
| ** |OPTION    | Array    |An array of sqloptions structures. The    |
 | |
| ** |          |          |number of elements in this array is       |
 | |
| ** |          |          |determined by the value of the allocated  |
 | |
| ** |          |          |field of the header.                      |
 | |
| ** |----------|----------|------------------------------------------|
 | |
| 
 | |
| ** COBOL Structure
 | |
| 
 | |
| ** * File: sql.cbl
 | |
| ** 01 SQLOPT.
 | |
| **     05 SQLOPTHEADER.
 | |
| **         10 ALLOCATED   PIC 9(9) COMP-5.
 | |
| **         10 USED        PIC 9(9) COMP-5.
 | |
| **     05 SQLOPTIONS OCCURS 1 TO 50 DEPENDING ON ALLOCATED.
 | |
| **         10 SQLOPT-TYPE        PIC 9(9) COMP-5.
 | |
| **         10 SQLOPT-VAL         PIC 9(9) COMP-5.
 | |
| **         10 SQLOPT-VAL-PTR     REDEFINES SQLOPT-VAL
 | |
| ** * 
 | |
| *******************************************************************************/
 | |
| SQL_STRUCTURE sqlopt
 | |
| {
 | |
|    SQL_STRUCTURE sqloptheader header;     /* Header for sqlopt structure */
 | |
|    SQL_STRUCTURE sqloptions   option[1];  /* Array of bind/prep/rebind options  */
 | |
| };
 | |
| 
 | |
| #define SQL_BIND_OPTS
 | |
| #endif
 | |
| 
 | |
| /* Values used for option[n].type in the sqloptions structure                 */
 | |
| /* of sqlabndx(), sqlaprep() and sqlarbnd().                                  */
 | |
| #define SQL_DATETIME_OPT       1       /* Option for date/time format - bind  */
 | |
|                                        /* and precompile option               */
 | |
| #define SQL_STANDARDS_OPT      2       /* Option for standards level          */
 | |
|                                        /* compliance - precompile option      */
 | |
|                                        /* only                                */
 | |
| #define SQL_ISO_OPT            4       /* Option for isolation level - bind   */
 | |
|                                        /* and precompile option               */
 | |
| #define SQL_BLOCK_OPT          5       /* Option for record blocking - bind   */
 | |
|                                        /* and precompile option               */
 | |
| #define SQL_GRANT_OPT          6       /* Option for granting privileges -    */
 | |
|                                        /* bind option only                    */
 | |
| #define SQL_FLAG_OPT           8       /* Option for the Flagger -            */
 | |
|                                        /* precompile option only              */
 | |
| #define SQL_GRANT_USER_OPT     9       /* Option for granting privileges to   */
 | |
|                                        /* a user - bind option only           */
 | |
| #define SQL_GRANT_GROUP_OPT    10      /* Option for granting privileges to   */
 | |
|                                        /* a group - bind option only          */
 | |
| #define SQL_CNULREQD_OPT       11      /* Option for adding NULLs to strings  */
 | |
|                                        /* - bind option only                  */
 | |
| #define SQL_GENERIC_OPT        12      /* Generic option for DRDA servers -   */
 | |
|                                        /* bind option only                    */
 | |
| #define SQL_DEFERRED_PREPARE_OPT 15    /* Option for Deferred Prepare -       */
 | |
|                                        /* precompile option only              */
 | |
| #define SQL_CONNECT_OPT        16      /* Specifies whether one or multiple   */
 | |
|                                        /* connections are allowed             */
 | |
|                                        /* similtaneously within a unit of     */
 | |
|                                        /* work.                               */
 | |
| #define SQL_RULES_OPT          17      /* Specifies the set of rules used     */
 | |
|                                        /* for connection to multiple          */
 | |
|                                        /* databases within a single unit of   */
 | |
|                                        /* work                                */
 | |
| #define SQL_DISCONNECT_OPT     18      /* Specifies which of multiple         */
 | |
|                                        /* databases connected to will be      */
 | |
|                                        /* disconnected when a COMMIT or       */
 | |
|                                        /* ROLLBACK is issued.                 */
 | |
| #define SQL_SYNCPOINT_OPT      19      /* Specifies what syncpoint option     */
 | |
|                                        /* (for example one phase or two       */
 | |
|                                        /* phase) will be used                 */
 | |
| #define SQL_BIND_OPT           20      /* Option to create a bind file -      */
 | |
|                                        /* precompile option only              */
 | |
| #define SQL_SAA_OPT            21      /* Option specifies SAA/non-SAA        */
 | |
|                                        /* compatibility - FORTRAN precompile  */
 | |
|                                        /* option only                         */
 | |
| #define SQL_PKG_OPT            23      /* Option to create a package with a   */
 | |
|                                        /* specific name - precompile option   */
 | |
|                                        /* only                                */
 | |
| #define SQL_OPTIM_OPT          24      /* Option to specify SQLDA             */
 | |
|                                        /* optimization - precompile option    */
 | |
|                                        /* only                                */
 | |
| #define SQL_SYNTAX_OPT         25      /* Option to not create a package or   */
 | |
|                                        /* bind file - precompile option only  */
 | |
| #define SQL_SQLERROR_OPT       SQL_SYNTAX_OPT /* Indicates under what         */
 | |
|                                        /* conditions a package will be be     */
 | |
|                                        /* created - bind and precompile       */
 | |
|                                        /* option                              */
 | |
| #define SQL_LINEMACRO_OPT      26      /* Option to suppress #line macro      */
 | |
|                                        /* generation in modified source file  */
 | |
|                                        /* - C precompile option only          */
 | |
| #define SQL_NO_OPT             27      /* 'No-op' option - ignore this entry  */
 | |
|                                        /* in the option array - bind,         */
 | |
|                                        /* precompile and rebind option        */
 | |
| #define SQL_LEVEL_OPT          30      /* Level of a module - precompile      */
 | |
|                                        /* option only                         */
 | |
| #define SQL_COLLECTION_OPT     31      /* Package collection identifier -     */
 | |
|                                        /* precompile option only              */
 | |
| #define SQL_VERSION_OPT        32      /* Package version identifier -        */
 | |
|                                        /* precompile and rebind option only   */
 | |
| #define SQL_OWNER_OPT          33      /* Package owner authorization         */
 | |
|                                        /* identifier - bind and precompile    */
 | |
|                                        /* option                              */
 | |
| #define SQL_SCHEMA_OPT         SQL_OWNER_OPT /* Synonym for owner - bind and  */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_QUALIFIER_OPT      34      /* Authorization identifier that is    */
 | |
|                                        /* to be used as a qualifier for       */
 | |
|                                        /* unqualified objects - bind and      */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_CATALOG_OPT        SQL_QUALIFIER_OPT /* Synonym for qualifier -   */
 | |
|                                        /* bind and precompile option          */
 | |
| #define SQL_TEXT_OPT           35      /* Package description - bind and      */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_VALIDATE_OPT       40      /* Indicates when object validation    */
 | |
|                                        /* occurs - bind and precompile        */
 | |
|                                        /* option                              */
 | |
| #define SQL_EXPLAIN_OPT        41      /* Determines whether information      */
 | |
|                                        /* will be produced about how the SQL  */
 | |
|                                        /* statements in a package will be     */
 | |
|                                        /* executed - bind and precompile      */
 | |
|                                        /* option                              */
 | |
| #define SQL_ACTION_OPT         42      /* Indicates whether a package is to   */
 | |
|                                        /* be added or replaced - bind and     */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_REPLVER_OPT        44      /* Replaces a specific version of a    */
 | |
|                                        /* package - bind and precompile       */
 | |
|                                        /* option                              */
 | |
| #define SQL_RETAIN_OPT         45      /* Indicates whether EXECUTE           */
 | |
|                                        /* authorities are to be preserved     */
 | |
|                                        /* when a package is replaced - bind   */
 | |
|                                        /* and precompile option               */
 | |
| #define SQL_RELEASE_OPT        46      /* Indicates whether resources are     */
 | |
|                                        /* released at each COMMIT or when     */
 | |
|                                        /* the application  terminates - bind  */
 | |
|                                        /* and precompile option               */
 | |
| #define SQL_DEGREE_OPT         47      /* Specifies whether or not the query  */
 | |
|                                        /* is executed using I/O parallelism   */
 | |
|                                        /*  bind and precompile option         */
 | |
| #define SQL_STRDEL_OPT         50      /* Designates whether an apostrophe    */
 | |
|                                        /* or quote will be used as a string   */
 | |
|                                        /* delimiter - bind and precompile     */
 | |
|                                        /* option                              */
 | |
| #define SQL_DECDEL_OPT         51      /* Designates whether a period or      */
 | |
|                                        /* comma will be used as a decimal     */
 | |
|                                        /* point indicator - bind and          */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_CHARSUB_OPT        55      /* Designates default character        */
 | |
|                                        /* subtype that is to be used for      */
 | |
|                                        /* column definitions in the CREATE    */
 | |
|                                        /* and ALTER TABLE SQL statements -    */
 | |
|                                        /* bind and precompile option          */
 | |
| #define SQL_CCSIDS_OPT         56      /* Designates what CCSID will be used  */
 | |
|                                        /* for single byte characters for      */
 | |
|                                        /* character column definitions        */
 | |
|                                        /* without a specific CCSID clause in  */
 | |
|                                        /* the CREATE and ALTER TABLE SQL      */
 | |
|                                        /* statements - bind and precompile    */
 | |
|                                        /* option                              */
 | |
| #define SQL_CCSIDM_OPT         57      /* Designates what CCSID will be used  */
 | |
|                                        /* for mixed byte characters for       */
 | |
|                                        /* character column definitions        */
 | |
|                                        /* without a specific CCSID clause in  */
 | |
|                                        /* the CREATE and ALTER TABLE SQL      */
 | |
|                                        /* statements - bind and precompile    */
 | |
|                                        /* option                              */
 | |
| #define SQL_CCSIDG_OPT         58      /* Designates what CCSID will be used  */
 | |
|                                        /* for double byte characters for      */
 | |
|                                        /* character column definitions        */
 | |
|                                        /* without a specific CCSID clause in  */
 | |
|                                        /* the CREATE and ALTER TABLE SQL      */
 | |
|                                        /* statements - bind and precompile    */
 | |
|                                        /* option                              */
 | |
| #define SQL_DEC_OPT            59      /* Specifies maximum precision to be   */
 | |
|                                        /* used in decimal arithmetic          */
 | |
|                                        /* operations - bind and precompile    */
 | |
|                                        /* option                              */
 | |
| #define SQL_WCHAR_OPT          60      /* Specifies handling of graphic       */
 | |
|                                        /* vars. - precompile only             */
 | |
| #define SQL_DYNAMICRULES_OPT   61      /* Specifies which authorization       */
 | |
|                                        /* identifier to use when dynamic SQL  */
 | |
|                                        /* in a package is executed - bind     */
 | |
|                                        /* and precompile option               */
 | |
| #define SQL_INSERT_OPT         62      /* Buffers VALUE inserts - bind and    */
 | |
|                                        /* precompile option for DB2/PE        */
 | |
|                                        /* servers only                        */
 | |
| #define SQL_EXPLSNAP_OPT       63      /* Capture explain snapshot - bind     */
 | |
|                                        /* and precompile option               */
 | |
| #define SQL_FUNCTION_PATH      64      /* Path for user-defined function      */
 | |
|                                        /* resolution - bind and precompile    */
 | |
|                                        /* option                              */
 | |
| #define SQL_SQLWARN_OPT        65      /* Disable prepare-time SQL warnings   */
 | |
|                                        /*  bind and precompile option         */
 | |
| #define SQL_QUERYOPT_OPT       66      /* Set query optimization class -      */
 | |
|                                        /* bind and precompile option          */
 | |
| #define SQL_TARGET_OPT         67      /* Target compiler - precompile        */
 | |
|                                        /* option                              */
 | |
| #define SQL_PREP_OUTPUT_OPT    68      /* Name of precompiler output file -   */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_PREPROCESSOR_OPT   69      /* Preprocessor command - precompile   */
 | |
|                                        /* option only                         */
 | |
| #define SQL_RESOLVE_OPT        70      /* Indicates whether function and      */
 | |
|                                        /* type resolution should or should    */
 | |
|                                        /* not use conservative binding        */
 | |
|                                        /* semantics - rebind option only      */
 | |
| #define SQL_CLIPKG_OPT         71      /* CLIPKG option - bind option only    */
 | |
| #define SQL_FEDERATED_OPT      72      /* FEDERATED option - bind and         */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_TRANSFORMGROUP_OPT 73      /* Transform Group - precompile and    */
 | |
|                                        /* bind option                         */
 | |
| #define SQL_LONGERROR_OPT      74      /* Option to treat long host variable  */
 | |
|                                        /* declarations as errors -            */
 | |
|                                        /* precompile option only              */
 | |
| #define SQL_DECTYPE_OPT        75      /* DECTYPE Option to convert decimals  */
 | |
|                                        /*  precompile option only             */
 | |
| #define SQL_KEEPDYNAMIC_OPT    76      /* Specifies whether dynamic SQL       */
 | |
|                                        /* statements are to be kept after     */
 | |
|                                        /* commit points - bind and            */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_DBPROTOCOL_OPT     77      /* Specifies what protocol to use      */
 | |
|                                        /* when connecting to a remote site    */
 | |
|                                        /* that is identified by a three-part  */
 | |
|                                        /* name statement - bind and           */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_OPTHINT_OPT        78      /* Controls whether query              */
 | |
|                                        /* optimization hints are used for     */
 | |
|                                        /* static SQL - bind and precompile    */
 | |
|                                        /* option                              */
 | |
| #define SQL_IMMEDWRITE_OPT     79      /* Tells whether immediate writes      */
 | |
|                                        /* will be done for updates made to    */
 | |
|                                        /* group buffer pool dependent         */
 | |
|                                        /* pagesets or partitions  - bind and  */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_ENCODING_OPT       80      /* Specifies the encoding for all      */
 | |
|                                        /* host variables in static            */
 | |
|                                        /* statements in the plan or package   */
 | |
|                                        /* (bind and precompile option)        */
 | |
| #define SQL_OS400NAMING_OPT    81      /* Specifies which naming option is    */
 | |
|                                        /* to be used when accessing DB2 UDB   */
 | |
|                                        /* for iSeries data - bind and         */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_SORTSEQ_OPT        82      /* Specifies which sort sequence       */
 | |
|                                        /* table to use on the iSeries system  */
 | |
|                                        /* - bind and precompile option        */
 | |
| #define SQL_REOPT_OPT          83      /* Specifies whether to have DB2       */
 | |
|                                        /* determine an access path at run     */
 | |
|                                        /* time using values for host          */
 | |
|                                        /* variables, parameter markers, and   */
 | |
|                                        /* special registers - bind and        */
 | |
|                                        /* precompile option                   */
 | |
| #define SQL_PSM_OPT            84      /* PSM option - bind option            */
 | |
| #define SQL_CALL_RES_OPT       85      /* Specifies whether to use immediate  */
 | |
|                                        /* ordeferred procedure                */
 | |
|                                        /* resolutionprecompile option         */
 | |
| #define SQL_TIMESTAMP_OPT      86      /* Option for date/time format - bind  */
 | |
|                                        /* and precompile option               */
 | |
| #define SQL_STATICREADONLY_OPT 87      /* Specifies whether static cursors    */
 | |
|                                        /* will be treated as read-only if     */
 | |
|                                        /* they are ambiguous - precompile     */
 | |
|                                        /* and bind option                     */
 | |
| #define SQL_OPTPROFILE_OPT     88      /* Specifies a two-part name of the    */
 | |
|                                        /* form [schemaname.]basename where    */
 | |
|                                        /* basename is a character string of   */
 | |
|                                        /* up to 128 chars in length used to   */
 | |
|                                        /* uniquely identify the optimization  */
 | |
|                                        /* profile within a particular         */
 | |
|                                        /* schema.  Schemaname is a character  */
 | |
|                                        /* string identifier of up to 30       */
 | |
|                                        /* bytes used to explicitelyqualify    */
 | |
|                                        /* an optimization profile schema.     */
 | |
| #define SQL_FEDASYNC_OPT       89      /* Specifies whether or not the query  */
 | |
|                                        /* is executed using asynchrony        */
 | |
| #define SQL_NODB_OPT           90      /* Specifies that a database should    */
 | |
|                                        /* not be used during precompile.      */
 | |
|                                        /* The BINDFILE and VALIDATE RUN       */
 | |
|                                        /* options will be implicitely         */
 | |
|                                        /* specified.                          */
 | |
| 
 | |
| #define SQL_NUM_OPTS           90      /* # of PREP/BIND/REBIND options       */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is                       */
 | |
| /* SQL_DATETIME_OPT. These can also be used for the date/time                 */
 | |
| /* format parameter of sqlabind().                                            */
 | |
| 
 | |
| #define SQL_DATETIME_DEF       48      /* FORMAT = Default for Country Code   */
 | |
| #define SQL_DATETIME_USA       49      /* FORMAT = USA                        */
 | |
| #define SQL_DATETIME_EUR       50      /* FORMAT = EUR                        */
 | |
| #define SQL_DATETIME_ISO       51      /* FORMAT = ISO                        */
 | |
| #define SQL_DATETIME_JIS       52      /* FORMAT = JIS                        */
 | |
| #define SQL_DATETIME_LOC       53      /* FORMAT = LOCAL                      */
 | |
| 
 | |
| /* The following constants are here for backwards compatbility with earlier   */
 | |
| /* releases.                                                                  */
 | |
| 
 | |
| #define SQL_FRMT_OPT           SQL_DATETIME_OPT
 | |
| #define SQL_FMT_0              SQL_DATETIME_DEF
 | |
| #define SQL_FMT_1              SQL_DATETIME_USA
 | |
| #define SQL_FMT_2              SQL_DATETIME_EUR
 | |
| #define SQL_FMT_3              SQL_DATETIME_ISO
 | |
| #define SQL_FMT_4              SQL_DATETIME_JIS
 | |
| #define SQL_FMT_5              SQL_DATETIME_LOC
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_STANDARDS_OPT.    */
 | |
| #define SQL_SAA_COMP           0       /* SAA Level 1 Database CPI            */
 | |
| #define SQL_MIA_COMP           1       /* MIA                                 */
 | |
| #define SQL_SQL92E_COMP        2       /* SQL92 Entry                         */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_ISO_OPT           */
 | |
| #define SQL_REP_READ           0       /* Repeatable read level               */
 | |
| #define SQL_CURSOR_STAB        1       /* Cursor stability level              */
 | |
| #define SQL_UNCOM_READ         2       /* Uncommitted read level              */
 | |
| #define SQL_READ_STAB          3       /* Read stability level                */
 | |
| #define SQL_NO_COMMIT          4       /* No Commit level      l              */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_BLOCK_OPT         */
 | |
| #define SQL_BL_UNAMBIG         0       /* Block Unambiguous cursors           */
 | |
| #define SQL_BL_ALL             1       /* Block All cursors                   */
 | |
| #define SQL_NO_BL              2       /* Block No cursors                    */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_FLAG_OPT          */
 | |
| #define SQL_MVSDB2V23_SYNTAX   4       /* Flagger check against MVS           */
 | |
| #define SQL_MVSDB2V31_SYNTAX   5       /* DB2 V2.3, V3.1 or V4.1 SQL          */
 | |
| #define SQL_MVSDB2V41_SYNTAX   6       /* syntax                              */
 | |
| #define SQL_SQL92E_SYNTAX      7       /* FIPS flagger SQL92E syntax          */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_CNULREQD_OPT      */
 | |
| #define SQL_CNULREQD_NO        0       /* C NULL value not required           */
 | |
| #define SQL_CNULREQD_YES       1       /* C NULL value required               */
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* GENERIC_OPT                                                                */
 | |
| #define SQL_MAX_GENERIC        1023
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_SAA_OPT.          */
 | |
| #define SQL_SAA_NO             0       /* SQLCA definition not SAA            */
 | |
|                                        /* compatible                          */
 | |
| #define SQL_SAA_YES            1       /* SQLCA definition is SAA compatible  */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_OPTIM_OPT.        */
 | |
| #define SQL_DONT_OPTIMIZE      0       /* Do not optimize SQLDA               */
 | |
|                                        /* initialization                      */
 | |
| #define SQL_OPTIMIZE           1       /* Optimize SQLDA initialization       */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_SYNTAX_OPT.       */
 | |
| #define SQL_NO_SYNTAX_CHECK    0       /* Create a package and/or a bind      */
 | |
|                                        /* file                                */
 | |
| #define SQL_SYNTAX_CHECK       1       /* Do not create a package or bind     */
 | |
|                                        /* file                                */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_LINEMACRO_OPT.    */
 | |
| #define SQL_NO_LINE_MACROS     0       /* Do not generate #line macros in     */
 | |
|                                        /* modified source file                */
 | |
| #define SQL_LINE_MACROS        1       /* Generate #line macros in modified   */
 | |
|                                        /* source file                         */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_WCHAR_OPT.        */
 | |
| #define SQL_WCHAR_NOCONVERT    0       /* graphic variable not converted      */
 | |
| #define SQL_WCHAR_CONVERT      1       /* graphic variable converted          */
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL_LEVEL  */
 | |
| /* OPT                                                                        */
 | |
| #define SQL_MAX_LEVEL          8
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_CONNECT_OPT       */
 | |
| #define SQL_DEFERRED_PREPARE_YES 1     /* Dynamic SQL statements will be      */
 | |
|                                        /* chained.                            */
 | |
| #define SQL_DEFERRED_PREPARE_NO 2      /* Dynamic SQL statements will not be  */
 | |
|                                        /* chained.                            */
 | |
| #define SQL_DEFERRED_PREPARE_ALL 3     /* Dynamic SQL statements will be      */
 | |
|                                        /* chained in all cases.  The          */
 | |
|                                        /* application must not allocate host  */
 | |
|                                        /* vars a FETCH SQLDA until after the  */
 | |
|                                        /* OPEN statement for the cursor.      */
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* COLLECTION_OPT                                                             */
 | |
| #define SQL_MAX_COLLECTION     30
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* VERSION_OPT                                                                */
 | |
| #define SQL_MAX_VERSION        254
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL_OWNER  */
 | |
| /* OPT                                                                        */
 | |
| #define SQL_MAX_OWNER          30
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* SCHEMA_OPT                                                                 */
 | |
| #define SQL_MAX_SCHEMA         SQL_MAX_OWNER
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* QUALIFIER_OPT                                                              */
 | |
| #define SQL_MAX_QUALIFIER      30
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* CATALOG_OPT                                                                */
 | |
| #define SQL_MAX_CATALOG        SQL_MAX_QUALIFIER
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL_TEXT   */
 | |
| /* OPT                                                                        */
 | |
| #define SQL_MAX_TEXT           255
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* PREPROCESSOR_OPT                                                           */
 | |
| #define SQL_MAX_PREPROCESSOR   1024
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* TRANSFORMGROUP_OPT                                                         */
 | |
| #define SQL_MAX_TRANSFORMGROUP 18
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_VALIDATE_OPT      */
 | |
| #define SQL_VALIDATE_BIND      0       /* Validate objects during BIND        */
 | |
| #define SQL_VALIDATE_RUN       1       /* Validate objects during execution   */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_EXPLAIN_OPT       */
 | |
| #define SQL_EXPLAIN_NO         0       /* No Explain output saved             */
 | |
| #define SQL_EXPLAIN_YES        1       /* Explain output saved                */
 | |
| #define SQL_EXPLAIN_ALL        2       /* Explain output saved for all        */
 | |
|                                        /* static and dynamic statements       */
 | |
| #define SQL_EXPLAIN_REOPT      3       /* Explain output saved for static     */
 | |
|                                        /* reoptimizable statements            */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_ACTION_OPT        */
 | |
| #define SQL_ACTION_ADD         0       /* Package is to be added              */
 | |
| #define SQL_ACTION_REPLACE     1       /* Package is to be replaced           */
 | |
| 
 | |
| /* Max/Min value of CLIPKG for option[n].val when option[n].type is SQL       */
 | |
| /* CLIPKG_OPT                                                                 */
 | |
| #define SQL_MIN_CLIPKG         3
 | |
| #define SQL_MAX_CLIPKG         30
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* REPLVER_OPT                                                                */
 | |
| #define SQL_MAX_REPLVER        254
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_SQLERROR_OPT      */
 | |
| #define SQL_SQLERROR_NOPACKAGE SQL_NO_SYNTAX_CHECK /* Do not create a         */
 | |
|                                        /* package if errors are encountered   */
 | |
| #define SQL_SQLERROR_CHECK     SQL_SYNTAX_CHECK /* Do not create a package    */
 | |
| #define SQL_SQLERROR_CONTINUE  2       /* Create a package even if errors     */
 | |
|                                        /* are encountered                     */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_RETAIN_OPT        */
 | |
| #define SQL_RETAIN_NO          0       /* Do not preserve EXECUTE             */
 | |
|                                        /* authorities when a package is       */
 | |
|                                        /* replaced                            */
 | |
| #define SQL_RETAIN_YES         1       /* Preserve EXECUTE authorities when   */
 | |
|                                        /* a package is replaced               */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_RELEASE_OPT       */
 | |
| #define SQL_RELEASE_COMMIT     0       /* Release resources at COMMIT         */
 | |
| #define SQL_RELEASE_DEALLOCATE 1       /* Release resources when the program  */
 | |
|                                        /* terminates                          */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_STRDEL_OPT        */
 | |
| #define SQL_STRDEL_APOSTROPHE  0       /* Apostrophe string delimiter         */
 | |
| #define SQL_STRDEL_QUOTE       1       /* Quote string delimiter              */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_DECDEL_OPT        */
 | |
| #define SQL_DECDEL_PERIOD      0       /* Period is used as a decimal point   */
 | |
|                                        /* indicator in decimal and floating   */
 | |
|                                        /* point literals                      */
 | |
| #define SQL_DECDEL_COMMA       1       /* Comma is used as a decimal point    */
 | |
|                                        /* indicator in decimal and floating   */
 | |
|                                        /* point literals                      */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_CHARSUB_OPT       */
 | |
| #define SQL_CHARSUB_DEFAULT    0       /* Use the target system defined       */
 | |
|                                        /* default for all new character       */
 | |
|                                        /* columns for which an explicit       */
 | |
|                                        /* subtype is not specified            */
 | |
| #define SQL_CHARSUB_BIT        1       /* Use the BIT character subtype for   */
 | |
|                                        /* all new character columns for       */
 | |
|                                        /* which an explicit subtype is not    */
 | |
|                                        /* specified                           */
 | |
| #define SQL_CHARSUB_SBCS       2       /* Use the SBCS character subtype for  */
 | |
|                                        /* all new character columns for       */
 | |
|                                        /* which an explicit subtype is not    */
 | |
|                                        /* specified                           */
 | |
| #define SQL_CHARSUB_MIXED      3       /* Use the mixed character subtype     */
 | |
|                                        /* for all new character columns for   */
 | |
|                                        /* which an explicit subtype is not    */
 | |
|                                        /* specified                           */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_DEC_OPT           */
 | |
| #define SQL_DEC_15             15      /* 15 bit precision is used in         */
 | |
|                                        /* decimal arithmetic operations       */
 | |
| #define SQL_DEC_31             31      /* 31 bit precision is used in         */
 | |
|                                        /* decimal arithmetic operations       */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_DEGREE_OPT        */
 | |
| #define SQL_DEGREE_1           1       /* Prohibits parallel I/O operations   */
 | |
| #define SQL_DEGREE_ANY         0       /* Allows the target database system   */
 | |
|                                        /* to determine the degree of          */
 | |
|                                        /* parallel I/O operations             */
 | |
| #define SQL_MAX_DEGREE_VAL     32767   /* Maximum value                       */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_VERSION_OPT       */
 | |
| #define SQL_VERSION_AUTO       "AUTO"  /* Use the timestamp to generate the   */
 | |
|                                        /* package VERSION                     */
 | |
| 
 | |
| /* The next four option values (for CONNECT type, SQLRULES, DISCONNECT and    */
 | |
| /* SYNCPOINT) are used not only by the precompiler but also by the sqlesetc   */
 | |
| /* and sqleqryc APIs.                                                         */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_CONNECT_OPT       */
 | |
| #define SQL_CONNECT_1          1       /* Indicates that only one connection  */
 | |
|                                        /* to a database can exist at any      */
 | |
|                                        /* given time.                         */
 | |
| #define SQL_CONNECT_2          2       /* Indicates that multiple             */
 | |
|                                        /* connections can exist               */
 | |
|                                        /* simultaneously, with one being      */
 | |
|                                        /* active and the others dormant.      */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_RULES_OPT         */
 | |
| #define SQL_RULES_DB2          1       /* Indicates that CONNECT TO can be    */
 | |
|                                        /* used to make a dormant connection   */
 | |
|                                        /* the current connection.             */
 | |
| #define SQL_RULES_STD          2       /* Indicates that CONNECT TO is not    */
 | |
|                                        /* valid for making a dormant          */
 | |
|                                        /* connection current, and SET         */
 | |
|                                        /* CONNECTION must be used instead.    */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_DISCONNECT_OPT    */
 | |
| #define SQL_DISCONNECT_EXPL    1       /* Indicates that all connections      */
 | |
|                                        /* marked by the RELEASE statement     */
 | |
|                                        /* will be the only connections        */
 | |
|                                        /* released when a COMMIT is issued.   */
 | |
| #define SQL_DISCONNECT_COND    2       /* Indicates that all connections      */
 | |
|                                        /* that do not have open WITH HOLD     */
 | |
|                                        /* cursors will be the only            */
 | |
|                                        /* connections released when a COMMIT  */
 | |
|                                        /* is issued.                          */
 | |
| #define SQL_DISCONNECT_AUTO    3       /* Indicates that all connections      */
 | |
|                                        /* will be released when a COMMIT is   */
 | |
|                                        /* issued.                             */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_SYNCPOINT_OPT     */
 | |
| #define SQL_SYNC_ONEPHASE      1       /* Do not use a transaction manager    */
 | |
|                                        /* to perform two phase commit, but    */
 | |
|                                        /* enforce that there is only one      */
 | |
|                                        /* database is updated when multiple   */
 | |
|                                        /* databases are accessed within a     */
 | |
|                                        /* single transaction.                 */
 | |
| #define SQL_SYNC_TWOPHASE      2       /* Use a transaction manager to        */
 | |
|                                        /* coordinate two phase commit.        */
 | |
| #define SQL_SYNC_NONE          0       /* No update enforcement or two phase  */
 | |
|                                        /* commit protocol will be used.       */
 | |
| 
 | |
| /* The next option value (for SQL_CONNECT_NODE) is used only by the sqlesetc  */
 | |
| /* and sqleqryc APIs.                                                         */
 | |
| #define SQL_CONN_CATALOG_NODE  0xfffe  /* Connect to the catalog node         */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_DYNAMICRULES_OPT  */
 | |
| #define SQL_DYNAMICRULES_RUN   0       /* Dynamic SQL in package will use     */
 | |
|                                        /* authid of person running the        */
 | |
|                                        /* package                             */
 | |
| #define SQL_DYNAMICRULES_BIND  1       /* Dynamic SQL in package will use     */
 | |
|                                        /* authid of person who owns the       */
 | |
|                                        /* package                             */
 | |
| #define SQL_DYNAMICRULES_INVOKERUN 2   /* Dynamic SQL in a routine will use   */
 | |
|                                        /* authid of invoker of routine        */
 | |
| #define SQL_DYNAMICRULES_DEFINERUN 3   /* Dynamic SQL in a routine will use   */
 | |
|                                        /* authid of definer of routine        */
 | |
| #define SQL_DYNAMICRULES_INVOKEBIND 4  /* Dynamic SQL in a routine will use   */
 | |
|                                        /* authid of invoker of routine        */
 | |
| #define SQL_DYNAMICRULES_DEFINEBIND 5  /* Dynamic SQL in a routine will use   */
 | |
|                                        /* authid of definer of routine        */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_INSERT_OPT        */
 | |
| #define SQL_INSERT_DEF         0       /* Do not buffer VALUE inserts         */
 | |
| #define SQL_INSERT_BUF         1       /* Buffer VALUE inserts                */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_EXPLSNAP_OPT      */
 | |
| #define SQL_EXPLSNAP_NO        0       /* No Explain snapshot saved           */
 | |
| #define SQL_EXPLSNAP_YES       1       /* Explain snapshot saved              */
 | |
| #define SQL_EXPLSNAP_ALL       2       /* Explain snapshot saved for all      */
 | |
|                                        /* static and dynamic statements       */
 | |
| #define SQL_EXPLSNAP_REOPT     3       /* Explain snapshot saved for static   */
 | |
|                                        /* reoptimizable statements            */
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* FUNCTION_PATH                                                              */
 | |
| #define SQL_MAX_FUNCPATH       254
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_SQLWARN_OPT       */
 | |
| #define SQL_SQLWARN_NO         0       /* Suppress prepare-time warning       */
 | |
|                                        /* SQLCODEs                            */
 | |
| #define SQL_SQLWARN_YES        1       /* Permit prepare-time warning         */
 | |
|                                        /* SQLCODEs                            */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_QUERYOPT_OPT      */
 | |
| #define SQL_QUERYOPT_0         0       /* Class 0 query optimization          */
 | |
| #define SQL_QUERYOPT_1         1       /* Class 1 query optimization          */
 | |
| #define SQL_QUERYOPT_2         2       /* Class 2 query optimization          */
 | |
| #define SQL_QUERYOPT_3         3       /* Class 3 query optimization          */
 | |
| #define SQL_QUERYOPT_5         5       /* Class 5 query optimization          */
 | |
| #define SQL_QUERYOPT_7         7       /* Class 7 query optimization          */
 | |
| #define SQL_QUERYOPT_9         9       /* Class 9 query optimization          */
 | |
| 
 | |
| /* Maximum sqlchar length for option[n].val when option[n].type is SQL        */
 | |
| /* TARGET_OPT                                                                 */
 | |
| #define SQL_MAX_TARGET_LEN     32
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_RESOLVE_OPT       */
 | |
| #define SQL_RESOLVE_ANY        0       /* Conservative binding semantics are  */
 | |
|                                        /* not used                            */
 | |
| #define SQL_RESOLVE_CONSERVATIVE 1     /* Conservative binding semantics are  */
 | |
|                                        /* used                                */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_FEDERATED_OPT     */
 | |
| #define SQL_FEDERATED_NO       0       /* Federated systems are not           */
 | |
|                                        /* supported                           */
 | |
| #define SQL_FEDERATED_YES      1       /* Federated systems are supported     */
 | |
| /* Values used for option[n].val when option[n].type is SQL_PSM_OPT           */
 | |
| #define SQL_PSM_NO             0       /* PSM no                              */
 | |
| #define SQL_PSM_YES            1       /* PSM yes                             */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_LONGERROR_OPT.    */
 | |
| #define SQL_LONGERROR_NO       0       /* Do not generate errors for the use  */
 | |
|                                        /* of long host variable declarations  */
 | |
| #define SQL_LONGERROR_YES      1       /* Generate errors for the use of      */
 | |
|                                        /* long host variable declarations     */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_DECTYPE_OPT.      */
 | |
| #define SQL_DECTYPE_NOCONVERT  0       /* Decimal type not converted          */
 | |
| #define SQL_DECTYPE_CONVERT    1       /* Decimal type converted              */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_KEEPDYNAMIC_OPT   */
 | |
| #define SQL_KEEPDYNAMIC_NO     0       /* Do not keep dynamic SQL statements  */
 | |
|                                        /* after commit points                 */
 | |
| #define SQL_KEEPDYNAMIC_YES    1       /* Keep dynamic SQL statements after   */
 | |
|                                        /* commit points                       */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_DBPROTOCOL_OPT    */
 | |
| #define SQL_DBPROTOCOL_DRDA    0       /* Use DRDA protocol when connecting   */
 | |
|                                        /* to a remote site that is            */
 | |
|                                        /* identified by a three-part name     */
 | |
|                                        /* statement                           */
 | |
| #define SQL_DBPROTOCOL_PRIVATE 1       /* Use a private protocol when         */
 | |
|                                        /* connecting to a remote site that    */
 | |
|                                        /* is identified by a three-part name  */
 | |
|                                        /* statement                           */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_IMMEDWRITE_OPT    */
 | |
| #define SQL_IMMEDWRITE_NO      0       /* Updated pages are written at or     */
 | |
|                                        /* before phase two of commit          */
 | |
| #define SQL_IMMEDWRITE_YES     1       /* Updated pages are written as soon   */
 | |
|                                        /* as the buffer update completes      */
 | |
| #define SQL_IMMEDWRITE_PH1     2       /* Updated pages are written at or     */
 | |
|                                        /* before phase one of commit          */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_ENCODING_OPT      */
 | |
| #define SQL_ENCODING_ASCII     0       /* Host variables in static            */
 | |
|                                        /* statements are encoded in ascii     */
 | |
| #define SQL_ENCODING_EBCDIC    1       /* Host variables in static            */
 | |
|                                        /* statements are encoded in ebcdic    */
 | |
| #define SQL_ENCODING_UNICODE   2       /* Host variables in static            */
 | |
|                                        /* statements are encoded in unicode   */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_OS400NAMING_OPT   */
 | |
| #define SQL_OS400NAMING_SYSTEM 0       /* Use the iSeries system naming       */
 | |
|                                        /* option when accessing DB2 UDB for   */
 | |
|                                        /* iSeries data                        */
 | |
| #define SQL_OS400NAMING_SQL    1       /* Use the SQL naming option when      */
 | |
|                                        /* accessing DB2 UDB for iSeries data  */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_SORTSEQ_OPT       */
 | |
| #define SQL_SORTSEQ_JOBRUN     0       /* Use the NLSS sort sequence table    */
 | |
|                                        /* of the DRDA job on the iSeries      */
 | |
|                                        /* system                              */
 | |
| #define SQL_SORTSEQ_HEX        1       /* Use the EBCDIC sort sequence table  */
 | |
|                                        /* of the DRDA job on the iSeries      */
 | |
|                                        /* system                              */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_REOPT_OPT         */
 | |
| #define SQL_REOPT_NO           0       /* Do not determine an access path at  */
 | |
|                                        /* run time using values for host      */
 | |
|                                        /* variables, parameter markers, and   */
 | |
|                                        /* special registers                   */
 | |
| #define SQL_REOPT_YES          1       /* Re-determine an access path at run  */
 | |
|                                        /* time using values for host          */
 | |
|                                        /* variables, parameter markers, and   */
 | |
|                                        /* special registers                   */
 | |
| #define SQL_REOPT_NONE         2       /* The access path is determined       */
 | |
|                                        /* based on the default estimates for  */
 | |
|                                        /* host variables, parameter markers,  */
 | |
|                                        /* and special registers               */
 | |
| #define SQL_REOPT_ONCE         3       /* Re-determine an access path only    */
 | |
|                                        /* once at run time using values for   */
 | |
|                                        /* host variables, parameter markers,  */
 | |
|                                        /* and special registers               */
 | |
| #define SQL_REOPT_ALWAYS       4       /* Re-determine an access path at      */
 | |
|                                        /* every execution values for host     */
 | |
|                                        /* variables, parameter markers, and   */
 | |
|                                        /* special registers                   */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_CALL_RES_OPT      */
 | |
| #define SQL_CALL_RES_IMMED     0       /* Immediate SP call resolution        */
 | |
| #define SQL_CALL_RES_DEFERRED  1       /* Deferred SP call resolution         */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_STATICREADONLY    */
 | |
| /* OPT                                                                        */
 | |
| #define SQL_STATICRO_NO        0       /* Static cursors take on attributes   */
 | |
|                                        /* as wouldnormally be generated       */
 | |
|                                        /* given the statementtext and         */
 | |
|                                        /* setting of the LANGLEVEL option.    */
 | |
| #define SQL_STATICRO_YES       1       /* Any static cursor that does not     */
 | |
|                                        /* contain theFOR UPDATE or FOR READ   */
 | |
|                                        /* ONLY clause will beconsidered READ  */
 | |
|                                        /* ONLY.                               */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_NODB_OPT.         */
 | |
| #define SQL_USEDB              0       /* Use a database to precompiler.      */
 | |
| #define SQL_NODB               1       /* Do not use a database to            */
 | |
|                                        /* precompile.                         */
 | |
| 
 | |
| /* Values used for option[n].val when option[n].type is SQL_FEDASYNC_OPT      */
 | |
| #define SQL_FEDASYNC_MIN       0       /* No asynchrony is used               */
 | |
| #define SQL_FEDASYNC_ANY       -1      /* Allows the optimizer to determine   */
 | |
|                                        /* the level of asynchrony             */
 | |
| #define SQL_FEDASYNC_MAX       64000   /* Maximum value                       */
 | |
| 
 | |
| /* Binder Interface Parameters/Return Codes                                   */
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlabndx API
 | |
| ** Invokes the bind utility, which prepares SQL statements stored in the
 | |
| ** bind file generated by the precompiler, and creates a package that is
 | |
| ** stored in the database.
 | |
| ** 
 | |
| ** Scope
 | |
| ** 
 | |
| ** This API can be called from any database partition server in db2nodes.cfg. It
 | |
| ** updates the database catalogs on the catalog partition. Its effects are
 | |
| ** visible to all database partition servers.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** One of the following:
 | |
| ** - sysadm or dbadm authority
 | |
| ** - BINDADD privilege if a package does not exist and one of:
 | |
| ** -- IMPLICIT_SCHEMA authority on the database if the schema name
 | |
| ** of the package does not exist
 | |
| ** -- CREATEIN privilege on the schema if the schema name of the
 | |
| ** package exists
 | |
| ** - ALTERIN privilege on the schema if the package exists
 | |
| ** - BIND privilege on the package if it exists.
 | |
| ** 
 | |
| ** The user also needs all privileges required to compile any static SQL
 | |
| ** statements in the application. Privileges granted to groups are not used for
 | |
| ** authorization checking of static statements. If the user has sysadm
 | |
| ** authority, but not explicit privileges to complete the bind, the database
 | |
| ** manager grants explicit dbadm authority automatically.
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** Database
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h 
 | |
| ** 
 | |
| ** sqlabndx API parameters
 | |
| ** 
 | |
| ** pBindFileName
 | |
| ** Input. A string containing the name of the bind file, or the name of a file
 | |
| ** containing a list of bind file names. The bind file names must contain the
 | |
| ** extension .bnd. A path for these files can be specified.
 | |
| ** 
 | |
| ** Precede the name of a bind list file with the at sign (@). For example, a
 | |
| ** fully qualified bind list file name might be: /u/user1/bnd/@all.lst
 | |
| ** 
 | |
| ** The bind list file should contain one or more bind file names, and must have
 | |
| ** the extension .lst.
 | |
| ** 
 | |
| ** Precede all but the first bind file name with a plus symbol (+). The bind
 | |
| ** file names may be on one or more lines. For example, the bind list file
 | |
| ** all.lst might contain:
 | |
| ** mybind1.bnd+mybind2.bnd+
 | |
| ** mybind3.bnd+
 | |
| ** mybind4.bnd
 | |
| ** 
 | |
| ** Path specifications on bind file names in the list file can be used.
 | |
| ** If no path is specified, the database manager takes path information
 | |
| ** from the bind list file.
 | |
| ** 
 | |
| ** pMsgFileName
 | |
| ** Input. A string containing the destination for error, warning, and
 | |
| ** informational messages. Can be the path and the name of an operating system
 | |
| ** file, or a standard device. If a file already exists, it is overwritten.
 | |
| ** If it does not exist, a file is created.
 | |
| ** 
 | |
| ** pBindOptions
 | |
| ** Input. A structure used to pass bind options to the API. For more information
 | |
| ** about this structure, see SQLOPT.
 | |
| ** 
 | |
| ** pSqlca
 | |
| ** Output. A pointer to the sqlca structure.
 | |
| ** 
 | |
| ** Usage notes
 | |
| ** 
 | |
| ** Binding can be done as part of the precompile process for an application
 | |
| ** program source file, or as a separate step at a later time. Use BIND when
 | |
| ** binding is performed as a separate process.
 | |
| ** 
 | |
| ** The name used to create the package is stored in the bind file, and is
 | |
| ** based on the source file name from which it was generated (existing paths
 | |
| ** or extensions are discarded). For example, a precompiled source file
 | |
| ** called myapp.sqc generates a default bind file called myapp.bnd and a
 | |
| ** default package name of MYAPP. (However,
 | |
| **  the bind file name and the
 | |
| ** package name can be overridden at precompile time by using the
 | |
| ** SQL_BIND_OPT and the SQL_PKG_OPT options of sqlaprep.)
 | |
| ** 
 | |
| ** BIND executes under the transaction that the user has started. After
 | |
| ** performing the bind, BIND issues a COMMIT (if bind is successful) or a
 | |
| ** ROLLBACK (if bind is unsuccessful) operation to terminate the current
 | |
| ** transaction and start another one.
 | |
| ** 
 | |
| ** Binding halts if a fatal error or more than 100 errors occur. If a
 | |
| ** fatal error occurs during binding, BIND stops binding, attempts to
 | |
| ** close all files, and discards the package.
 | |
| ** 
 | |
| ** Binding application programs have prerequisite requirements and restrictions
 | |
| ** beyond the scope of this manual. For example, an application cannot be bound
 | |
| ** from a V8 client to a V8 server, and then executed against a V7 server.
 | |
| ** 
 | |
| ** The Bind option types and values are defined in sql.
 | |
| ** 
 | |
| ** REXX API syntax
 | |
| ** 
 | |
| ** This API can be called from REXX through the SQLDB2 interface.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Bind                            */
 | |
|   sqlabndx (
 | |
|         _SQLOLDCHAR * pBindFileName,       /* bind file name                  */
 | |
|         _SQLOLDCHAR * pMsgFileName,        /* message file                    */
 | |
|         struct sqlopt * pBindOptions,      /* bind options                    */
 | |
|         struct sqlca * pSqlca);            /* SQLCA                           */
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlarbnd API
 | |
| ** Allows the user to recreate a package stored in the database without the need
 | |
| ** for a bind file.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** One of the following:
 | |
| ** - sysadm or dbadm authority
 | |
| ** - ALTERIN privilege on the schema
 | |
| ** - BIND privilege on the package.
 | |
| ** 
 | |
| ** The authorization ID logged in the BOUNDBY column of the SYSCAT.PACKAGES
 | |
| ** system catalog table, which is the ID of the most recent binder of the
 | |
| ** package, is used as the binder authorization ID for the rebind, and for
 | |
| ** the default schema for table references in the package. Note that this
 | |
| ** default qualifier may be different from the authorization ID of the
 | |
| ** user executing the rebind request. REBIND will use the same bind
 | |
| ** options that were specified when the package was created.
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** Database
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqlarbnd API parameters
 | |
| ** 
 | |
| ** pPackageName
 | |
| ** Input. A string containing the qualified or unqualified name that designates
 | |
| ** the package to be rebound. An unqualified package-name is implicitly
 | |
| ** qualified by the current authorization ID. This name does not include the
 | |
| ** package version. When specifying a package that has a version that is not
 | |
| ** the empty string, then the version-id must be specified using the
 | |
| ** SQL_VERSION_OPT rebind option.
 | |
| ** 
 | |
| ** pSqlca
 | |
| ** Output. A pointer to the sqlca structure.
 | |
| ** 
 | |
| ** pRebindOptions
 | |
| ** Input. A pointer to the SQLOPT structure, used to pass rebind options to the
 | |
| ** API. For more information about this structure, see SQLOPT.
 | |
| ** 
 | |
| ** Usage notes
 | |
| ** 
 | |
| ** REBIND does not automatically commit the transaction following a successful
 | |
| ** rebind. The user must explicitly commit the transaction. This enables
 | |
| ** "what if " analysis, in which the user updates certain statistics, and
 | |
| ** then tries to rebind the package to see what changes. It also permits
 | |
| ** multiple rebinds within a unit of work.
 | |
| ** 
 | |
| ** This API:
 | |
| ** 
 | |
| ** - Provides a quick way to recreate a package. This enables the user to take
 | |
| ** advantage of a change in the system without a need for the original
 | |
| ** bind file.fs. For example, if it is likely that a particular SQL
 | |
| ** statement can take advantage of a newly created index, REBIND can be
 | |
| ** used to recreate the package. REBIND can also be used to recreate
 | |
| ** packages after db2Runstats has been executed, thereby taking advantage
 | |
| ** of the new statistics.
 | |
| ** 
 | |
| ** - Provides a method to recreate inoperative packages. Inoperative packages
 | |
| ** must be explicitly rebound by invoking either the bind utility or the rebind
 | |
| ** utility. A package will be marked inoperative (the VALID column of the
 | |
| ** SYSCAT.PACKAGES system catalog will be set to X) if a function instance on
 | |
| ** which the package depends is dropped. The rebind conservative option is
 | |
| ** not supported for inoperative packages.
 | |
| ** 
 | |
| ** - Gives users control over the rebinding of invalid packages. Invalid
 | |
| ** packages will be automatically (or implicitly) rebound by the database
 | |
| ** manager when they are executed. This may result in a noticeable delay
 | |
| ** in the execution of the first SQL request for the invalid package. It
 | |
| ** may be desirable to explicitly rebind invalid packages, rather than
 | |
| ** allow the system to automatically rebind them, in order to eliminate
 | |
| ** the initial delay and to prevent unexpected SQL error messages which
 | |
| ** may be returned in case the implicit rebind fails. For example,
 | |
| ** following migration, all packages stored in the database will be
 | |
| ** invalidated by the DB2 Version 5 migration process. Given that this
 | |
| ** may involve a large number of packages, it may be desirable to
 | |
| ** explicitly rebind all of the invalid packages at one time. This
 | |
| ** explicit rebinding can be accomplished using BIND, REBIND, or the
 | |
| ** db2rbind tool.
 | |
| ** 
 | |
| ** The choice of whether to use BIND or REBIND to explicitly rebind a package
 | |
| ** depends on the circumstances. It is recommended that REBIND be used
 | |
| ** whenever the situation does not specifically require the use of BIND,
 | |
| ** since the performance of REBIND is significantly better than that of
 | |
| ** BIND. BIND must be used, however:
 | |
| ** 
 | |
| ** - When there have been modifications to the program (for example, when
 | |
| ** SQL statements have been added or deleted, or when the package does
 | |
| ** not match the executable for the program).
 | |
| ** 
 | |
| ** - When the user wishes to modify any of the bind options as part of the
 | |
| ** rebind. REBIND does not support any bind options. For example, if the user
 | |
| ** wishes to have privileges on the package granted as part of the bind
 | |
| ** process, BIND must be used, since it has an SQL_GRANT_OPT option.
 | |
| ** 
 | |
| ** - When the package does not currently exist in the database.
 | |
| ** 
 | |
| ** - When detection of all bind errors is desired. REBIND only returns the first
 | |
| ** error it detects, and then ends, whereas the BIND command returns the
 | |
| ** first 100 errors that occur during binding.
 | |
| ** 
 | |
| ** REBIND is supported by DB2 Connect.
 | |
| ** 
 | |
| ** If REBIND is executed on a package that is in use by another user, the rebind
 | |
| ** will not occur until the other user's logical unit of work ends, because an
 | |
| ** exclusive lock is held on the package's record in the SYSCAT.PACKAGES system
 | |
| ** catalog table during the rebind.
 | |
| ** 
 | |
| ** When REBIND is executed, the database manager recreates the package from
 | |
| ** the SQL statements stored in the SYSCAT.STATEMENTS system catalog table.
 | |
| ** If many versions with the same package number and creator exist, only one
 | |
| ** version can be bound at once. If not specified using the SQL_VERSION_OPT
 | |
| ** rebind option, the VERSION defaults to be "". Even if there is only one
 | |
| ** package with a name and creator that matches the name and creator specified
 | |
| ** in the rebind request, it will not rebound unless its VERSION matches the
 | |
| ** VERSION specified explicitly or implicitly.
 | |
| ** 
 | |
| ** If REBIND encounters an error, processing stops, and an error message is
 | |
| ** returned.
 | |
| ** 
 | |
| ** The Explain tables are populated during REBIND if either SQL_EXPLSNAP_OPT
 | |
| ** or SQL_EXPLAIN_OPT have been set to YES or ALL (check
 | |
| ** EXPLAIN_SNAPSHOT and EXPLAIN_MODE columns in the catalog). The Explain
 | |
| ** tables used are those of the REBIND requester, not the original binder.
 | |
| ** The Rebind option types and values are defined in sql.h.
 | |
| ** 
 | |
| ** REXX API syntax
 | |
| ** 
 | |
| ** This API can be called from REXX through the SQLDB2 interface.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Rebind                          */
 | |
|   sqlarbnd (
 | |
|         char * pPackageName,               /* package name                    */
 | |
|         struct sqlca * pSqlca,             /* SQLCA                           */
 | |
|         struct sqlopt * pRebindOptions);   /* rebind options                  */
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlaprep API
 | |
| ** Processes an application program source file containing embedded SQL
 | |
| ** statements. A modified source file is produced containing host language calls
 | |
| ** for the SQL statements and, by default, a package is created in the database.
 | |
| ** 
 | |
| ** Scope
 | |
| ** 
 | |
| ** This API can be called from any database partition server in db2nodes.cfg. It
 | |
| ** updates the database catalogs on the catalog partition. Its effects
 | |
| ** are visible to all database partition servers.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** One of the following:
 | |
| ** - sysadm or dbadm authority
 | |
| ** - BINDADD privilege if a package does not exist and one of:
 | |
| ** -- IMPLICIT_SCHEMA authority on the database if the schema name
 | |
| ** of the package does not exist
 | |
| ** -- CREATEIN privilege on the schema if the schema name of the
 | |
| ** package exists
 | |
| ** - ALTERIN privilege on the schema if the package exists
 | |
| ** - BIND privilege on the package if it exists.
 | |
| ** 
 | |
| ** The user also needs all privileges required to compile any static SQL
 | |
| ** statements in the application. Privileges granted to groups are not
 | |
| ** used for authorization checking of static statements. If the user
 | |
| ** has sysadm authority, but not explicit privileges to complete the
 | |
| ** bind, the database manager grants explicit dbadm authority
 | |
| ** automatically.
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** Database
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqlaprep API parameters
 | |
| ** 
 | |
| ** pProgramName
 | |
| ** Input. A string containing the name of the application to be precompiled. Use
 | |
| ** the following extensions:
 | |
| ** - .sqb - for COBOL applications
 | |
| ** - .sqc - for C applications
 | |
| ** - .sqC - for UNIX C++ applications
 | |
| ** - .sqf - for FORTRAN applications
 | |
| ** - .sqx - for C++ applications
 | |
| ** 
 | |
| ** When the TARGET option is used, the input file name extension does not have
 | |
| ** to be from this predefined list.
 | |
| ** 
 | |
| ** The preferred extension for C++ applications containing embedded SQL on UNIX
 | |
| ** based systems is sqC; however, the sqx convention, which was invented for
 | |
| ** systems that are not case sensitive, is tolerated by UNIX based systems.
 | |
| ** 
 | |
| ** pMsgFileName
 | |
| ** Input. A string containing the destination for error, warning, and
 | |
| ** informational messages. Can be the path and the name of an operating
 | |
| ** system file, or a standard device. If a file already exists, it is
 | |
| ** overwritten. If it does not exist, a file is created.
 | |
| ** 
 | |
| ** pPrepOptions
 | |
| ** Input. A structure used to pass precompile options to the API. For more
 | |
| ** information about this structure, see SQLOPT.
 | |
| ** 
 | |
| ** pSqlca
 | |
| ** Output. A pointer to the sqlca structure.
 | |
| ** 
 | |
| ** Usage notes
 | |
| ** 
 | |
| ** A modified source file is produced, which contains host language
 | |
| ** equivalents to the SQL statements. By default, a package is created
 | |
| ** in the database to which a connection has been established. The name
 | |
| ** of the package is the same as the program file name (minus the
 | |
| ** extension and folded to uppercase), up to a maximum of 8 characters.
 | |
| ** 
 | |
| ** Following connection to a database, sqlaprep executes under the
 | |
| ** transaction that was started. PRECOMPILE PROGRAM then issues a COMMIT
 | |
| ** or a ROLLBACK operation to terminate the current transaction and start
 | |
| ** another one.
 | |
| ** 
 | |
| ** Precompiling stops if a fatal error or more than 100 errors occur. If a fatal
 | |
| ** error does occur, PRECOMPILE PROGRAM stops precompiling, attempts to
 | |
| ** close all files, and discards the package.
 | |
| ** 
 | |
| ** The Precompile option types and values are defined in sql.h.
 | |
| ** 
 | |
| ** REXX API syntax
 | |
| ** 
 | |
| ** This API can be called from REXX through the SQLDB2 interface.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Precompile Program              */
 | |
|   sqlaprep (
 | |
|         _SQLOLDCHAR * pProgramName,        /* source file name                */
 | |
|         _SQLOLDCHAR * pMsgFileName,        /* message file name               */
 | |
|         struct sqlopt * pPrepOptions,      /* precompile options              */
 | |
|         struct sqlca * pSqlca);            /* SQLCA                           */
 | |
| 
 | |
| /* Generic Interfaces to the Binder and Precompiler                           */
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlgbndx API
 | |
| ** sqlgbndx API-specific parameters
 | |
| ** 
 | |
| ** pMsgFileName
 | |
| ** Input. A string containing the destination for error, warning, and
 | |
| ** informational messages. Can be the path and the name of an operating
 | |
| ** system file, or a standard device. If a file already exists, it is
 | |
| ** overwritten. If it does not exist, a file is created.
 | |
| ** 
 | |
| ** BindFileNameLen
 | |
| ** Input. Length in bytes of the pBindFileName parameter.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Bind                            */
 | |
|   sqlgbndx (
 | |
|         unsigned short MsgFileNameLen,     /* message file name length        */
 | |
|         unsigned short BindFileNameLen,    /* bind file name length           */
 | |
|         struct sqlca * pSqlca,             /* SQLCA                           */
 | |
|         struct sqlopt * pBindOptions,      /* binder options                  */
 | |
|         _SQLOLDCHAR * pMsgFileName,        /* message file                    */
 | |
|         _SQLOLDCHAR * pBindFileName);      /* bind file name                  */
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlgrbnd API
 | |
| ** sqlgrbnd API-specific parameters
 | |
| ** 
 | |
| ** PackageNameLen
 | |
| ** Input. Length in bytes of the pPackageName parameter.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Rebind                          */
 | |
|   sqlgrbnd (
 | |
|         unsigned short PackageNameLen,     /* package name length             */
 | |
|         char * pPackageName,               /* package name                    */
 | |
|         struct sqlca * pSqlca,             /* SQLCA                           */
 | |
|         struct sqlopt * pRebindOptions);   /* rebind options                  */
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlgprep API
 | |
| ** sqlgprep API-specific parameters
 | |
| ** 
 | |
| ** MsgFileNameLen
 | |
| ** Input. Length in bytes of the pMsgFileName parameter.
 | |
| ** 
 | |
| ** ProgramNameLen
 | |
| ** Input. Length in bytes of the pProgramName parameter.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Precompile Program              */
 | |
|   sqlgprep (
 | |
|         unsigned short MsgFileNameLen,     /* message file name length        */
 | |
|         unsigned short ProgramNameLen,     /* source file name length         */
 | |
|         struct sqlca * pSqlca,             /* SQLCA                           */
 | |
|         struct sqlopt * pPrepOptions,      /* precompile options              */
 | |
|         _SQLOLDCHAR * pMsgFileName,        /* message file name               */
 | |
|         _SQLOLDCHAR * pProgramName);       /* source file name                */
 | |
| 
 | |
| /* Application Context apis                                                   */
 | |
| 
 | |
| 
 | |
| #define SQL_CTX_ORIGINAL 0                 /* serial access                   */
 | |
| #define SQL_CTX_MULTI_MANUAL 1             /* concurrent access               */
 | |
| #define SQL_CTX_TRUSTED_ROUTINE 2          /* trusted routine (internal)      */
 | |
| /******************************************************************************
 | |
| ** sqleSetTypeCtx API
 | |
| ** Sets the application context type. This API should be the first database API
 | |
| ** called inside an application.
 | |
| ** 
 | |
| ** Scope
 | |
| ** 
 | |
| ** The scope of this API is limited to the immediate process.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqleSetTypeCtx API parameters
 | |
| ** 
 | |
| ** lOptions
 | |
| ** Input. Valid values are:
 | |
| ** 
 | |
| ** - SQL_CTX_ORIGINAL
 | |
| ** All threads will use the same context, and concurrent access will be blocked.
 | |
| ** This is the default if none of these APIs is called.
 | |
| ** 
 | |
| ** - SQL_CTX_MULTI_MANUAL
 | |
| ** All threads will use separate contexts, and it is up to the application to
 | |
| ** manage the context for each thread. See
 | |
| ** - sqleBeginCtx API
 | |
| ** - sqleAttachToCtx API 
 | |
| ** - sqleDetachFromCtx API
 | |
| ** - sqleEndCtx API
 | |
| ** 
 | |
| ** The following restrictions/changes apply when this option is used:
 | |
| ** - When termination is normal, automatic COMMIT at process termination is
 | |
| ** disabled. All outstanding transactions are rolled back, and all COMMITs must
 | |
| ** be done explicitly.
 | |
| ** - sqleintr API interrupts all contexts. To interrupt a specific context, use
 | |
| ** sqleInterruptCtx.
 | |
| ** 
 | |
| ** Usage notes
 | |
| ** 
 | |
| ** This API must be called before any other database call, and only the
 | |
| ** first call is effective.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Set Application Context         */
 | |
|   sqleSetTypeCtx (
 | |
|         sqlint32 lOptions);                /* options                         */
 | |
| 
 | |
| 
 | |
| #define SQL_CTX_BEGIN_ALL 0                /* create & attach                 */
 | |
| #define SQL_CTX_CREATE_ONLY 1              /* create only                     */
 | |
| /******************************************************************************
 | |
| ** sqleBeginCtx API
 | |
| ** Creates an application context, or creates and then attaches to an
 | |
| ** application context. More than one application context can be
 | |
| ** created. Each context has its own commit scope. Different threads
 | |
| ** can attach to different contexts (see the sqleAttachToCtx API).
 | |
| ** Any database API calls made by such threads will not be serialized
 | |
| ** with one another.
 | |
| ** 
 | |
| ** Scope
 | |
| ** 
 | |
| ** The scope of this API is limited to the immediate process.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqleBeginCtx API parameters
 | |
| ** 
 | |
| ** ppCtx
 | |
| ** Output. A data area allocated out of private memory for the storage
 | |
| ** of context information.
 | |
| ** 
 | |
| ** lOptions
 | |
| ** Input. Valid values are:
 | |
| ** - SQL_CTX_CREATE_ONLY
 | |
| ** The context memory will be allocated, but there will be no attachment.
 | |
| ** - SQL_CTX_BEGIN_ALL
 | |
| ** The context memory will be allocated, and then a call to sqleAttachToCtx will
 | |
| ** be made for the current thread. If this option is used, the ppCtx
 | |
| ** parameter can be NULL. If the thread is already attached to a context,
 | |
| ** the call will fail.
 | |
| ** 
 | |
| ** reserved
 | |
| ** Reserved for future use. Must be set to NULL.
 | |
| ** 
 | |
| ** pSqlca
 | |
| ** Output. A pointer to the sqlca structure.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Create Application Context      */
 | |
|   sqleBeginCtx (
 | |
|         void ** ppCtx,                     /* pointer to a pointer to ctx     */
 | |
|         sqlint32 lOptions,                 /* lOptions                        */
 | |
|         void * reserved,                   /* reserved                        */
 | |
|         struct sqlca * pSqlca);            /* SQLCA                           */
 | |
| 
 | |
| 
 | |
| #define SQL_CTX_END_ALL 0                  /* detach & free                   */
 | |
| #define SQL_CTX_FREE_ONLY 1                /* free only                       */
 | |
| /******************************************************************************
 | |
| ** sqleEndCtx API
 | |
| ** Frees all memory associated with a given context.
 | |
| ** 
 | |
| ** Scope
 | |
| ** 
 | |
| ** The scope of this API is limited to the immediate process.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqleEndCtx API parameters
 | |
| ** 
 | |
| ** ppCtx
 | |
| ** Output. A data area in private memory (used for the storage of context
 | |
| ** information) that is freed.
 | |
| ** 
 | |
| ** lOptions
 | |
| ** Input. Valid values are:
 | |
| ** - SQL_CTX_FREE_ONLY
 | |
| ** The context memory will be freed only if a prior detach has been done.
 | |
| ** Note:
 | |
| ** pCtx must be a valid context previously allocated by sqleBeginCtx.
 | |
| ** - SQL_CTX_END_ALL
 | |
| ** If necessary, a call to sqleDetachFromCtx will be made before the memory is
 | |
| ** freed.
 | |
| ** Note:
 | |
| ** A detach will be done even if the context is still in use. If this option is
 | |
| ** used, the ppCtx parameter can be NULL, but if passed, it must be a valid
 | |
| ** context previously allocated by sqleBeginCtx. A call to
 | |
| ** sqleGetCurrentCtx will be made, and the current context freed from there.
 | |
| ** 
 | |
| ** reserved
 | |
| ** Reserved for future use. Must be set to NULL.
 | |
| ** 
 | |
| ** pSqlca
 | |
| ** Output. A pointer to the sqlca structure.
 | |
| ** 
 | |
| ** Usage notes
 | |
| ** 
 | |
| ** If a database connection exists, or the context has been attached by another
 | |
| ** thread, this call will fail.
 | |
| ** Note:
 | |
| ** If a context calls an API that establishes an instance attachment
 | |
| ** (for example, db2CfgGet, it is necessary to detach from the instance
 | |
| ** using sqledtin before calling sqleEndCtx.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Destroy Application Context     */
 | |
|   sqleEndCtx (
 | |
|         void ** ppCtx,                     /* pointer to a pointer to ctx     */
 | |
|         sqlint32 lOptions,                 /* lOptions                        */
 | |
|         void * reserved,                   /* reserved                        */
 | |
|         struct sqlca * pSqlca);            /* SQLCA                           */
 | |
| 
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqleAttachToCtx API
 | |
| ** Makes the current thread use a specified context. All subsequent
 | |
| ** database calls made on this thread will use this context. If more
 | |
| ** than one thread is attached to a given context, access is serialized
 | |
| ** for these threads, and they share a commit scope.
 | |
| ** 
 | |
| ** Scope
 | |
| ** 
 | |
| ** The scope of this API is limited to the immediate process.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqleAttachToCtx API parameters
 | |
| ** 
 | |
| ** pCtx
 | |
| ** Input. A valid context previously allocated by sqleBeginCtx.
 | |
| ** 
 | |
| ** reserved
 | |
| ** Reserved for future use. Must be set to NULL.
 | |
| ** 
 | |
| ** pSqlca
 | |
| ** Output. A pointer to the sqlca structure.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Attach to Application Context   */
 | |
|   sqleAttachToCtx (
 | |
|         void * pCtx,                       /* pointer to ctx                  */
 | |
|         void * reserved,                   /* reserved                        */
 | |
|         struct sqlca * pSqlca);            /* SQLCA                           */
 | |
| 
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqleDetachFromCtx API
 | |
| ** Detaches the context being used by the current thread. The context will be
 | |
| ** detached only if an attach to that context has previously been made.
 | |
| ** 
 | |
| ** Scope
 | |
| ** 
 | |
| ** The scope of this API is limited to the immediate process.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqleDetachFromCtx API parameters
 | |
| ** 
 | |
| ** pCtx
 | |
| ** Input. A valid context previously allocated by sqleBeginCtx.
 | |
| ** 
 | |
| ** reserved
 | |
| ** Reserved for future use. Must be set to NULL.
 | |
| ** 
 | |
| ** pSqlca
 | |
| ** Output. A pointer to the sqlca structure.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Detach Application Context      */
 | |
|   sqleDetachFromCtx (
 | |
|         void * pCtx,                       /* pointer to ctx                  */
 | |
|         void * reserved,                   /* reserved                        */
 | |
|         struct sqlca * pSqlca);            /* SQLCA                           */
 | |
| 
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqleGetCurrentCtx API
 | |
| ** Returns the current context associated with a thread.
 | |
| ** 
 | |
| ** Scope
 | |
| ** 
 | |
| ** The scope of this API is limited to the immediate process.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqleGetCurrentCtx API parameters
 | |
| ** 
 | |
| ** ppCtx
 | |
| ** Output. A data area allocated out of private memory for the storage
 | |
| ** of context information.
 | |
| ** 
 | |
| ** reserved
 | |
| ** Reserved for future use. Must be set to NULL.
 | |
| ** 
 | |
| ** pSqlca
 | |
| ** Output. A pointer to the sqlca structure.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Return Application Context      */
 | |
|   sqleGetCurrentCtx (
 | |
|         void ** ppCtx,                     /* pointer to a pointer to ctx     */
 | |
|         void * reserved,                   /* reserved                        */
 | |
|         struct sqlca * pSqlca);            /* SQLCA                           */
 | |
| 
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqleInterruptCtx API
 | |
| ** Interrupts the specified context.
 | |
| ** 
 | |
| ** Scope
 | |
| ** 
 | |
| ** The scope of this API is limited to the immediate process.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** Database
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqleInterruptCtx API parameters
 | |
| ** 
 | |
| ** pCtx
 | |
| ** Input. A valid context previously allocated by sqleBeginCtx.
 | |
| ** 
 | |
| ** reserved
 | |
| ** Reserved for future use. Must be set to NULL.
 | |
| ** 
 | |
| ** pSqlca
 | |
| ** Output. A pointer to the sqlca structure.
 | |
| ** 
 | |
| ** Usage notes
 | |
| ** 
 | |
| ** During processing, this API:
 | |
| ** - Switches to the context that has been passed in
 | |
| ** - Sends an interrupt
 | |
| ** - Switches to the original context
 | |
| ** - Exits.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Interrupt Context               */
 | |
|   sqleInterruptCtx (
 | |
|         void * pCtx,                       /* pointer to ctx                  */
 | |
|         void * reserved,                   /* reserved                        */
 | |
|         struct sqlca * pSqlca);            /* SQLCA                           */
 | |
| 
 | |
| 
 | |
| /******************************************************************************
 | |
| ** Error/SQLSTATE Message Retrieval Interface Parameters/Return Codes
 | |
| *******************************************************************************/
 | |
| 
 | |
| /* Get Error Message Macro                                                    */
 | |
| #define  sqlaintp(msgbuf,bufsize,linesize,sqlcaptr) \
 | |
| sqlaintp_api(msgbuf,bufsize,linesize, \
 | |
| (char *)"db2sql.mo", sqlcaptr)
 | |
| /******************************************************************************
 | |
| ** sqlaintp API
 | |
| ** Retrieves the message associated with an error condition specified by the
 | |
| ** sqlcode field of the sqlca structure.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqlaintp API parameters
 | |
| ** 
 | |
| ** pBuffer
 | |
| ** Output. A pointer to a string buffer where the message text is placed. If the
 | |
| ** message must be truncated to fit in the buffer, the truncation allows for the
 | |
| ** null string terminator character.
 | |
| ** 
 | |
| ** BufferSize
 | |
| ** Input. Size, in bytes, of a string buffer to hold the retrieved message text.
 | |
| ** 
 | |
| ** LineWidth
 | |
| ** Input. The maximum line width for each line of message text. Lines are broken
 | |
| ** on word boundaries. A value of zero indicates that the message text
 | |
| ** is returned without line breaks.
 | |
| ** 
 | |
| ** pSqlca
 | |
| ** Output. A pointer to the sqlca structure.
 | |
| ** 
 | |
| ** Usage notes
 | |
| ** 
 | |
| ** One message is returned per call.
 | |
| ** 
 | |
| ** A new line (line feed, LF, or carriage return/line feed, CR/LF) sequence is
 | |
| ** placed at the end of each message.
 | |
| ** 
 | |
| ** If a positive line width is specified, new line sequences are inserted
 | |
| ** between words so that the lines do not exceed the line width.
 | |
| ** 
 | |
| ** If a word is longer than a line width, the line is filled with as many
 | |
| ** characters as will fit, a new line is inserted, and the remaining characters
 | |
| ** are placed on the next line.
 | |
| ** 
 | |
| ** In a multi-threaded application, sqlaintp must be attached to a
 | |
| ** valid context; otherwise, the message text for SQLCODE - 1445 cannot
 | |
| ** be obtained
 | |
| ** 
 | |
| ** Return codes
 | |
| ** 
 | |
| ** Code
 | |
| ** 
 | |
| ** Message
 | |
| ** 
 | |
| ** +i
 | |
| ** Positive integer indicating the number of bytes in the formatted message. If
 | |
| ** this is greater than the buffer size input by the caller, the message is
 | |
| ** truncated.
 | |
| ** 
 | |
| ** -1
 | |
| ** Insufficient memory available for message formatting services to
 | |
| ** function. The requested message is not returned.
 | |
| ** 
 | |
| ** -2
 | |
| ** No error. The sqlca did not contain an error code (SQLCODE = 0).
 | |
| ** 
 | |
| ** -3
 | |
| ** Message file inaccessible or incorrect.
 | |
| ** 
 | |
| ** -4
 | |
| ** Line width is less than zero.
 | |
| ** 
 | |
| ** -5
 | |
| ** Invalid sqlca, bad buffer address, or bad buffer length.
 | |
| ** 
 | |
| ** If the return code is -1 or -3, the message buffer will contain additional
 | |
| ** information about the problem.
 | |
| ** 
 | |
| ** REXX API syntax
 | |
| ** 
 | |
| ** GET MESSAGE INTO :msg [LINEWIDTH width]
 | |
| ** 
 | |
| ** REXX API parameters
 | |
| ** 
 | |
| ** msg
 | |
| ** REXX variable into which the text message is placed.
 | |
| ** 
 | |
| ** width 
 | |
| ** Maximum line width for each line in the text message. The line is broken on
 | |
| ** word boundaries. If width is not given or set to 0, the message text returns
 | |
| ** without line breaks.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Get Error Message               */
 | |
|   sqlaintp_api (
 | |
|         char * pBuffer,                    /* buffer for message text         */
 | |
|         short BufferSize,                  /* buffer size                     */
 | |
|         short LineWidth,                   /* line width                      */
 | |
|         const char * pMsgFileName,         /* message file                    */
 | |
|         struct sqlca * pSqlca);            /* SQLCA                           */
 | |
| 
 | |
| /* Generic Interface to Error Message Retrieval                               */
 | |
| /******************************************************************************
 | |
| ** sqlgintp API
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Get Error Message               */
 | |
|   sqlgintp (
 | |
|         short BufferSize,                  /* buffer size                     */
 | |
|         short LineWidth,                   /* line width                      */
 | |
|         struct sqlca * pSqlca,             /* SQLCA                           */
 | |
|         _SQLOLDCHAR * pBuffer);            /* buffer                          */
 | |
| 
 | |
| /******************************************************************************
 | |
| ** sqlogstt API
 | |
| ** Retrieves the message text associated with an SQLSTATE value.
 | |
| ** 
 | |
| ** Authorization
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** Required connection
 | |
| ** 
 | |
| ** None
 | |
| ** 
 | |
| ** API include file
 | |
| ** 
 | |
| ** sql.h
 | |
| ** 
 | |
| ** sqlogstt API parameters
 | |
| ** 
 | |
| ** pBuffer
 | |
| ** Output. A pointer to a string buffer where the message text is to be
 | |
| ** placed. If the message must be truncated to fit in the buffer, the
 | |
| ** truncation allows for the null string terminator character.
 | |
| ** 
 | |
| ** BufferSize
 | |
| ** Input. Size, in bytes, of a string buffer to hold the retrieved message text.
 | |
| ** 
 | |
| ** LineWidth
 | |
| ** Input. The maximum line width for each line of message text. Lines are broken
 | |
| ** on word boundaries. A value of zero indicates that the message text is
 | |
| ** returned without line breaks.
 | |
| ** 
 | |
| ** pSqlstate
 | |
| ** Input. A string containing the SQLSTATE for which the message text is to be
 | |
| ** retrieved. This field is alphanumeric and must be either five-digit (specific
 | |
| ** SQLSTATE) or two-digit (SQLSTATE class, first two digits of an
 | |
| ** SQLSTATE). This field does not need to be NULL-terminated if 5 digits
 | |
| ** are being passed in, but must be NULL-terminated if 2 digits are being
 | |
| ** passed.
 | |
| ** 
 | |
| ** Usage notes
 | |
| ** 
 | |
| ** One message is returned per call.
 | |
| ** 
 | |
| ** A LF/NULL sequence is placed at the end of each message.
 | |
| ** 
 | |
| ** If a positive line width is specified, LF/NULL sequences are inserted between
 | |
| ** words so that the lines do not exceed the line width.
 | |
| ** 
 | |
| ** If a word is longer than a line width, the line is filled with as many
 | |
| ** characters as will fit, a LF/NULL is inserted, and the remaining
 | |
| ** characters are placed on the next line.
 | |
| ** 
 | |
| ** Return codes
 | |
| ** 
 | |
| ** Code
 | |
| ** 
 | |
| ** Message
 | |
| ** 
 | |
| ** +i
 | |
| ** Positive integer indicating the number of bytes in the formatted message. If
 | |
| ** this is greater than the buffer size input by the caller, the message is
 | |
| ** truncated.
 | |
| ** 
 | |
| ** -1
 | |
| ** Insufficient memory available for message formatting services to
 | |
| ** function. The requested message is not returned.
 | |
| ** 
 | |
| ** -2
 | |
| ** The SQLSTATE is in the wrong format. It must be alphanumeric and be
 | |
| ** either 2 or 5 digits in length.
 | |
| ** 
 | |
| ** -3
 | |
| ** Message file inaccessible or incorrect.
 | |
| ** 
 | |
| ** -4
 | |
| ** Line width is less than zero.
 | |
| ** 
 | |
| ** -5
 | |
| ** Invalid sqlca, bad buffer address, or bad buffer length.
 | |
| ** 
 | |
| ** If the return code is -1 or -3, the message buffer will contain further
 | |
| ** information about the problem.
 | |
| ** 
 | |
| ** REXX API syntax
 | |
| ** 
 | |
| ** GET MESSAGE FOR SQLSTATE sqlstate INTO :msg [LINEWIDTH width]
 | |
| ** 
 | |
| ** REXX API parameters
 | |
| ** 
 | |
| ** sqlstate
 | |
| ** The SQLSTATE for which the message text is to be retrieved.
 | |
| ** 
 | |
| ** msg
 | |
| ** REXX variable into which the message is placed.
 | |
| ** 
 | |
| ** width
 | |
| ** Maximum line width for each line of the message text. The line is broken on
 | |
| ** word boundaries. If a value is not specified, or this parameter is set to 0,
 | |
| ** the message text returns without line breaks.
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Sqlstate Message Retrieval      */
 | |
|   sqlogstt (
 | |
|         char * pBuffer,                    /* buffer for message text         */
 | |
|         short BufferSize,                  /* buffer size                     */
 | |
|         short LineWidth,                   /* line width                      */
 | |
|         char * pSqlstate);                 /* sqlstate                        */
 | |
| 
 | |
| /* Generic Interface to SQLSTATE Message Retrieval                            */
 | |
| /******************************************************************************
 | |
| ** sqlggstt API
 | |
| *******************************************************************************/
 | |
| SQL_API_RC SQL_API_FN                      /* Sqlstate Message Retrieval      */
 | |
|   sqlggstt (
 | |
|         short BufferSize,                  /* buffer size                     */
 | |
|         short LineWidth,                   /* line width                      */
 | |
|         char * pSqlstate,                  /* sqlstate                        */
 | |
|         char * pBuffer);                   /* buffer                          */
 | |
| 
 | |
| /* Return Codes for sqlaintp/sqlogstt                                         */
 | |
| #define SQLA_ERR_BADCC         -1      /* insufficient memory for msg file    */
 | |
| #define SQLA_ERR_NOCOD         -2      /* no error code in SQLCA              */
 | |
| #define SQLA_ERR_NOMSG         -3      /* message file inaccessible or        */
 | |
|                                        /* incorrect                           */
 | |
| #define SQLA_ERR_BADLL         -4      /* specified line length negative      */
 | |
| #define SQLA_ERR_BADCA         -5      /* invalid sqlca/buffer addr/length    */
 | |
| 
 | |
| /* Administrative/Database Authorizations returned from Get Administrative    */
 | |
| /* Authorizations function                                                    */
 | |
| /* Authorizations granted explicitly to user                                  */
 | |
| #define SQL_SYSADM             0x1     /* SYSADM Authority                    */
 | |
| #define SQL_DBADM              0x2     /* DBADM Authority                     */
 | |
| #define SQL_CREATETAB          0x4     /* CREATETAB Privilege                 */
 | |
| #define SQL_BINDADD            0x8     /* BINDADD Privilege                   */
 | |
| #define SQL_CONNECT            0x10    /* CONNECT Privilege                   */
 | |
| #define SQL_CREATE_NOT_FENC    0x20    /* CREATE_NOT_FENCED Privilege         */
 | |
| #define SQL_SYSCTRL            0x40    /* SYSCTRL Authority                   */
 | |
| #define SQL_SYSMAINT           0x80    /* SYSMAINT Authority                  */
 | |
| #define SQL_IMPLICIT_SCHEMA    0x10000 /* IMPLICIT_SCHEMA Privilege           */
 | |
| #define SQL_LOAD               0x20000 /* LOAD Privilege                      */
 | |
| #define SQL_CREATE_EXT_RT      0x40000 /* CREATE_EXTERNAL_ROUTINE Privilege   */
 | |
| #define SQL_LIBADM             0x80000 /* LIBRARYADM Privilege                */
 | |
| #define SQL_QUIESCE_CONN       0x100000 /* QUIESCE_CONNECT Privilege          */
 | |
| #define SQL_SECADM             0x200000 /* SECURITYADM Privilege              */
 | |
| #define SQL_SYSQUIESCE         0x400000 /* SYSQUIESCE Authority               */
 | |
| #define SQL_SYSMON             0x800000 /* SYSMON Authority                   */
 | |
| 
 | |
| /* Composite of authorizations granted explicitly to user, to groups of       */
 | |
| /* which user is a member, and to PUBLIC                                      */
 | |
| #define SQL_SYSADM_GRP         0x100
 | |
| #define SQL_DBADM_GRP          0x200
 | |
| #define SQL_CREATETAB_GRP      0x400
 | |
| #define SQL_BINDADD_GRP        0x800
 | |
| #define SQL_CONNECT_GRP        0x1000
 | |
| #define SQL_CREATE_NOT_FENC_GRP 0x2000
 | |
| #define SQL_SYSCTRL_GRP        0x4000
 | |
| #define SQL_SYSMAINT_GRP       0x8000
 | |
| #define SQL_IMPLICIT_SCHEMA_GRP 0x1000000
 | |
| #define SQL_LOAD_GRP           0x2000000
 | |
| #define SQL_CREATE_EXT_RT_GRP  0x4000000
 | |
| #define SQL_LIBADM_GRP         0x8000000
 | |
| #define SQL_QUIESCE_CONN_GRP   0x10000000
 | |
| #define SQL_SECADM_GRP         0x20000000
 | |
| #define SQL_SYSQUIESCE_GRP     0x40000000
 | |
| #define SQL_SYSMON_GRP         0x80000000
 | |
| 
 | |
| /* Table/View Authorizations/Dependencies Bit definitions in                  */
 | |
| /* SYSTABAUTH.TABAUTH and SYSPLANDEP.TABAUTH                                  */
 | |
| #define SQL_TAB_CTL            0x1     /* Control Authority                   */
 | |
| #define SQL_TAB_ALT            0x2     /* Alter Privilege                     */
 | |
| #define SQL_TAB_DEL            0x4     /* Delete Privilege/Dependency         */
 | |
| #define SQL_TAB_IDX            0x8     /* Index Privilege                     */
 | |
| #define SQL_TAB_INS            0x10    /* Insert Privilege/Dependency         */
 | |
| #define SQL_TAB_SEL            0x20    /* Select Privilege/Dependency         */
 | |
| #define SQL_TAB_UPD            0x40    /* Update Privilege/Dependency         */
 | |
| #define SQL_TAB_REF            0x80    /* Reference Privilege                 */
 | |
| #define SQL_TAB_KEY            0x2000  /* Key Dependency                      */
 | |
| #define SQL_TAB_CAS            0x4000  /* Cascade Dependency                  */
 | |
| 
 | |
| /* Bit definitions for SYSTABAUTH.TABAUTH indicating the specified table or   */
 | |
| /* view privilege is grantable.                                               */
 | |
| #define SQL_TAB_ALT_G          0x200   /* Alter Privilege Grantable           */
 | |
| #define SQL_TAB_DEL_G          0x400   /* Delete Privilege Grantable          */
 | |
| #define SQL_TAB_IDX_G          0x800   /* Index Privilege Grantable           */
 | |
| #define SQL_TAB_INS_G          0x1000  /* Insert Privilege Grantable          */
 | |
| #define SQL_TAB_SEL_G          0x2000  /* Select Privilege Grantable          */
 | |
| #define SQL_TAB_UPD_G          0x4000  /* Update Privilege Grantable          */
 | |
| #define SQL_TAB_REF_G          0x8000  /* References Privilege Grantable      */
 | |
| 
 | |
| /* Definitions for application remote interface                               */
 | |
| #define SQLZ_DISCONNECT_PROC   1       /* Unload Progam                       */
 | |
| #define SQLZ_HOLD_PROC         2       /* Keep program loaded                 */
 | |
| /* The following functions and symbols are obsolete and may not be supported  */
 | |
| /* in future releases. The obsolete functions are provided for backward       */
 | |
| /* compatibility and exported from DB2API.LIB. All applications should be     */
 | |
| /* migrated to use new APIs.                                                  */
 | |
| #define SQLA_RC_BAD_PASSWD     -4      /* Invalid password                    */
 | |
| #define SQL_MAXSTMTS           32767   /* Maximum statements (see SQL         */
 | |
|                                        /* reference)                          */
 | |
| #define SQL_MAXVARS            32767   /* Maximum host variables per          */
 | |
|                                        /* precompile unit (see SQL            */
 | |
|                                        /* reference)                          */
 | |
| #define SQL_DYNAMICRULES_INVOKE SQL_DYNAMICRULES_INVOKERUN /* Dynamic SQL in  */
 | |
|                                        /* UDF or stored procedure will use    */
 | |
|                                        /* authid of invoker of UDF or stored  */
 | |
|                                        /* procedure                           */
 | |
| #define SQL_DYNAMICRULES_DEFINE SQL_DYNAMICRULES_DEFINERUN /* Dynamic SQL in  */
 | |
|                                        /* UDF or stored procedure will use    */
 | |
|                                        /* authid of definer of UDF or stored  */
 | |
|                                        /* procedure                           */
 | |
| #pragma pack()
 | |
| 
 | |
| #ifdef __cplusplus 
 | |
| }
 | |
| #endif
 | |
| 
 | |
| #endif /* SQL_H_SQL */
 |