Figures 2-10 through Figure 2-12
illustrate, respectively, the
type, variable, and externals include files that correspond to the
modified source file in Figure 2-9. Note
that the preprocessor inserts
the following three C compiler directives
to reference the include files:
#include "sqltype"
#include "sqlvar"
#include "sqlextn"
|
These three directives are always inserted into the static or
global declaration part of the program.
Figure 2-10 Sample Type Include File
typedef char ownername_type[21];
typedef char modulename_type[21];
typedef short sqlind;
typedef unsigned char sqlbinary;
typedef int sqlvarbinary;
typedef struct {
int f1;
int f2;
} sqltid;
typedef struct {
int SQLREC1_FIELD1_LEN;
char SQLREC1_FIELD1[133];
} SQLREC1;
typedef struct {
int SQLREC2_FIELD1_LEN;
char SQLREC2_FIELD1[20];
} SQLREC2;
typedef struct {
int SQLREC3_FIELD1_LEN;
char SQLREC3_FIELD1[20];
int SQLREC3_FIELD2_LEN;
char SQLREC3_FIELD2[32];
double SQLREC3_FIELD3;
sqlind SQLREC3_FIELD3_IND;
} SQLREC3;
typedef struct {
SQLREC3 dummy1, dummy2;
} SQLREC4;
#define sqlwarn0 sqlwarn[0]
#define sqlwarn1 sqlwarn[1]
#define sqlwarn2 sqlwarn[2]
#define sqlwarn3 sqlwarn[3]
#define sqlwarn4 sqlwarn[4]
#define sqlwarn5 sqlwarn[5]
#define sqlwarn6 sqlwarn[6]
#define sqlwarn7 sqlwarn[7]
typedef struct {
char sqlaid[8];
int sqlabc;
int sqlcode;
int sqlerrl;
char sqlerrm[256];
char sqlerrp[8];
int sqlerrd[6];
char sqlwarn[8];
char sqlext[8];
} sqlca_type;
typedef struct {
short sqlnty;
short sqltype;
short sqlprec;
short sqlscale;
int sqltotallen;
int sqlvallen;
int sqlindlen;
int sqlvof;
int sqlnof;
char sqlname[20];
} sqlformat_type;
typedef struct {
char sqldaid[8];
int sqldabc;
int sqln;
int sqld;
sqlformat_type *sqlfmtarr;
int sqlnrow;
int sqlrrow;
int sqlrowlen;
int sqlbuflen;
int sqlrowbuf;
} sqlda_type;
typedef union {
int dummy;
SQLREC1 rec1;
SQLREC2 rec2;
SQLREC3 rec3;
SQLREC4 rec4;
} sqltempv_type;
|
Figure 2-11 Sample Variable Include File
static ownername_type sqlowner = "JOANN@ACCT1 ";
static modulename_type sqlmodname = "CEX2 ";
int sqlindex;
char *sqlvar1;
char *sqlvar2;
char *sqlvar3;
char *sqlvar4;
sqltempv_type sqltempv;
|
Figure 2-12 Sample Externals Include File
extern sqlxbfec();
extern sqlxbinc();
extern sqlxcnhc();
extern sqlxconc();
extern sqlxdduc();
extern sqlxdexc();
extern sqlxdfec();
extern sqlxdopc();
extern sqlxdsbc();
extern sqlxexic();
extern sqlxexuc();
extern sqlxfetc();
extern sqlxiduc();
extern sqlxopkc();
extern sqlxopuc();
extern sqlxplnc();
extern sqlxprec();
extern sqlxsecc();
extern sqlxstpc();
extern sqlxsvpc();
|