Sample C-language SQLDA description

The following sample description of the SQLDA is for the C programming language. It provides a sample SQLDA definition and definition statements for all DB2 datatypes.

/*
   Sample SQLDA declaration and #defines for all DB2 datatypes.
 */
#ifndef SQLDA_DEF
 #define SQLDA_DEF
 struct SQLDA {
   unsigned char sqldaid[8];
   long sqldabc;
   short sqln;
   short sqld;
   struct sqlvar {
     short sqltype;
     union {
       short sqllen;
       struct {
         unsigned char precision;
         unsigned char scale;
       } SQLDECIMAL;
     } SQLLEN;
     unsigned char *sqldata;
     short *sqlind;
     struct sqlname {
       short length;
       unsigned char data [30];
     } sqlname;
 } sqlvar[0];
 };
#define DATE 384           /* SQLTYPE for DATE              */
 #define NDATE 385          /* SQLTYPE for DATE w/NULL       */
 #define TIME 388           /* SQLTYPE for TIME              */
 #define NTIME 389          /* SQLTYPE for TIME w/NULL       */
 #define TIMESTAMP 392      /* SQLTYPE for TIMESTAMP         */
 #define NTIMESTAMP 393     /* SQLTYPE for TIMESTAMP W/NULL  */
 #define VARCHAR 448        /* SQLTYPE for VARCHAR           */
 #define NVARCHAR 449       /* SQLTYPE for VARCHAR w/NULL    */
 #define CHAR 452           /* SQLTYPE for CVARCHAR          */
 #define NCHAR 453          /* SQLTYPE for VARCHAR w/NULL    */
 #define LONGVARCHAR 456    /* SQLTYPE for LONG VARCHAR      */
 #define NLONGVARCHAR 457   /* SQLTYPE for LVARCHAR w/ NULL  */
 #define FLOAT 480          /* SQLTYPE for FLOAT             */
 #define NFLOAT 481         /* SQLTYPE for FLOAT  w/ NULL    */
 #define DECIMAL 48         /* SQLTYPE for DECIMAL           */
 #define NDECIMAL 485       /* SQLTYPE for DECIMAL w/ NULLS  */
 #define INTEGER 496        /* SQLTYPE for INTEGER           */
 #define NINTEGER 497       /* SQLTYPE for INTEGER w/ NULL   */
 #define SMALLINT 500       /* SQLTYPE for SMALLINT          */
 #define NSMALLINT 501      /* SQLTYPE for SMALL w/ NULL     */
#endif