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

数据库系统

开发平台:

Unix_Linux

  1. /* File:            columninfo.h
  2.  *
  3.  * Description:     See "columninfo.c"
  4.  *
  5.  * Comments:        See "notice.txt" for copyright and license information.
  6.  *
  7.  */
  8. #ifndef __COLUMNINFO_H__
  9. #define __COLUMNINFO_H__
  10. #include "psqlodbc.h"
  11. struct ColumnInfoClass_ {
  12. Int2 num_fields;
  13. char **name; /* list of type names */
  14. Oid *adtid; /* list of type ids */
  15. Int2 *adtsize; /* list type sizes */
  16. Int2 *display_size; /* the display size (longest row) */
  17. Int4 *atttypmod; /* the length of bpchar/varchar */
  18. };
  19. #define CI_get_num_fields(self) (self->num_fields)
  20. #define CI_get_oid(self, col) (self->adtid[col])
  21. #define CI_get_fieldname(self, col) (self->name[col])
  22. #define CI_get_fieldsize(self, col) (self->adtsize[col])
  23. #define CI_get_display_size(self, col) (self->display_size[col])
  24. #define CI_get_atttypmod(self, col) (self->atttypmod[col])
  25. ColumnInfoClass *CI_Constructor(void);
  26. void CI_Destructor(ColumnInfoClass *self);
  27. void CI_free_memory(ColumnInfoClass *self);
  28. char CI_read_fields(ColumnInfoClass *self, ConnectionClass *conn);
  29. /* functions for setting up the fields from within the program, */
  30. /* without reading from a socket */
  31. void CI_set_num_fields(ColumnInfoClass *self, int new_num_fields);
  32. void CI_set_field_info(ColumnInfoClass *self, int field_num, char *new_name, 
  33.                        Oid new_adtid, Int2 new_adtsize, Int4 atttypmod);
  34. #endif