2
* This file implements a data structure that is built and maintained by the
5
* All types that can be handled for host variable declarations has to
6
* be handled eventually.
12
* Here are all the types that we are to handle. Note that it is the type
13
* that is registered and that has nothing whatsoever to do with the storage
17
* integers: char, short, int, long (signed and unsigned)
18
* floats: float, double
21
* VARCHAR, VARCHAR2 - Strings with length (maxlen is given in the declaration)
22
* Arrays of simple types and of VARCHAR, VARCHAR2 (size given in declaration)
23
* Records build of simple types, arrays and other structs.
25
* Complicating things:
26
* typedefs and struct names!
29
* This is a typically recursive definition. A structure of typed list elements
30
* would probably work fine:
43
ECPGt_char = 1, ECPGt_unsigned_char, ECPGt_short, ECPGt_unsigned_short,
44
ECPGt_int, ECPGt_unsigned_int, ECPGt_long, ECPGt_unsigned_long,
45
ECPGt_long_long, ECPGt_unsigned_long_long,
47
ECPGt_float, ECPGt_double,
48
ECPGt_varchar, ECPGt_varchar2,
49
ECPGt_numeric, /* this is a decimal that stores its digits in
51
ECPGt_decimal, /* this is a decimal that stores its digits in
59
ECPGt_descriptor, /* sql descriptor, no C variable */
61
ECPGt_const, /* a constant is needed sometimes */
62
ECPGt_EOIT, /* End of insert types. */
63
ECPGt_EORT, /* End of result types. */
64
ECPGt_NO_INDICATOR /* no indicator */
67
/* descriptor items */
85
ECPGd_EODT, /* End of descriptor types. */
89
#define IS_SIMPLE_TYPE(type) ((type) >= ECPGt_char && (type) <= ECPGt_interval)
91
/* we also have to handle different statement types */
92
enum ECPG_statement_type
96
ECPGst_exec_immediate,
104
#endif /* _ECPGTYPE_H */