mtollari 63d98e39cd Patch level : 12.0 no-patch
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
2017-10-26 09:07:39 +00:00

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 */