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

数据库系统

开发平台:

Unix_Linux

  1. /* File:            tuple.h
  2.  *
  3.  * Description:     See "tuple.c"
  4.  *
  5.  * Important NOTE:  The TupleField structure is used both to hold backend data and
  6.  *                  manual result set data.  The "set_" functions and the TupleNode
  7.  *                  structure are only used for manual result sets by info routines.  
  8.  *
  9.  * Comments:        See "notice.txt" for copyright and license information.
  10.  *
  11.  */
  12. #ifndef __TUPLE_H__
  13. #define __TUPLE_H__
  14. #include "psqlodbc.h"
  15. /* Used by backend data AND manual result sets */
  16. struct TupleField_ {
  17.     Int4 len;     /* length of the current Tuple */
  18.     void *value;  /* an array representing the value */
  19. };
  20. /* Used ONLY for manual result sets */
  21. struct TupleNode_ {
  22.     struct TupleNode_ *prev, *next;
  23.     TupleField tuple[1];
  24. };
  25. /* These macros are wrappers for the corresponding set_tuplefield functions
  26. but these handle automatic NULL determination and call set_tuplefield_null()
  27. if appropriate for the datatype (used by SQLGetTypeInfo).
  28. */
  29. #define set_nullfield_string(FLD, VAL) ((VAL) ? set_tuplefield_string(FLD, (VAL)) : set_tuplefield_null(FLD))
  30. #define set_nullfield_int2(FLD, VAL) ((VAL) != -1 ? set_tuplefield_int2(FLD, (VAL)) : set_tuplefield_null(FLD))
  31. #define set_nullfield_int4(FLD, VAL) ((VAL) != -1 ? set_tuplefield_int4(FLD, (VAL)) : set_tuplefield_null(FLD))
  32. void set_tuplefield_null(TupleField *tuple_field);
  33. void set_tuplefield_string(TupleField *tuple_field, char *string);
  34. void set_tuplefield_int2(TupleField *tuple_field, Int2 value);
  35. void set_tuplefield_int4(TupleField *tuple_field, Int4 value);
  36. #endif