DSQCOMM for C
The interface communications area file for the C language is named DSQCOMMC.
The DSQCOMMC include file, shown here, is provided with QMF.
/******************************************************************/
/* C include for query callable interface */
/******************************************************************/
/* Structure declare for communications area */
struct dsqcomm {
long int dsq_return_code; /* Function return code */
long int dsq_instance_id; /* ID established in START cmd*/
char dsq_comm_level[12]; /* Communications level id */
char dsq_product[2]; /* Query product id */
char dsq_product_release[2]; /* Query product release */
char dsq_reserve1[28]; /* Reserved */
char dsq_message_id[8]; /* Completion message ID */
char dsq_q_message_id[8]; /* Query message ID */
char dsq_start_parm_error[8]; /* Start parameter in error */
char dsq_cancel_ind[1]; /* Cmd cancelled indicator */
/* 1 = cancelled, 0 = not cancelled*/
char dsq_reserve2[23]; /* RESERVED AREAS */
char dsq_reserve3[156];
char dsq_message_text[128]; /* Message text */
char dsq_q_message_text[128]; /* Query message text */
} ;
/* RETURN CODES */
#define DSQ_SUCCESS 0
#define DSQ_WARNING 4
#define DSQ_FAILURE 8
#define DSQ_SEVERE 16
/* Communications Level */
#define DSQ_CURRENT_COMM_LEVEL "DSQL>001002<"
/* Query Product Codes */
#define DSQ_QRW "01"
#define DSQ_QMF "02"
#define DSQ_QM3 "03"
/* Query Product Release Levels */
#define DSQ_QRW_V1R2 "01"
#define DSQ_QRW_V1R3 "02"
#define DSQ_QMF_V2R4 "01"
#define DSQ_QMF_V3R1 "02"
#define DSQ_QMF_V3R1M1 "03"
#define DSQ_QMF_V3R2 "04"
#define DSQ_QMF_V3R3 "05"
#define DSQ_QMF_V6R1 "06"
#define DSQ_QMF_V7R1 "07"
#define DSQ_QM4_V1R1 "01"
#define DSQ_QMF_V7R2 "08"
#define DSQ_QMF_V8R1 "09"
#define DSQ_QMF_V9R1 "10"
#define DSQ_QMF_V10R1 "11"
#define DSQ_QMF_V11R1 "12"
#define DSQ_QMF_V11R2 "13"
#define DSQ_QMF_V12R1 "14"
#define DSQ_QMF_V13R1 "15"
/* INSTANCE CODES */
#define DSQ_CONTINUE 0
/* CANCELLED INDICATOR */
#define DSQ_CANCEL_YES "1"
#define DSQ_CANCEL_NO "0"
/* VARIABLE TYPES */
#define DSQ_VARIABLE_CHAR "CHAR"
#define DSQ_VARIABLE_FINT "FINT"
#define DSQ_INTERACTIVE "1"
#define DSQ_BATCH "2"
#define DSQ_YES "1"
#define DSQ_NO "2"
/* Call interface structure */
/* Calling format for normal call with 3 parameters */
#define dsqcic(parm1, parm2, parm3 )\
dsqcicx( parm1, parm2, parm3)
/* Calling format for call with CMD_EXT area 9 parameters */
#define dsqcice(parm1, parm2, parm3,\
parm4, parm5, parm6, parm7, parm8, parm9 )\
dsqcicx( parm1, parm2, parm3, \
parm4, parm5, parm6, \
parm7, parm8, parm9 )
/* DECLARE OS LINKAGE FORMAT */
#pragma linkage(dsqcicx, OS)