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)