ecpgtype.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
- /*
- * This file implements a data structure that is built and maintained by the
- * preprocessor.
- *
- * All types that can be handled for host variable declarations has to
- * be handled eventually.
- */
- /*
- * Here are all the types that we are to handle. Note that it is the type
- * that is registered and that has nothing whatsoever to do with the storage
- * class.
- *
- * Simle types
- * integers: char, short, int, long (signed and unsigned)
- * floats: float, double
- *
- * Complex types:
- * VARCHAR, VARCHAR2 - Strings with length (maxlen is given in the declaration)
- * Arrays of simple types and of VARCHAR, VARCHAR2 (size given in declaration)
- * Records build of simple types, arrays and other structs.
- *
- * Complicating things:
- * typedefs and struct names!
- *
- * Conclusion:
- * This is a typically recursive definition. A structure of typed list elements
- * would probably work fine:
- */
- #include <stdio.h>
- #ifdef __cplusplus
- extern "C"
- {
- #endif
- enum ECPGttype
- {
- ECPGt_char = 1, ECPGt_unsigned_char, ECPGt_short, ECPGt_unsigned_short,
- ECPGt_int, ECPGt_unsigned_int, ECPGt_long, ECPGt_unsigned_long,
- ECPGt_bool,
- ECPGt_float, ECPGt_double,
- ECPGt_varchar, ECPGt_varchar2,
- ECPGt_array,
- ECPGt_struct,
- ECPGt_union,
- ECPGt_char_variable,
- ECPGt_EOIT, /* End of insert types. */
- ECPGt_EORT, /* End of result types. */
- ECPGt_NO_INDICATOR /* no indicator */
- };
- #define IS_SIMPLE_TYPE(type) ((type) >= ECPGt_char && (type) <= ECPGt_varchar2)
- const char *ECPGtype_name(enum ECPGttype);
- #ifdef __cplusplus
- }
- #endif