home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / dbms_mag / 9107 / embay_c / field.cpp < prev    next >
C/C++ Source or Header  |  1991-03-12  |  2KB  |  60 lines

  1. // == field.cpp === Constructor for field objects ===================
  2. //                  Copyright 1991 Wes Peterson
  3.  
  4. #include "eb_edit.h"
  5.  
  6. field::field(table& tabl, char *field_name)
  7. {
  8.     tbl = &tabl;
  9.  
  10.     DbGetNamedFieldInfo(tbl->id, field_name, &fldarg);
  11.  
  12.     switch(fldarg.fldtype)    {
  13.         case DTYPINT:
  14.             data = (void *) new int;
  15.             if(fldarg.fldpict[0] == '\0') 
  16.                 strcpy(fldarg.fldpict, "5");
  17.             break;    
  18.         case DTYPLOG:
  19.             data = (void *) new int;
  20.             if(fldarg.fldflag[0] == '\0')
  21.                 strcpy(fldarg.fldflag, "t'Yes'f'No'");
  22.             break;
  23.         case DTYPLNG:
  24.             data = (void *) new long;
  25.             if(fldarg.fldpict[0] == '\0')
  26.                 strcpy(fldarg.fldpict, "10");
  27.             break;
  28.         case DTYPDAT:
  29.             data = (void *) new long;
  30.             if(fldarg.fldpict[0] == '\0')
  31.                 strcpy(fldarg.fldpict, "0m/0d/yy");
  32.             break;
  33.         case DTYPTIM:
  34.             data = (void *) new long;
  35.             if(fldarg.fldpict[0] == '\0')
  36.                 strcpy(fldarg.fldpict, "0h:mm pm");
  37.             break;
  38.         case DTYPSTR:
  39.         case DTYPPAK:
  40.             data = (void *) new char[fldarg.fldlen + 1];
  41.             if(fldarg.fldpict[0] == '\0')    {
  42.                 itoa(fldarg.fldlen, fldarg.fldpict, 10);
  43.                 fldarg.fldpict[strlen(fldarg.fldpict)] = 'x';
  44.                 fldarg.fldpict[strlen(fldarg.fldpict) + 1] = '\0';
  45.                 }
  46.             break;
  47.         case DTYPDBL:
  48.             data = (void *) new double;
  49.             if(fldarg.fldpict[0] == '\0')
  50.                 strcpy(fldarg.fldpict, "11.2");
  51.             break;
  52.         case DTYPBCD:
  53.             data = (void *) new BCD;
  54.             if(fldarg.fldpict[0] == '\0')
  55.                 strcpy(fldarg.fldpict, "11.2");
  56.             break;
  57.         }
  58.     tbl->fields.add_node(this);
  59. }
  60.