ASA Programming Guide
Embedded SQL Programming
The SQL descriptor area (SQLDA)
The contents of sqlda.h are as follows:
#ifndef _SQLDA_H_INCLUDED
#define _SQLDA_H_INCLUDED
#define II_SQLDA
#include "sqlca.h"
#if defined( _SQL_PACK_STRUCTURES )
#include "pshpk1.h"
#endif
#define SQL_MAX_NAME_LEN 30
#define _sqldafar
typedef short int a_SQL_type;
struct sqlname {
short int length; /* length of char data */
char data[ SQL_MAX_NAME_LEN ]; /* data */
};struct sqlvar { /* array of variable descriptors */
short int sqltype; /* type of host variable */
short int sqllen; /* length of host variable */
void *sqldata; /* address of variable */
short int *sqlind; /* indicator variable pointer */
struct sqlname sqlname;
};struct sqlda{
unsigned char sqldaid[8]; /* eye catcher "SQLDA"*/
a_SQL_int32 sqldabc; /* length of sqlda structure*/
short int sqln;
/* descriptor size in number of entries */
short int sqld;
/* number of variables found by DESCRIBE*/
struct sqlvar sqlvar[1];
/* array of variable descriptors */
};#define SCALE(sqllen) ((sqllen)/256)
#define PRECISION(sqllen) ((sqllen)&0xff)
#define SET_PRECISION_SCALE(sqllen,precision,scale) \
sqllen = (scale)*256 + (precision)
#define DECIMALSTORAGE(sqllen) (PRECISION(sqllen)/2 + 1)
typedef struct sqlda SQLDA;
typedef struct sqlvar SQLVAR, SQLDA_VARIABLE;
typedef struct sqlname SQLNAME, SQLDA_NAME;#ifndef SQLDASIZE
#define SQLDASIZE(n) ( sizeof( struct sqlda ) + \
(n-1) * sizeof( struct sqlvar) )
#endif
#if defined( _SQL_PACK_STRUCTURES )
#include "poppk.h"
#endif
#endif