ecpgtype.h
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:2k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. /*
  2.  * This file implements a data structure that is built and maintained by the
  3.  * preprocessor.
  4.  *
  5.  * All types that can be handled for host variable declarations has to
  6.  * be handled eventually.
  7.  */
  8. /*
  9.  * Here are all the types that we are to handle. Note that it is the type
  10.  * that is registered and that has nothing whatsoever to do with the storage
  11.  * class.
  12.  *
  13.  * Simle types
  14.  * integers: char, short, int, long (signed and unsigned)
  15.  * floats: float, double
  16.  *
  17.  * Complex types:
  18.  * VARCHAR, VARCHAR2 - Strings with length (maxlen is given in the declaration)
  19.  * Arrays of simple types and of VARCHAR, VARCHAR2 (size given in declaration)
  20.  * Records build of simple types, arrays and other structs.
  21.  *
  22.  * Complicating things:
  23.  * typedefs and struct names!
  24.  *
  25.  * Conclusion:
  26.  * This is a typically recursive definition. A structure of typed list elements
  27.  * would probably work fine:
  28.  */
  29. #include <stdio.h>
  30. #ifdef __cplusplus
  31. extern "C"
  32. {
  33. #endif
  34. enum ECPGttype
  35. {
  36. ECPGt_char = 1, ECPGt_unsigned_char, ECPGt_short, ECPGt_unsigned_short,
  37. ECPGt_int, ECPGt_unsigned_int, ECPGt_long, ECPGt_unsigned_long,
  38. ECPGt_bool,
  39. ECPGt_float, ECPGt_double,
  40. ECPGt_varchar, ECPGt_varchar2,
  41. ECPGt_array,
  42. ECPGt_struct,
  43. ECPGt_union,
  44. ECPGt_char_variable,
  45. ECPGt_EOIT, /* End of insert types. */
  46. ECPGt_EORT, /* End of result types. */
  47. ECPGt_NO_INDICATOR /* no indicator */
  48. };
  49. #define IS_SIMPLE_TYPE(type) ((type) >= ECPGt_char && (type) <= ECPGt_varchar2)
  50. const char *ECPGtype_name(enum ECPGttype);
  51. #ifdef __cplusplus
  52. }
  53. #endif