custom-macros.hh
上传用户:clovervx
上传日期:2010-03-30
资源大小:787k
文件大小:1318k
源码类别:

MySQL数据库

开发平台:

Visual C++

  1.     vector<bool> *include;
  2.     bool del_vector;
  3.   public: 
  4.     ~##NAME##_cus_value_list () {if (del_vector) delete include;} 
  5.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17);
  6.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17); 
  7.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m ,vector<bool>)
  8.       : obj(o), include(i), del_vector(false), delem(d), manip(m) {}
  9.   };
  10.   template <class Manip>
  11.   class NAME##_cus_field_list { 
  12.   /* friend ostream& operator << <> (ostream&, 
  13.         const NAME##_cus_field_list<Manip>&); */
  14.   public:
  15.     const NAME *obj; 
  16.     cchar *delem;
  17.     Manip manip;
  18.     vector<bool> *include; 
  19.     bool del_vector; 
  20.   public: 
  21.     ~##NAME##_cus_field_list () {if (del_vector) delete include;} 
  22.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17); 
  23.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17); 
  24.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, vector<bool> *i) 
  25.       : obj(o), include(i), del_vector(false), delem(d), manip(m) {}
  26.   };
  27.  template <class Manip>
  28.  class NAME##_cus_equal_list {
  29.  /* friend ostream& operator << <> (ostream&, 
  30.   const NAME##_cus_equal_list<Manip>&); */
  31.   public:
  32.     const NAME *obj;
  33.     vector<bool> *include;
  34.     bool del_vector;
  35.     cchar *delem;
  36.     cchar *comp;
  37.     Manip manip;
  38.   public:
  39.     ~##NAME##_##cus_equal_list () {if (del_vector) delete include;}
  40.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17); 
  41.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17); 
  42.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, vector<bool> *i) 
  43.       : obj(o), include(i), del_vector(false), delem(d), comp(c), manip(m) {}
  44.   };
  45.   template <sql_dummy_type dummy> int sql_compare_##NAME (const NAME &, const NAME &);
  46.   struct NAME { 
  47.     T1 I1;
  48.     T2 I2;
  49.     T3 I3;
  50.     T4 I4;
  51.     T5 I5;
  52.     T6 I6;
  53.     T7 I7;
  54.     T8 I8;
  55.     T9 I9;
  56.     T10 I10;
  57.     T11 I11;
  58.     T12 I12;
  59.     T13 I13;
  60.     T14 I14;
  61.     T15 I15;
  62.     T16 I16;
  63.     T17 I17; 
  64.     NAME () {} 
  65.     NAME (const MysqlRow &row);
  66.     void set (const MysqlRow &row);
  67.     sql_compare_define_##CMP(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  68.     sql_construct_define_##CONTR(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  69.     static char *names[];
  70.     static char *_table;
  71.     static char *& table() {return _table;}
  72.     /* cus_data */
  73.     NAME##_cus_value_list<quote_type0> value_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false) const {
  74.       return value_list(",", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  75.     }
  76.     NAME##_cus_value_list<quote_type0> value_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL) const {
  77.       return value_list(",", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  78.     }
  79.     NAME##_cus_value_list<quote_type0> value_list(vector<bool> *i) const {
  80.       return value_list(",", mysql_quote, i);
  81.     }
  82.     NAME##_cus_value_list<quote_type0> value_list(sql_cmp_type sc) const {
  83.       return value_list(",", mysql_quote, sc);
  84.     }
  85.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false) const {
  86.       return value_list(d, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  87.     }
  88.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL) const {
  89.       return value_list(d, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  90.     }
  91.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, 
  92. vector<bool> *i) const {
  93.       return value_list(d, mysql_quote, i);
  94.     }
  95.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, 
  96. sql_cmp_type sc) const {
  97.       return value_list(d, mysql_quote, sc);
  98.     }
  99.     template <class Manip>
  100.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m,
  101.   bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false) const; 
  102.     template <class Manip>
  103.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m,
  104.   ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL) const; 
  105.     template <class Manip>
  106.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m, 
  107.   vector<bool> *i) const;
  108.     template <class Manip>
  109.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m, 
  110.   sql_cmp_type sc) const;
  111.     /* cus field */
  112.     NAME##_cus_field_list<do_nothing_type0> field_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false) const {
  113.       return field_list(",", mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  114.     }
  115.     NAME##_cus_field_list<do_nothing_type0> field_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL) const {
  116.       return field_list(",", mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  117.     }
  118.     NAME##_cus_field_list<do_nothing_type0> field_list(vector<bool> *i) const {
  119.       return field_list(",", mysql_do_nothing, i);
  120.     }
  121.     NAME##_cus_field_list<do_nothing_type0> field_list(sql_cmp_type sc) const
  122.     {
  123.       return field_list(",", mysql_do_nothing, sc);
  124.     }
  125.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  126.        bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false) const {
  127.       return field_list(d, mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  128.     }
  129.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d,
  130.        ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL) const {
  131.       return field_list(d, mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  132.     }
  133.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  134. vector<bool> *i) const {
  135.       return field_list(d, mysql_do_nothing, i);
  136.     }
  137.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  138. sql_cmp_type sc) const {
  139.       return field_list(d, mysql_do_nothing, sc);
  140.     }
  141.     template <class Manip>
  142.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  143.     bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false) const; 
  144.     template <class Manip>
  145.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  146.     ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL) const; 
  147.     template <class Manip>
  148.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  149.     vector<bool> *i) const;
  150.     template <class Manip>
  151.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m, 
  152.     sql_cmp_type sc) const;
  153.     /* cus equal */
  154.     NAME##_cus_equal_list<quote_type0> equal_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false) const {
  155.       return equal_list(",", " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  156.     }
  157.     NAME##_cus_equal_list<quote_type0> equal_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL) const {
  158.       return equal_list(",", " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  159.     }
  160.     NAME##_cus_equal_list<quote_type0> equal_list(vector<bool> *i) const {
  161.       return equal_list(",", " = ", mysql_quote, i);
  162.     }
  163.     NAME##_cus_equal_list<quote_type0> equal_list(sql_cmp_type sc) const {
  164.       return equal_list(",", " = ", mysql_quote, sc);
  165.     }
  166.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false) const {
  167.       return equal_list(d, " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  168.     }
  169.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL) const {
  170.       return equal_list(d, " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  171.     }
  172.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, 
  173. vector<bool> *i) const {
  174.       return equal_list(d, " = ", mysql_quote, i);
  175.     }
  176.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, 
  177. sql_cmp_type sc) const {
  178.       return equal_list(d, " = ", mysql_quote, sc);
  179.     }
  180.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  181.                                                 bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false) const {
  182.       return equal_list(d, c, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  183.     }
  184.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  185.                                                 ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL) const {
  186.       return equal_list(d, c, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17);
  187.     }
  188.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  189. vector<bool> *i) const {
  190.       return equal_list(d, c, mysql_quote, i);
  191.     }
  192.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  193. sql_cmp_type sc) const {
  194.       return equal_list(d, c, mysql_quote, sc);
  195.     }
  196.     template <class Manip>
  197.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  198.     bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false) const; 
  199.     template <class Manip>
  200.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  201.     ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL) const; 
  202.     template <class Manip>
  203.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  204.     vector<bool> *i) const;
  205.     template <class Manip>
  206.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  207.     sql_cmp_type sc) const;
  208.     NAME##_value_list<quote_type0> value_list() const {
  209.       return value_list(",", mysql_quote);}
  210.     NAME##_value_list<quote_type0> value_list(cchar *d) const {
  211.       return value_list(d, mysql_quote);}
  212.     template <class Manip> 
  213.     NAME##_value_list<Manip> value_list(cchar *d, Manip m) const; 
  214.     NAME##_field_list<do_nothing_type0> field_list() const {
  215.       return field_list(",", mysql_do_nothing);}
  216.     NAME##_field_list<do_nothing_type0> field_list(cchar *d) const {
  217.       return field_list(d, mysql_do_nothing);}
  218.     template <class Manip>
  219.     NAME##_field_list<Manip> field_list(cchar *d, Manip m) const; 
  220.     NAME##_equal_list<quote_type0> equal_list(cchar *d = ",", 
  221.                                               cchar *c = " = ") const{
  222.       return equal_list(d, c, mysql_quote);}
  223.     template <class Manip>
  224.     NAME##_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m) const; 
  225.   }; 
  226.   char *##NAME##::names[] = { 
  227.     N1 ,
  228.     N2 ,
  229.     N3 ,
  230.     N4 ,
  231.     N5 ,
  232.     N6 ,
  233.     N7 ,
  234.     N8 ,
  235.     N9 ,
  236.     N10 ,
  237.     N11 ,
  238.     N12 ,
  239.     N13 ,
  240.     N14 ,
  241.     N15 ,
  242.     N16 ,
  243.     N17  
  244.   }; 
  245.   char *##NAME##::_table = #NAME ;  
  246.   template <class Manip>
  247.   NAME##_cus_value_list<Manip>::NAME##_cus_value_list
  248.   (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17) 
  249.   { 
  250.     delem = d;
  251.     manip = m;
  252.     del_vector = true;
  253.     obj = o; 
  254.     include = new vector<bool>(17, false);
  255.     if (i1) (*include)[0]=true;
  256.     if (i2) (*include)[1]=true;
  257.     if (i3) (*include)[2]=true;
  258.     if (i4) (*include)[3]=true;
  259.     if (i5) (*include)[4]=true;
  260.     if (i6) (*include)[5]=true;
  261.     if (i7) (*include)[6]=true;
  262.     if (i8) (*include)[7]=true;
  263.     if (i9) (*include)[8]=true;
  264.     if (i10) (*include)[9]=true;
  265.     if (i11) (*include)[10]=true;
  266.     if (i12) (*include)[11]=true;
  267.     if (i13) (*include)[12]=true;
  268.     if (i14) (*include)[13]=true;
  269.     if (i15) (*include)[14]=true;
  270.     if (i16) (*include)[15]=true;
  271.     if (i17) (*include)[16]=true;
  272.   } 
  273.   template <class Manip>
  274.   NAME##_cus_value_list<Manip>::NAME##_cus_value_list
  275.   (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17) { 
  276.     delem = d;
  277.     manip = m;
  278.     del_vector = true; 
  279.     obj = o; 
  280.     include = new vector<bool>(17, false); 
  281.     if (i1 == NAME##_NULL) return;
  282.     (*include)[i1]=true;
  283.     if (i2 == NAME##_NULL) return;
  284.     (*include)[i2]=true;
  285.     if (i3 == NAME##_NULL) return;
  286.     (*include)[i3]=true;
  287.     if (i4 == NAME##_NULL) return;
  288.     (*include)[i4]=true;
  289.     if (i5 == NAME##_NULL) return;
  290.     (*include)[i5]=true;
  291.     if (i6 == NAME##_NULL) return;
  292.     (*include)[i6]=true;
  293.     if (i7 == NAME##_NULL) return;
  294.     (*include)[i7]=true;
  295.     if (i8 == NAME##_NULL) return;
  296.     (*include)[i8]=true;
  297.     if (i9 == NAME##_NULL) return;
  298.     (*include)[i9]=true;
  299.     if (i10 == NAME##_NULL) return;
  300.     (*include)[i10]=true;
  301.     if (i11 == NAME##_NULL) return;
  302.     (*include)[i11]=true;
  303.     if (i12 == NAME##_NULL) return;
  304.     (*include)[i12]=true;
  305.     if (i13 == NAME##_NULL) return;
  306.     (*include)[i13]=true;
  307.     if (i14 == NAME##_NULL) return;
  308.     (*include)[i14]=true;
  309.     if (i15 == NAME##_NULL) return;
  310.     (*include)[i15]=true;
  311.     if (i16 == NAME##_NULL) return;
  312.     (*include)[i16]=true;
  313.     if (i17 == NAME##_NULL) return;
  314.     (*include)[i17]=true;
  315.   }
  316.   template <class Manip>
  317.   NAME##_cus_field_list<Manip>::NAME##_cus_field_list
  318.   (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17) {
  319.     delem = d;
  320.     manip = m;
  321.     del_vector = true; 
  322.     obj = o; 
  323.     include = new vector<bool>(17, false); 
  324.     if (i1) (*include)[0]=true;
  325.     if (i2) (*include)[1]=true;
  326.     if (i3) (*include)[2]=true;
  327.     if (i4) (*include)[3]=true;
  328.     if (i5) (*include)[4]=true;
  329.     if (i6) (*include)[5]=true;
  330.     if (i7) (*include)[6]=true;
  331.     if (i8) (*include)[7]=true;
  332.     if (i9) (*include)[8]=true;
  333.     if (i10) (*include)[9]=true;
  334.     if (i11) (*include)[10]=true;
  335.     if (i12) (*include)[11]=true;
  336.     if (i13) (*include)[12]=true;
  337.     if (i14) (*include)[13]=true;
  338.     if (i15) (*include)[14]=true;
  339.     if (i16) (*include)[15]=true;
  340.     if (i17) (*include)[16]=true;
  341.   } 
  342.   template <class Manip>
  343.   NAME##_cus_field_list<Manip>::NAME##_cus_field_list
  344.   (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17) { 
  345.     delem = d;
  346.     manip = m;
  347.     del_vector = true; 
  348.     obj = o; 
  349.     include = new vector<bool>(17, false); 
  350.     if (i1 == NAME##_NULL) return;
  351.     (*include)[i1]=true;
  352.     if (i2 == NAME##_NULL) return;
  353.     (*include)[i2]=true;
  354.     if (i3 == NAME##_NULL) return;
  355.     (*include)[i3]=true;
  356.     if (i4 == NAME##_NULL) return;
  357.     (*include)[i4]=true;
  358.     if (i5 == NAME##_NULL) return;
  359.     (*include)[i5]=true;
  360.     if (i6 == NAME##_NULL) return;
  361.     (*include)[i6]=true;
  362.     if (i7 == NAME##_NULL) return;
  363.     (*include)[i7]=true;
  364.     if (i8 == NAME##_NULL) return;
  365.     (*include)[i8]=true;
  366.     if (i9 == NAME##_NULL) return;
  367.     (*include)[i9]=true;
  368.     if (i10 == NAME##_NULL) return;
  369.     (*include)[i10]=true;
  370.     if (i11 == NAME##_NULL) return;
  371.     (*include)[i11]=true;
  372.     if (i12 == NAME##_NULL) return;
  373.     (*include)[i12]=true;
  374.     if (i13 == NAME##_NULL) return;
  375.     (*include)[i13]=true;
  376.     if (i14 == NAME##_NULL) return;
  377.     (*include)[i14]=true;
  378.     if (i15 == NAME##_NULL) return;
  379.     (*include)[i15]=true;
  380.     if (i16 == NAME##_NULL) return;
  381.     (*include)[i16]=true;
  382.     if (i17 == NAME##_NULL) return;
  383.     (*include)[i17]=true;
  384.   }
  385.   template <class Manip>
  386.   NAME##_cus_equal_list<Manip>::NAME##_cus_equal_list
  387.   (const NAME *o, cchar *d, cchar *c, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17) { 
  388.     delem = d;
  389.     comp = c;
  390.     manip = m;
  391.     del_vector = true; 
  392.     obj = o; 
  393.     include = new vector<bool>(17, false); 
  394.     if (i1) (*include)[0]=true;
  395.     if (i2) (*include)[1]=true;
  396.     if (i3) (*include)[2]=true;
  397.     if (i4) (*include)[3]=true;
  398.     if (i5) (*include)[4]=true;
  399.     if (i6) (*include)[5]=true;
  400.     if (i7) (*include)[6]=true;
  401.     if (i8) (*include)[7]=true;
  402.     if (i9) (*include)[8]=true;
  403.     if (i10) (*include)[9]=true;
  404.     if (i11) (*include)[10]=true;
  405.     if (i12) (*include)[11]=true;
  406.     if (i13) (*include)[12]=true;
  407.     if (i14) (*include)[13]=true;
  408.     if (i15) (*include)[14]=true;
  409.     if (i16) (*include)[15]=true;
  410.     if (i17) (*include)[16]=true;
  411.   } 
  412.   template <class Manip>
  413.   NAME##_cus_equal_list<Manip>::NAME##_cus_equal_list
  414.   (const NAME *o, cchar *d, cchar *c, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17) { 
  415.     delem = d;
  416.     comp = c;
  417.     manip = m;
  418.     del_vector = true; 
  419.     obj = o; 
  420.     include = new vector<bool>(17, false); 
  421.     if (i1 == NAME##_NULL) return;
  422.     (*include)[i1]=true;
  423.     if (i2 == NAME##_NULL) return;
  424.     (*include)[i2]=true;
  425.     if (i3 == NAME##_NULL) return;
  426.     (*include)[i3]=true;
  427.     if (i4 == NAME##_NULL) return;
  428.     (*include)[i4]=true;
  429.     if (i5 == NAME##_NULL) return;
  430.     (*include)[i5]=true;
  431.     if (i6 == NAME##_NULL) return;
  432.     (*include)[i6]=true;
  433.     if (i7 == NAME##_NULL) return;
  434.     (*include)[i7]=true;
  435.     if (i8 == NAME##_NULL) return;
  436.     (*include)[i8]=true;
  437.     if (i9 == NAME##_NULL) return;
  438.     (*include)[i9]=true;
  439.     if (i10 == NAME##_NULL) return;
  440.     (*include)[i10]=true;
  441.     if (i11 == NAME##_NULL) return;
  442.     (*include)[i11]=true;
  443.     if (i12 == NAME##_NULL) return;
  444.     (*include)[i12]=true;
  445.     if (i13 == NAME##_NULL) return;
  446.     (*include)[i13]=true;
  447.     if (i14 == NAME##_NULL) return;
  448.     (*include)[i14]=true;
  449.     if (i15 == NAME##_NULL) return;
  450.     (*include)[i15]=true;
  451.     if (i16 == NAME##_NULL) return;
  452.     (*include)[i16]=true;
  453.     if (i17 == NAME##_NULL) return;
  454.     (*include)[i17]=true;
  455.   }
  456.   template <class Manip>
  457.   ostream& operator << (ostream& s, const NAME##_value_list<Manip>& obj) { 
  458.     s << obj.manip << obj.obj->##I1 << obj.delem;
  459.     s << obj.manip << obj.obj->##I2 << obj.delem;
  460.     s << obj.manip << obj.obj->##I3 << obj.delem;
  461.     s << obj.manip << obj.obj->##I4 << obj.delem;
  462.     s << obj.manip << obj.obj->##I5 << obj.delem;
  463.     s << obj.manip << obj.obj->##I6 << obj.delem;
  464.     s << obj.manip << obj.obj->##I7 << obj.delem;
  465.     s << obj.manip << obj.obj->##I8 << obj.delem;
  466.     s << obj.manip << obj.obj->##I9 << obj.delem;
  467.     s << obj.manip << obj.obj->##I10 << obj.delem;
  468.     s << obj.manip << obj.obj->##I11 << obj.delem;
  469.     s << obj.manip << obj.obj->##I12 << obj.delem;
  470.     s << obj.manip << obj.obj->##I13 << obj.delem;
  471.     s << obj.manip << obj.obj->##I14 << obj.delem;
  472.     s << obj.manip << obj.obj->##I15 << obj.delem;
  473.     s << obj.manip << obj.obj->##I16 << obj.delem;
  474.     s << obj.manip << obj.obj->##I17; 
  475.     return s; 
  476.   } 
  477.   template <class Manip>
  478.   ostream& operator << (ostream& s, const NAME##_field_list<Manip>& obj) { 
  479.     s << obj.manip << obj.obj->names[0] << obj.delem;
  480.     s << obj.manip << obj.obj->names[1] << obj.delem;
  481.     s << obj.manip << obj.obj->names[2] << obj.delem;
  482.     s << obj.manip << obj.obj->names[3] << obj.delem;
  483.     s << obj.manip << obj.obj->names[4] << obj.delem;
  484.     s << obj.manip << obj.obj->names[5] << obj.delem;
  485.     s << obj.manip << obj.obj->names[6] << obj.delem;
  486.     s << obj.manip << obj.obj->names[7] << obj.delem;
  487.     s << obj.manip << obj.obj->names[8] << obj.delem;
  488.     s << obj.manip << obj.obj->names[9] << obj.delem;
  489.     s << obj.manip << obj.obj->names[10] << obj.delem;
  490.     s << obj.manip << obj.obj->names[11] << obj.delem;
  491.     s << obj.manip << obj.obj->names[12] << obj.delem;
  492.     s << obj.manip << obj.obj->names[13] << obj.delem;
  493.     s << obj.manip << obj.obj->names[14] << obj.delem;
  494.     s << obj.manip << obj.obj->names[15] << obj.delem;
  495.     s << obj.manip << obj.obj->names[16]; 
  496.     return s; 
  497.   } 
  498.   template <class Manip>
  499.   ostream& operator << (ostream& s, const NAME##_equal_list<Manip>& obj) { 
  500.     s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1 << obj.delem;
  501.     s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2 << obj.delem;
  502.     s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3 << obj.delem;
  503.     s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4 << obj.delem;
  504.     s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5 << obj.delem;
  505.     s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6 << obj.delem;
  506.     s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7 << obj.delem;
  507.     s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8 << obj.delem;
  508.     s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9 << obj.delem;
  509.     s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10 << obj.delem;
  510.     s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11 << obj.delem;
  511.     s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12 << obj.delem;
  512.     s << obj.obj->names[12] << obj.comp << obj.manip << obj.obj->##I13 << obj.delem;
  513.     s << obj.obj->names[13] << obj.comp << obj.manip << obj.obj->##I14 << obj.delem;
  514.     s << obj.obj->names[14] << obj.comp << obj.manip << obj.obj->##I15 << obj.delem;
  515.     s << obj.obj->names[15] << obj.comp << obj.manip << obj.obj->##I16 << obj.delem;
  516.     s << obj.obj->names[16] << obj.comp << obj.manip << obj.obj->##I17; 
  517.     return s; 
  518.   } 
  519.   template <class Manip>
  520.   ostream& operator << (ostream& s, const NAME##_cus_value_list<Manip>& obj) { 
  521.     bool before = false; 
  522.     if ((*obj.include)[0]) { 
  523.       s << obj.manip << obj.obj->##I1;
  524.       before = true; 
  525.      } 
  526.     if ((*obj.include)[1]) { 
  527.       if (before) s << obj.delem;
  528.       s << obj.manip << obj.obj->##I2;
  529.       before = true; 
  530.      } 
  531.     if ((*obj.include)[2]) { 
  532.       if (before) s << obj.delem;
  533.       s << obj.manip << obj.obj->##I3;
  534.       before = true; 
  535.      } 
  536.     if ((*obj.include)[3]) { 
  537.       if (before) s << obj.delem;
  538.       s << obj.manip << obj.obj->##I4;
  539.       before = true; 
  540.      } 
  541.     if ((*obj.include)[4]) { 
  542.       if (before) s << obj.delem;
  543.       s << obj.manip << obj.obj->##I5;
  544.       before = true; 
  545.      } 
  546.     if ((*obj.include)[5]) { 
  547.       if (before) s << obj.delem;
  548.       s << obj.manip << obj.obj->##I6;
  549.       before = true; 
  550.      } 
  551.     if ((*obj.include)[6]) { 
  552.       if (before) s << obj.delem;
  553.       s << obj.manip << obj.obj->##I7;
  554.       before = true; 
  555.      } 
  556.     if ((*obj.include)[7]) { 
  557.       if (before) s << obj.delem;
  558.       s << obj.manip << obj.obj->##I8;
  559.       before = true; 
  560.      } 
  561.     if ((*obj.include)[8]) { 
  562.       if (before) s << obj.delem;
  563.       s << obj.manip << obj.obj->##I9;
  564.       before = true; 
  565.      } 
  566.     if ((*obj.include)[9]) { 
  567.       if (before) s << obj.delem;
  568.       s << obj.manip << obj.obj->##I10;
  569.       before = true; 
  570.      } 
  571.     if ((*obj.include)[10]) { 
  572.       if (before) s << obj.delem;
  573.       s << obj.manip << obj.obj->##I11;
  574.       before = true; 
  575.      } 
  576.     if ((*obj.include)[11]) { 
  577.       if (before) s << obj.delem;
  578.       s << obj.manip << obj.obj->##I12;
  579.       before = true; 
  580.      } 
  581.     if ((*obj.include)[12]) { 
  582.       if (before) s << obj.delem;
  583.       s << obj.manip << obj.obj->##I13;
  584.       before = true; 
  585.      } 
  586.     if ((*obj.include)[13]) { 
  587.       if (before) s << obj.delem;
  588.       s << obj.manip << obj.obj->##I14;
  589.       before = true; 
  590.      } 
  591.     if ((*obj.include)[14]) { 
  592.       if (before) s << obj.delem;
  593.       s << obj.manip << obj.obj->##I15;
  594.       before = true; 
  595.      } 
  596.     if ((*obj.include)[15]) { 
  597.       if (before) s << obj.delem;
  598.       s << obj.manip << obj.obj->##I16;
  599.       before = true; 
  600.      } 
  601.     if ((*obj.include)[16]) { 
  602.       if (before) s << obj.delem;
  603.       s << obj.manip << obj.obj->##I17;
  604.      } 
  605.     return s; 
  606.   } 
  607.   template <class Manip>
  608.   ostream& operator << (ostream& s, const NAME##_cus_field_list<Manip>& obj) { 
  609.     bool before = false; 
  610.     if ((*obj.include)[0]) { 
  611.       s << obj.manip << obj.obj->names[0];
  612.       before = true; 
  613.      } 
  614.     if ((*obj.include)[1]) { 
  615.       if (before) s << obj.delem;
  616.       s << obj.manip << obj.obj->names[1];
  617.       before = true; 
  618.      } 
  619.     if ((*obj.include)[2]) { 
  620.       if (before) s << obj.delem;
  621.       s << obj.manip << obj.obj->names[2];
  622.       before = true; 
  623.      } 
  624.     if ((*obj.include)[3]) { 
  625.       if (before) s << obj.delem;
  626.       s << obj.manip << obj.obj->names[3];
  627.       before = true; 
  628.      } 
  629.     if ((*obj.include)[4]) { 
  630.       if (before) s << obj.delem;
  631.       s << obj.manip << obj.obj->names[4];
  632.       before = true; 
  633.      } 
  634.     if ((*obj.include)[5]) { 
  635.       if (before) s << obj.delem;
  636.       s << obj.manip << obj.obj->names[5];
  637.       before = true; 
  638.      } 
  639.     if ((*obj.include)[6]) { 
  640.       if (before) s << obj.delem;
  641.       s << obj.manip << obj.obj->names[6];
  642.       before = true; 
  643.      } 
  644.     if ((*obj.include)[7]) { 
  645.       if (before) s << obj.delem;
  646.       s << obj.manip << obj.obj->names[7];
  647.       before = true; 
  648.      } 
  649.     if ((*obj.include)[8]) { 
  650.       if (before) s << obj.delem;
  651.       s << obj.manip << obj.obj->names[8];
  652.       before = true; 
  653.      } 
  654.     if ((*obj.include)[9]) { 
  655.       if (before) s << obj.delem;
  656.       s << obj.manip << obj.obj->names[9];
  657.       before = true; 
  658.      } 
  659.     if ((*obj.include)[10]) { 
  660.       if (before) s << obj.delem;
  661.       s << obj.manip << obj.obj->names[10];
  662.       before = true; 
  663.      } 
  664.     if ((*obj.include)[11]) { 
  665.       if (before) s << obj.delem;
  666.       s << obj.manip << obj.obj->names[11];
  667.       before = true; 
  668.      } 
  669.     if ((*obj.include)[12]) { 
  670.       if (before) s << obj.delem;
  671.       s << obj.manip << obj.obj->names[12];
  672.       before = true; 
  673.      } 
  674.     if ((*obj.include)[13]) { 
  675.       if (before) s << obj.delem;
  676.       s << obj.manip << obj.obj->names[13];
  677.       before = true; 
  678.      } 
  679.     if ((*obj.include)[14]) { 
  680.       if (before) s << obj.delem;
  681.       s << obj.manip << obj.obj->names[14];
  682.       before = true; 
  683.      } 
  684.     if ((*obj.include)[15]) { 
  685.       if (before) s << obj.delem;
  686.       s << obj.manip << obj.obj->names[15];
  687.       before = true; 
  688.      } 
  689.     if ((*obj.include)[16]) { 
  690.       if (before) s << obj.delem;
  691.       s << obj.manip << obj.obj->names[16];
  692.      } 
  693.     return s; 
  694.   } 
  695.   template <class Manip>
  696.   ostream& operator << (ostream& s, const NAME##_cus_equal_list<Manip>& obj) { 
  697.     bool before = false; 
  698.     if ((*obj.include)[0]) { 
  699.       s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1;
  700.       before = true; 
  701.      } 
  702.     if ((*obj.include)[1]) { 
  703.       if (before) s << obj.delem;
  704.       s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2;
  705.       before = true; 
  706.      } 
  707.     if ((*obj.include)[2]) { 
  708.       if (before) s << obj.delem;
  709.       s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3;
  710.       before = true; 
  711.      } 
  712.     if ((*obj.include)[3]) { 
  713.       if (before) s << obj.delem;
  714.       s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4;
  715.       before = true; 
  716.      } 
  717.     if ((*obj.include)[4]) { 
  718.       if (before) s << obj.delem;
  719.       s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5;
  720.       before = true; 
  721.      } 
  722.     if ((*obj.include)[5]) { 
  723.       if (before) s << obj.delem;
  724.       s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6;
  725.       before = true; 
  726.      } 
  727.     if ((*obj.include)[6]) { 
  728.       if (before) s << obj.delem;
  729.       s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7;
  730.       before = true; 
  731.      } 
  732.     if ((*obj.include)[7]) { 
  733.       if (before) s << obj.delem;
  734.       s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8;
  735.       before = true; 
  736.      } 
  737.     if ((*obj.include)[8]) { 
  738.       if (before) s << obj.delem;
  739.       s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9;
  740.       before = true; 
  741.      } 
  742.     if ((*obj.include)[9]) { 
  743.       if (before) s << obj.delem;
  744.       s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10;
  745.       before = true; 
  746.      } 
  747.     if ((*obj.include)[10]) { 
  748.       if (before) s << obj.delem;
  749.       s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11;
  750.       before = true; 
  751.      } 
  752.     if ((*obj.include)[11]) { 
  753.       if (before) s << obj.delem;
  754.       s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12;
  755.       before = true; 
  756.      } 
  757.     if ((*obj.include)[12]) { 
  758.       if (before) s << obj.delem;
  759.       s << obj.obj->names[12] << obj.comp << obj.manip << obj.obj->##I13;
  760.       before = true; 
  761.      } 
  762.     if ((*obj.include)[13]) { 
  763.       if (before) s << obj.delem;
  764.       s << obj.obj->names[13] << obj.comp << obj.manip << obj.obj->##I14;
  765.       before = true; 
  766.      } 
  767.     if ((*obj.include)[14]) { 
  768.       if (before) s << obj.delem;
  769.       s << obj.obj->names[14] << obj.comp << obj.manip << obj.obj->##I15;
  770.       before = true; 
  771.      } 
  772.     if ((*obj.include)[15]) { 
  773.       if (before) s << obj.delem;
  774.       s << obj.obj->names[15] << obj.comp << obj.manip << obj.obj->##I16;
  775.       before = true; 
  776.      } 
  777.     if ((*obj.include)[16]) { 
  778.       if (before) s << obj.delem;
  779.       s << obj.obj->names[16] << obj.comp << obj.manip << obj.obj->##I17;
  780.      } 
  781.     return s; 
  782.   } 
  783.   template <class Manip>
  784.   inline NAME##_value_list<Manip> NAME##::value_list(cchar *d, Manip m) const { 
  785.     return NAME##_value_list<Manip> (this, d, m); 
  786.   } 
  787.   template <class Manip>
  788.   inline NAME##_field_list<Manip> NAME##::field_list(cchar *d, Manip m) const { 
  789.     return NAME##_field_list<Manip> (this, d, m); 
  790.   } 
  791.   template <class Manip>
  792.   inline NAME##_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m) const { 
  793.     return NAME##_equal_list<Manip> (this, d, c, m); 
  794.   } 
  795.   template <class Manip>
  796.   inline NAME##_cus_value_list<Manip> NAME##::value_list(cchar *d, Manip m,
  797.        bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17) const {
  798.     return NAME##_cus_value_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17); 
  799.   } 
  800.   template <class Manip>
  801.   inline NAME##_cus_field_list<Manip> NAME##::field_list(cchar *d, Manip m,
  802.  bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17) const { 
  803.     return NAME##_cus_field_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17); 
  804.   } 
  805.   template <class Manip>
  806.   inline NAME##_cus_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m,
  807.  bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17) const { 
  808.     return NAME##_cus_equal_list<Manip> (this, d, c, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17); 
  809.   } 
  810.   template <class Manip>
  811.   inline NAME##_cus_value_list<Manip> NAME##::value_list(cchar *d, Manip m,
  812.        ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17) const { 
  813.     return NAME##_cus_value_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17); 
  814.   } 
  815.   template <class Manip>
  816.   inline NAME##_cus_field_list<Manip> NAME##::field_list(cchar *d, Manip m,
  817.  ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17) const {
  818.     return NAME##_cus_field_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17); 
  819.   } 
  820.   template <class Manip>
  821.   inline NAME##_cus_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m, 
  822.  ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17) const { 
  823.     return NAME##_cus_equal_list<Manip> (this, d, c, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17); 
  824.   } 
  825.   template <class Manip>
  826.   inline NAME##_cus_value_list<Manip> 
  827.   NAME##::value_list(cchar *d, Manip m, sql_cmp_type sc) const {
  828.     sql_compare_type_def_##CMP (NAME, value, NUM);
  829.   }
  830.   template <class Manip>
  831.   inline NAME##_cus_field_list<Manip> 
  832.   NAME##::field_list(cchar *d, Manip m, sql_cmp_type sc) const {
  833.     sql_compare_type_def_##CMP (NAME, field, NUM);
  834.   }
  835.   template <class Manip>
  836.   inline NAME##_cus_equal_list<Manip> 
  837.   NAME##::equal_list(cchar *d, cchar *c, Manip m, sql_cmp_type sc) const {
  838.     sql_compare_type_defe_##CMP (NAME, equal, NUM);
  839.   }
  840.   template <sql_dummy_type dummy> 
  841.   void populate_##NAME (NAME *s, const MysqlRow &row) { 
  842.     s->##I1 = row[ O1 ];
  843.     s->##I2 = row[ O2 ];
  844.     s->##I3 = row[ O3 ];
  845.     s->##I4 = row[ O4 ];
  846.     s->##I5 = row[ O5 ];
  847.     s->##I6 = row[ O6 ];
  848.     s->##I7 = row[ O7 ];
  849.     s->##I8 = row[ O8 ];
  850.     s->##I9 = row[ O9 ];
  851.     s->##I10 = row[ O10 ];
  852.     s->##I11 = row[ O11 ];
  853.     s->##I12 = row[ O12 ];
  854.     s->##I13 = row[ O13 ];
  855.     s->##I14 = row[ O14 ];
  856.     s->##I15 = row[ O15 ];
  857.     s->##I16 = row[ O16 ];
  858.     s->##I17 = row[ O17 ];
  859.   } 
  860.   inline NAME##::##NAME (const MysqlRow &row) 
  861.                                         {populate_##NAME##<sql_dummy>(this, row);}
  862.   inline void NAME##::set (const MysqlRow &row)
  863.                                         {populate_##NAME##<sql_dummy>(this, row);}
  864.   sql_COMPARE__##CMP##(NAME, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, 0, 0, 0, 0, 0, 0, 0, 0, 0 )
  865. #define sql_create_basic_17(NAME, CMP, CONTR, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17) 
  866.   sql_create_basic_c_order_17(NAME, CMP, CONTR, T1, I1, 0, T2, I2, 1, T3, I3, 2, T4, I4, 3, T5, I5, 4, T6, I6, 5, T7, I7, 6, T8, I8, 7, T9, I9, 8, T10, I10, 9, T11, I11, 10, T12, I12, 11, T13, I13, 12, T14, I14, 13, T15, I15, 14, T16, I16, 15, T17, I17, 16)
  867. #define sql_create_17(NAME, CMP, CONTR, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17) 
  868.   sql_create_complete_17(NAME, CMP, CONTR, T1, I1, #I1, 0, T2, I2, #I2, 1, T3, I3, #I3, 2, T4, I4, #I4, 3, T5, I5, #I5, 4, T6, I6, #I6, 5, T7, I7, #I7, 6, T8, I8, #I8, 7, T9, I9, #I9, 8, T10, I10, #I10, 9, T11, I11, #I11, 10, T12, I12, #I12, 11, T13, I13, #I13, 12, T14, I14, #I14, 13, T15, I15, #I15, 14, T16, I16, #I16, 15, T17, I17, #I17, 16) 
  869. #define sql_create_c_order_17(NAME, CMP, CONTR, T1, I1, O1, T2, I2, O2, T3, I3, O3, T4, I4, O4, T5, I5, O5, T6, I6, O6, T7, I7, O7, T8, I8, O8, T9, I9, O9, T10, I10, O10, T11, I11, O11, T12, I12, O12, T13, I13, O13, T14, I14, O14, T15, I15, O15, T16, I16, O16, T17, I17, O17) 
  870.   sql_create_complete_17(NAME, CMP, CONTR, T1, I1, #I1, O1, T2, I2, #I2, O2, T3, I3, #I3, O3, T4, I4, #I4, O4, T5, I5, #I5, O5, T6, I6, #I6, O6, T7, I7, #I7, O7, T8, I8, #I8, O8, T9, I9, #I9, O9, T10, I10, #I10, O10, T11, I11, #I11, O11, T12, I12, #I12, O12, T13, I13, #I13, O13, T14, I14, #I14, O14, T15, I15, #I15, O15, T16, I16, #I16, O16, T17, I17, #I17, O17)
  871. #define sql_create_c_names_17(NAME, CMP, CONTR, T1, I1, N1, T2, I2, N2, T3, I3, N3, T4, I4, N4, T5, I5, N5, T6, I6, N6, T7, I7, N7, T8, I8, N8, T9, I9, N9, T10, I10, N10, T11, I11, N11, T12, I12, N12, T13, I13, N13, T14, I14, N14, T15, I15, N15, T16, I16, N16, T17, I17, N17) 
  872.   sql_create_complete_17(NAME, CMP, CONTR, T1, I1, N1, 0, T2, I2, N2, 1, T3, I3, N3, 2, T4, I4, N4, 3, T5, I5, N5, 4, T6, I6, N6, 5, T7, I7, N7, 6, T8, I8, N8, 7, T9, I9, N9, 8, T10, I10, N10, 9, T11, I11, N11, 10, T12, I12, N12, 11, T13, I13, N13, 12, T14, I14, N14, 13, T15, I15, N15, 14, T16, I16, N16, 15, T17, I17, N17, 16)
  873. // ---------------------------------------------------
  874. //                  End Create 17
  875. // ---------------------------------------------------
  876. // ---------------------------------------------------
  877. //                  Begin Create 18
  878. // ---------------------------------------------------
  879. #define sql_create_basic_c_order_18(NAME, CMP, CONTR, T1, I1, O1, T2, I2, O2, T3, I3, O3, T4, I4, O4, T5, I5, O5, T6, I6, O6, T7, I7, O7, T8, I8, O8, T9, I9, O9, T10, I10, O10, T11, I11, O11, T12, I12, O12, T13, I13, O13, T14, I14, O14, T15, I15, O15, T16, I16, O16, T17, I17, O17, T18, I18, O18)
  880.   struct NAME; 
  881.   template <sql_dummy_type dummy> int sql_compare_##NAME (const NAME &, const NAME &);
  882.   struct NAME { 
  883.     T1 I1;
  884.     T2 I2;
  885.     T3 I3;
  886.     T4 I4;
  887.     T5 I5;
  888.     T6 I6;
  889.     T7 I7;
  890.     T8 I8;
  891.     T9 I9;
  892.     T10 I10;
  893.     T11 I11;
  894.     T12 I12;
  895.     T13 I13;
  896.     T14 I14;
  897.     T15 I15;
  898.     T16 I16;
  899.     T17 I17;
  900.     T18 I18; 
  901.     NAME () {} 
  902.     NAME (const MysqlRow &row);
  903.     sql_compare_define_##CMP(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  904.   }; 
  905.   template <sql_dummy_type dummy> 
  906.     void populate_##NAME (NAME *s, const MysqlRow &row) { 
  907.     s->##I1 = row[ O1 ];
  908.     s->##I2 = row[ O2 ];
  909.     s->##I3 = row[ O3 ];
  910.     s->##I4 = row[ O4 ];
  911.     s->##I5 = row[ O5 ];
  912.     s->##I6 = row[ O6 ];
  913.     s->##I7 = row[ O7 ];
  914.     s->##I8 = row[ O8 ];
  915.     s->##I9 = row[ O9 ];
  916.     s->##I10 = row[ O10 ];
  917.     s->##I11 = row[ O11 ];
  918.     s->##I12 = row[ O12 ];
  919.     s->##I13 = row[ O13 ];
  920.     s->##I14 = row[ O14 ];
  921.     s->##I15 = row[ O15 ];
  922.     s->##I16 = row[ O16 ];
  923.     s->##I17 = row[ O17 ];
  924.     s->##I18 = row[ O18 ]; 
  925.   } 
  926.   inline NAME##::##NAME (const MysqlRow &row) 
  927.     {populate_##NAME##<sql_dummy>(this, row);} 
  928.   sql_COMPARE__##CMP##(NAME, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, 0, 0, 0, 0, 0, 0, 0, 0 )
  929. #define sql_create_complete_18(NAME, CMP, CONTR, T1, I1, N1, O1, T2, I2, N2, O2, T3, I3, N3, O3, T4, I4, N4, O4, T5, I5, N5, O5, T6, I6, N6, O6, T7, I7, N7, O7, T8, I8, N8, O8, T9, I9, N9, O9, T10, I10, N10, O10, T11, I11, N11, O11, T12, I12, N12, O12, T13, I13, N13, O13, T14, I14, N14, O14, T15, I15, N15, O15, T16, I16, N16, O16, T17, I17, N17, O17, T18, I18, N18, O18) 
  930.   struct NAME; 
  931.   enum NAME##_enum { 
  932.     NAME##_##I1,
  933.     NAME##_##I2,
  934.     NAME##_##I3,
  935.     NAME##_##I4,
  936.     NAME##_##I5,
  937.     NAME##_##I6,
  938.     NAME##_##I7,
  939.     NAME##_##I8,
  940.     NAME##_##I9,
  941.     NAME##_##I10,
  942.     NAME##_##I11,
  943.     NAME##_##I12,
  944.     NAME##_##I13,
  945.     NAME##_##I14,
  946.     NAME##_##I15,
  947.     NAME##_##I16,
  948.     NAME##_##I17,
  949.     NAME##_##I18 
  950.     ,NAME##_NULL 
  951.   }; 
  952.   template <class Manip>
  953.   class NAME##_value_list { 
  954.   /*friend ostream& operator << <> (ostream&, const NAME##_value_list&); */
  955.   public: 
  956.     const NAME *obj;
  957.     cchar *delem;
  958.     Manip manip;
  959.   public: 
  960.     NAME##_value_list (const NAME *o, cchar *d, Manip m) 
  961.       : obj(o), delem(d), manip(m) {} 
  962.   };
  963.   template <class Manip>
  964.   class NAME##_##field_list {
  965.   /* friend ostream& operator << <> (ostream&, const NAME##_field_list&); */
  966.   public: 
  967.     const NAME *obj; 
  968.     cchar *delem;
  969.     Manip manip;
  970.   public: 
  971.     NAME##_field_list (const NAME *o, cchar *d, Manip m) 
  972.       : obj(o), delem(d), manip(m) {} 
  973.   };
  974.   template <class Manip>
  975.   class NAME##_equal_list { 
  976.   /* friend ostream& operator << <> (ostream&, const NAME##_equal_list&); */
  977.   public: 
  978.     const NAME *obj;
  979.     cchar *delem;
  980.     cchar *comp;
  981.     Manip manip;
  982.   public: 
  983.     NAME##_equal_list (const NAME *o, cchar *d, cchar *c, Manip m) 
  984.       : obj(o), delem(d), comp(c), manip(m) {}
  985.   };
  986.   template <class Manip>
  987.   class NAME##_cus_value_list {
  988.   /* friend ostream& operator << <> (ostream&, 
  989.      const NAME##_cus_value_list<Manip>&); */
  990.   public:
  991.     const NAME *obj;
  992.     cchar *delem;
  993.     Manip manip;
  994.     vector<bool> *include;
  995.     bool del_vector;
  996.   public: 
  997.     ~##NAME##_cus_value_list () {if (del_vector) delete include;} 
  998.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18);
  999.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18); 
  1000.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m ,vector<bool>)
  1001.       : obj(o), include(i), del_vector(false), delem(d), manip(m) {}
  1002.   };
  1003.   template <class Manip>
  1004.   class NAME##_cus_field_list { 
  1005.   /* friend ostream& operator << <> (ostream&, 
  1006.         const NAME##_cus_field_list<Manip>&); */
  1007.   public:
  1008.     const NAME *obj; 
  1009.     cchar *delem;
  1010.     Manip manip;
  1011.     vector<bool> *include; 
  1012.     bool del_vector; 
  1013.   public: 
  1014.     ~##NAME##_cus_field_list () {if (del_vector) delete include;} 
  1015.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18); 
  1016.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18); 
  1017.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, vector<bool> *i) 
  1018.       : obj(o), include(i), del_vector(false), delem(d), manip(m) {}
  1019.   };
  1020.  template <class Manip>
  1021.  class NAME##_cus_equal_list {
  1022.  /* friend ostream& operator << <> (ostream&, 
  1023.   const NAME##_cus_equal_list<Manip>&); */
  1024.   public:
  1025.     const NAME *obj;
  1026.     vector<bool> *include;
  1027.     bool del_vector;
  1028.     cchar *delem;
  1029.     cchar *comp;
  1030.     Manip manip;
  1031.   public:
  1032.     ~##NAME##_##cus_equal_list () {if (del_vector) delete include;}
  1033.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18); 
  1034.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18); 
  1035.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, vector<bool> *i) 
  1036.       : obj(o), include(i), del_vector(false), delem(d), comp(c), manip(m) {}
  1037.   };
  1038.   template <sql_dummy_type dummy> int sql_compare_##NAME (const NAME &, const NAME &);
  1039.   struct NAME { 
  1040.     T1 I1;
  1041.     T2 I2;
  1042.     T3 I3;
  1043.     T4 I4;
  1044.     T5 I5;
  1045.     T6 I6;
  1046.     T7 I7;
  1047.     T8 I8;
  1048.     T9 I9;
  1049.     T10 I10;
  1050.     T11 I11;
  1051.     T12 I12;
  1052.     T13 I13;
  1053.     T14 I14;
  1054.     T15 I15;
  1055.     T16 I16;
  1056.     T17 I17;
  1057.     T18 I18; 
  1058.     NAME () {} 
  1059.     NAME (const MysqlRow &row);
  1060.     void set (const MysqlRow &row);
  1061.     sql_compare_define_##CMP(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  1062.     sql_construct_define_##CONTR(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  1063.     static char *names[];
  1064.     static char *_table;
  1065.     static char *& table() {return _table;}
  1066.     /* cus_data */
  1067.     NAME##_cus_value_list<quote_type0> value_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false) const {
  1068.       return value_list(",", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1069.     }
  1070.     NAME##_cus_value_list<quote_type0> value_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL) const {
  1071.       return value_list(",", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1072.     }
  1073.     NAME##_cus_value_list<quote_type0> value_list(vector<bool> *i) const {
  1074.       return value_list(",", mysql_quote, i);
  1075.     }
  1076.     NAME##_cus_value_list<quote_type0> value_list(sql_cmp_type sc) const {
  1077.       return value_list(",", mysql_quote, sc);
  1078.     }
  1079.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false) const {
  1080.       return value_list(d, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1081.     }
  1082.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL) const {
  1083.       return value_list(d, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1084.     }
  1085.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, 
  1086. vector<bool> *i) const {
  1087.       return value_list(d, mysql_quote, i);
  1088.     }
  1089.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, 
  1090. sql_cmp_type sc) const {
  1091.       return value_list(d, mysql_quote, sc);
  1092.     }
  1093.     template <class Manip>
  1094.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m,
  1095.   bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false) const; 
  1096.     template <class Manip>
  1097.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m,
  1098.   ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL) const; 
  1099.     template <class Manip>
  1100.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m, 
  1101.   vector<bool> *i) const;
  1102.     template <class Manip>
  1103.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m, 
  1104.   sql_cmp_type sc) const;
  1105.     /* cus field */
  1106.     NAME##_cus_field_list<do_nothing_type0> field_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false) const {
  1107.       return field_list(",", mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1108.     }
  1109.     NAME##_cus_field_list<do_nothing_type0> field_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL) const {
  1110.       return field_list(",", mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1111.     }
  1112.     NAME##_cus_field_list<do_nothing_type0> field_list(vector<bool> *i) const {
  1113.       return field_list(",", mysql_do_nothing, i);
  1114.     }
  1115.     NAME##_cus_field_list<do_nothing_type0> field_list(sql_cmp_type sc) const
  1116.     {
  1117.       return field_list(",", mysql_do_nothing, sc);
  1118.     }
  1119.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  1120.        bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false) const {
  1121.       return field_list(d, mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1122.     }
  1123.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d,
  1124.        ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL) const {
  1125.       return field_list(d, mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1126.     }
  1127.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  1128. vector<bool> *i) const {
  1129.       return field_list(d, mysql_do_nothing, i);
  1130.     }
  1131.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  1132. sql_cmp_type sc) const {
  1133.       return field_list(d, mysql_do_nothing, sc);
  1134.     }
  1135.     template <class Manip>
  1136.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  1137.     bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false) const; 
  1138.     template <class Manip>
  1139.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  1140.     ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL) const; 
  1141.     template <class Manip>
  1142.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  1143.     vector<bool> *i) const;
  1144.     template <class Manip>
  1145.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m, 
  1146.     sql_cmp_type sc) const;
  1147.     /* cus equal */
  1148.     NAME##_cus_equal_list<quote_type0> equal_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false) const {
  1149.       return equal_list(",", " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1150.     }
  1151.     NAME##_cus_equal_list<quote_type0> equal_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL) const {
  1152.       return equal_list(",", " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1153.     }
  1154.     NAME##_cus_equal_list<quote_type0> equal_list(vector<bool> *i) const {
  1155.       return equal_list(",", " = ", mysql_quote, i);
  1156.     }
  1157.     NAME##_cus_equal_list<quote_type0> equal_list(sql_cmp_type sc) const {
  1158.       return equal_list(",", " = ", mysql_quote, sc);
  1159.     }
  1160.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false) const {
  1161.       return equal_list(d, " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1162.     }
  1163.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL) const {
  1164.       return equal_list(d, " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1165.     }
  1166.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, 
  1167. vector<bool> *i) const {
  1168.       return equal_list(d, " = ", mysql_quote, i);
  1169.     }
  1170.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, 
  1171. sql_cmp_type sc) const {
  1172.       return equal_list(d, " = ", mysql_quote, sc);
  1173.     }
  1174.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  1175.                                                 bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false) const {
  1176.       return equal_list(d, c, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1177.     }
  1178.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  1179.                                                 ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL) const {
  1180.       return equal_list(d, c, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18);
  1181.     }
  1182.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  1183. vector<bool> *i) const {
  1184.       return equal_list(d, c, mysql_quote, i);
  1185.     }
  1186.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  1187. sql_cmp_type sc) const {
  1188.       return equal_list(d, c, mysql_quote, sc);
  1189.     }
  1190.     template <class Manip>
  1191.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  1192.     bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false) const; 
  1193.     template <class Manip>
  1194.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  1195.     ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL) const; 
  1196.     template <class Manip>
  1197.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  1198.     vector<bool> *i) const;
  1199.     template <class Manip>
  1200.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  1201.     sql_cmp_type sc) const;
  1202.     NAME##_value_list<quote_type0> value_list() const {
  1203.       return value_list(",", mysql_quote);}
  1204.     NAME##_value_list<quote_type0> value_list(cchar *d) const {
  1205.       return value_list(d, mysql_quote);}
  1206.     template <class Manip> 
  1207.     NAME##_value_list<Manip> value_list(cchar *d, Manip m) const; 
  1208.     NAME##_field_list<do_nothing_type0> field_list() const {
  1209.       return field_list(",", mysql_do_nothing);}
  1210.     NAME##_field_list<do_nothing_type0> field_list(cchar *d) const {
  1211.       return field_list(d, mysql_do_nothing);}
  1212.     template <class Manip>
  1213.     NAME##_field_list<Manip> field_list(cchar *d, Manip m) const; 
  1214.     NAME##_equal_list<quote_type0> equal_list(cchar *d = ",", 
  1215.                                               cchar *c = " = ") const{
  1216.       return equal_list(d, c, mysql_quote);}
  1217.     template <class Manip>
  1218.     NAME##_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m) const; 
  1219.   }; 
  1220.   char *##NAME##::names[] = { 
  1221.     N1 ,
  1222.     N2 ,
  1223.     N3 ,
  1224.     N4 ,
  1225.     N5 ,
  1226.     N6 ,
  1227.     N7 ,
  1228.     N8 ,
  1229.     N9 ,
  1230.     N10 ,
  1231.     N11 ,
  1232.     N12 ,
  1233.     N13 ,
  1234.     N14 ,
  1235.     N15 ,
  1236.     N16 ,
  1237.     N17 ,
  1238.     N18  
  1239.   }; 
  1240.   char *##NAME##::_table = #NAME ;  
  1241.   template <class Manip>
  1242.   NAME##_cus_value_list<Manip>::NAME##_cus_value_list
  1243.   (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18) 
  1244.   { 
  1245.     delem = d;
  1246.     manip = m;
  1247.     del_vector = true;
  1248.     obj = o; 
  1249.     include = new vector<bool>(18, false);
  1250.     if (i1) (*include)[0]=true;
  1251.     if (i2) (*include)[1]=true;
  1252.     if (i3) (*include)[2]=true;
  1253.     if (i4) (*include)[3]=true;
  1254.     if (i5) (*include)[4]=true;
  1255.     if (i6) (*include)[5]=true;
  1256.     if (i7) (*include)[6]=true;
  1257.     if (i8) (*include)[7]=true;
  1258.     if (i9) (*include)[8]=true;
  1259.     if (i10) (*include)[9]=true;
  1260.     if (i11) (*include)[10]=true;
  1261.     if (i12) (*include)[11]=true;
  1262.     if (i13) (*include)[12]=true;
  1263.     if (i14) (*include)[13]=true;
  1264.     if (i15) (*include)[14]=true;
  1265.     if (i16) (*include)[15]=true;
  1266.     if (i17) (*include)[16]=true;
  1267.     if (i18) (*include)[17]=true;
  1268.   } 
  1269.   template <class Manip>
  1270.   NAME##_cus_value_list<Manip>::NAME##_cus_value_list
  1271.   (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18) { 
  1272.     delem = d;
  1273.     manip = m;
  1274.     del_vector = true; 
  1275.     obj = o; 
  1276.     include = new vector<bool>(18, false); 
  1277.     if (i1 == NAME##_NULL) return;
  1278.     (*include)[i1]=true;
  1279.     if (i2 == NAME##_NULL) return;
  1280.     (*include)[i2]=true;
  1281.     if (i3 == NAME##_NULL) return;
  1282.     (*include)[i3]=true;
  1283.     if (i4 == NAME##_NULL) return;
  1284.     (*include)[i4]=true;
  1285.     if (i5 == NAME##_NULL) return;
  1286.     (*include)[i5]=true;
  1287.     if (i6 == NAME##_NULL) return;
  1288.     (*include)[i6]=true;
  1289.     if (i7 == NAME##_NULL) return;
  1290.     (*include)[i7]=true;
  1291.     if (i8 == NAME##_NULL) return;
  1292.     (*include)[i8]=true;
  1293.     if (i9 == NAME##_NULL) return;
  1294.     (*include)[i9]=true;
  1295.     if (i10 == NAME##_NULL) return;
  1296.     (*include)[i10]=true;
  1297.     if (i11 == NAME##_NULL) return;
  1298.     (*include)[i11]=true;
  1299.     if (i12 == NAME##_NULL) return;
  1300.     (*include)[i12]=true;
  1301.     if (i13 == NAME##_NULL) return;
  1302.     (*include)[i13]=true;
  1303.     if (i14 == NAME##_NULL) return;
  1304.     (*include)[i14]=true;
  1305.     if (i15 == NAME##_NULL) return;
  1306.     (*include)[i15]=true;
  1307.     if (i16 == NAME##_NULL) return;
  1308.     (*include)[i16]=true;
  1309.     if (i17 == NAME##_NULL) return;
  1310.     (*include)[i17]=true;
  1311.     if (i18 == NAME##_NULL) return;
  1312.     (*include)[i18]=true;
  1313.   }
  1314.   template <class Manip>
  1315.   NAME##_cus_field_list<Manip>::NAME##_cus_field_list
  1316.   (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18) {
  1317.     delem = d;
  1318.     manip = m;
  1319.     del_vector = true; 
  1320.     obj = o; 
  1321.     include = new vector<bool>(18, false); 
  1322.     if (i1) (*include)[0]=true;
  1323.     if (i2) (*include)[1]=true;
  1324.     if (i3) (*include)[2]=true;
  1325.     if (i4) (*include)[3]=true;
  1326.     if (i5) (*include)[4]=true;
  1327.     if (i6) (*include)[5]=true;
  1328.     if (i7) (*include)[6]=true;
  1329.     if (i8) (*include)[7]=true;
  1330.     if (i9) (*include)[8]=true;
  1331.     if (i10) (*include)[9]=true;
  1332.     if (i11) (*include)[10]=true;
  1333.     if (i12) (*include)[11]=true;
  1334.     if (i13) (*include)[12]=true;
  1335.     if (i14) (*include)[13]=true;
  1336.     if (i15) (*include)[14]=true;
  1337.     if (i16) (*include)[15]=true;
  1338.     if (i17) (*include)[16]=true;
  1339.     if (i18) (*include)[17]=true;
  1340.   } 
  1341.   template <class Manip>
  1342.   NAME##_cus_field_list<Manip>::NAME##_cus_field_list
  1343.   (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18) { 
  1344.     delem = d;
  1345.     manip = m;
  1346.     del_vector = true; 
  1347.     obj = o; 
  1348.     include = new vector<bool>(18, false); 
  1349.     if (i1 == NAME##_NULL) return;
  1350.     (*include)[i1]=true;
  1351.     if (i2 == NAME##_NULL) return;
  1352.     (*include)[i2]=true;
  1353.     if (i3 == NAME##_NULL) return;
  1354.     (*include)[i3]=true;
  1355.     if (i4 == NAME##_NULL) return;
  1356.     (*include)[i4]=true;
  1357.     if (i5 == NAME##_NULL) return;
  1358.     (*include)[i5]=true;
  1359.     if (i6 == NAME##_NULL) return;
  1360.     (*include)[i6]=true;
  1361.     if (i7 == NAME##_NULL) return;
  1362.     (*include)[i7]=true;
  1363.     if (i8 == NAME##_NULL) return;
  1364.     (*include)[i8]=true;
  1365.     if (i9 == NAME##_NULL) return;
  1366.     (*include)[i9]=true;
  1367.     if (i10 == NAME##_NULL) return;
  1368.     (*include)[i10]=true;
  1369.     if (i11 == NAME##_NULL) return;
  1370.     (*include)[i11]=true;
  1371.     if (i12 == NAME##_NULL) return;
  1372.     (*include)[i12]=true;
  1373.     if (i13 == NAME##_NULL) return;
  1374.     (*include)[i13]=true;
  1375.     if (i14 == NAME##_NULL) return;
  1376.     (*include)[i14]=true;
  1377.     if (i15 == NAME##_NULL) return;
  1378.     (*include)[i15]=true;
  1379.     if (i16 == NAME##_NULL) return;
  1380.     (*include)[i16]=true;
  1381.     if (i17 == NAME##_NULL) return;
  1382.     (*include)[i17]=true;
  1383.     if (i18 == NAME##_NULL) return;
  1384.     (*include)[i18]=true;
  1385.   }
  1386.   template <class Manip>
  1387.   NAME##_cus_equal_list<Manip>::NAME##_cus_equal_list
  1388.   (const NAME *o, cchar *d, cchar *c, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18) { 
  1389.     delem = d;
  1390.     comp = c;
  1391.     manip = m;
  1392.     del_vector = true; 
  1393.     obj = o; 
  1394.     include = new vector<bool>(18, false); 
  1395.     if (i1) (*include)[0]=true;
  1396.     if (i2) (*include)[1]=true;
  1397.     if (i3) (*include)[2]=true;
  1398.     if (i4) (*include)[3]=true;
  1399.     if (i5) (*include)[4]=true;
  1400.     if (i6) (*include)[5]=true;
  1401.     if (i7) (*include)[6]=true;
  1402.     if (i8) (*include)[7]=true;
  1403.     if (i9) (*include)[8]=true;
  1404.     if (i10) (*include)[9]=true;
  1405.     if (i11) (*include)[10]=true;
  1406.     if (i12) (*include)[11]=true;
  1407.     if (i13) (*include)[12]=true;
  1408.     if (i14) (*include)[13]=true;
  1409.     if (i15) (*include)[14]=true;
  1410.     if (i16) (*include)[15]=true;
  1411.     if (i17) (*include)[16]=true;
  1412.     if (i18) (*include)[17]=true;
  1413.   } 
  1414.   template <class Manip>
  1415.   NAME##_cus_equal_list<Manip>::NAME##_cus_equal_list
  1416.   (const NAME *o, cchar *d, cchar *c, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18) { 
  1417.     delem = d;
  1418.     comp = c;
  1419.     manip = m;
  1420.     del_vector = true; 
  1421.     obj = o; 
  1422.     include = new vector<bool>(18, false); 
  1423.     if (i1 == NAME##_NULL) return;
  1424.     (*include)[i1]=true;
  1425.     if (i2 == NAME##_NULL) return;
  1426.     (*include)[i2]=true;
  1427.     if (i3 == NAME##_NULL) return;
  1428.     (*include)[i3]=true;
  1429.     if (i4 == NAME##_NULL) return;
  1430.     (*include)[i4]=true;
  1431.     if (i5 == NAME##_NULL) return;
  1432.     (*include)[i5]=true;
  1433.     if (i6 == NAME##_NULL) return;
  1434.     (*include)[i6]=true;
  1435.     if (i7 == NAME##_NULL) return;
  1436.     (*include)[i7]=true;
  1437.     if (i8 == NAME##_NULL) return;
  1438.     (*include)[i8]=true;
  1439.     if (i9 == NAME##_NULL) return;
  1440.     (*include)[i9]=true;
  1441.     if (i10 == NAME##_NULL) return;
  1442.     (*include)[i10]=true;
  1443.     if (i11 == NAME##_NULL) return;
  1444.     (*include)[i11]=true;
  1445.     if (i12 == NAME##_NULL) return;
  1446.     (*include)[i12]=true;
  1447.     if (i13 == NAME##_NULL) return;
  1448.     (*include)[i13]=true;
  1449.     if (i14 == NAME##_NULL) return;
  1450.     (*include)[i14]=true;
  1451.     if (i15 == NAME##_NULL) return;
  1452.     (*include)[i15]=true;
  1453.     if (i16 == NAME##_NULL) return;
  1454.     (*include)[i16]=true;
  1455.     if (i17 == NAME##_NULL) return;
  1456.     (*include)[i17]=true;
  1457.     if (i18 == NAME##_NULL) return;
  1458.     (*include)[i18]=true;
  1459.   }
  1460.   template <class Manip>
  1461.   ostream& operator << (ostream& s, const NAME##_value_list<Manip>& obj) { 
  1462.     s << obj.manip << obj.obj->##I1 << obj.delem;
  1463.     s << obj.manip << obj.obj->##I2 << obj.delem;
  1464.     s << obj.manip << obj.obj->##I3 << obj.delem;
  1465.     s << obj.manip << obj.obj->##I4 << obj.delem;
  1466.     s << obj.manip << obj.obj->##I5 << obj.delem;
  1467.     s << obj.manip << obj.obj->##I6 << obj.delem;
  1468.     s << obj.manip << obj.obj->##I7 << obj.delem;
  1469.     s << obj.manip << obj.obj->##I8 << obj.delem;
  1470.     s << obj.manip << obj.obj->##I9 << obj.delem;
  1471.     s << obj.manip << obj.obj->##I10 << obj.delem;
  1472.     s << obj.manip << obj.obj->##I11 << obj.delem;
  1473.     s << obj.manip << obj.obj->##I12 << obj.delem;
  1474.     s << obj.manip << obj.obj->##I13 << obj.delem;
  1475.     s << obj.manip << obj.obj->##I14 << obj.delem;
  1476.     s << obj.manip << obj.obj->##I15 << obj.delem;
  1477.     s << obj.manip << obj.obj->##I16 << obj.delem;
  1478.     s << obj.manip << obj.obj->##I17 << obj.delem;
  1479.     s << obj.manip << obj.obj->##I18; 
  1480.     return s; 
  1481.   } 
  1482.   template <class Manip>
  1483.   ostream& operator << (ostream& s, const NAME##_field_list<Manip>& obj) { 
  1484.     s << obj.manip << obj.obj->names[0] << obj.delem;
  1485.     s << obj.manip << obj.obj->names[1] << obj.delem;
  1486.     s << obj.manip << obj.obj->names[2] << obj.delem;
  1487.     s << obj.manip << obj.obj->names[3] << obj.delem;
  1488.     s << obj.manip << obj.obj->names[4] << obj.delem;
  1489.     s << obj.manip << obj.obj->names[5] << obj.delem;
  1490.     s << obj.manip << obj.obj->names[6] << obj.delem;
  1491.     s << obj.manip << obj.obj->names[7] << obj.delem;
  1492.     s << obj.manip << obj.obj->names[8] << obj.delem;
  1493.     s << obj.manip << obj.obj->names[9] << obj.delem;
  1494.     s << obj.manip << obj.obj->names[10] << obj.delem;
  1495.     s << obj.manip << obj.obj->names[11] << obj.delem;
  1496.     s << obj.manip << obj.obj->names[12] << obj.delem;
  1497.     s << obj.manip << obj.obj->names[13] << obj.delem;
  1498.     s << obj.manip << obj.obj->names[14] << obj.delem;
  1499.     s << obj.manip << obj.obj->names[15] << obj.delem;
  1500.     s << obj.manip << obj.obj->names[16] << obj.delem;
  1501.     s << obj.manip << obj.obj->names[17]; 
  1502.     return s; 
  1503.   } 
  1504.   template <class Manip>
  1505.   ostream& operator << (ostream& s, const NAME##_equal_list<Manip>& obj) { 
  1506.     s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1 << obj.delem;
  1507.     s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2 << obj.delem;
  1508.     s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3 << obj.delem;
  1509.     s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4 << obj.delem;
  1510.     s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5 << obj.delem;
  1511.     s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6 << obj.delem;
  1512.     s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7 << obj.delem;
  1513.     s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8 << obj.delem;
  1514.     s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9 << obj.delem;
  1515.     s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10 << obj.delem;
  1516.     s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11 << obj.delem;
  1517.     s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12 << obj.delem;
  1518.     s << obj.obj->names[12] << obj.comp << obj.manip << obj.obj->##I13 << obj.delem;
  1519.     s << obj.obj->names[13] << obj.comp << obj.manip << obj.obj->##I14 << obj.delem;
  1520.     s << obj.obj->names[14] << obj.comp << obj.manip << obj.obj->##I15 << obj.delem;
  1521.     s << obj.obj->names[15] << obj.comp << obj.manip << obj.obj->##I16 << obj.delem;
  1522.     s << obj.obj->names[16] << obj.comp << obj.manip << obj.obj->##I17 << obj.delem;
  1523.     s << obj.obj->names[17] << obj.comp << obj.manip << obj.obj->##I18; 
  1524.     return s; 
  1525.   } 
  1526.   template <class Manip>
  1527.   ostream& operator << (ostream& s, const NAME##_cus_value_list<Manip>& obj) { 
  1528.     bool before = false; 
  1529.     if ((*obj.include)[0]) { 
  1530.       s << obj.manip << obj.obj->##I1;
  1531.       before = true; 
  1532.      } 
  1533.     if ((*obj.include)[1]) { 
  1534.       if (before) s << obj.delem;
  1535.       s << obj.manip << obj.obj->##I2;
  1536.       before = true; 
  1537.      } 
  1538.     if ((*obj.include)[2]) { 
  1539.       if (before) s << obj.delem;
  1540.       s << obj.manip << obj.obj->##I3;
  1541.       before = true; 
  1542.      } 
  1543.     if ((*obj.include)[3]) { 
  1544.       if (before) s << obj.delem;
  1545.       s << obj.manip << obj.obj->##I4;
  1546.       before = true; 
  1547.      } 
  1548.     if ((*obj.include)[4]) { 
  1549.       if (before) s << obj.delem;
  1550.       s << obj.manip << obj.obj->##I5;
  1551.       before = true; 
  1552.      } 
  1553.     if ((*obj.include)[5]) { 
  1554.       if (before) s << obj.delem;
  1555.       s << obj.manip << obj.obj->##I6;
  1556.       before = true; 
  1557.      } 
  1558.     if ((*obj.include)[6]) { 
  1559.       if (before) s << obj.delem;
  1560.       s << obj.manip << obj.obj->##I7;
  1561.       before = true; 
  1562.      } 
  1563.     if ((*obj.include)[7]) { 
  1564.       if (before) s << obj.delem;
  1565.       s << obj.manip << obj.obj->##I8;
  1566.       before = true; 
  1567.      } 
  1568.     if ((*obj.include)[8]) { 
  1569.       if (before) s << obj.delem;
  1570.       s << obj.manip << obj.obj->##I9;
  1571.       before = true; 
  1572.      } 
  1573.     if ((*obj.include)[9]) { 
  1574.       if (before) s << obj.delem;
  1575.       s << obj.manip << obj.obj->##I10;
  1576.       before = true; 
  1577.      } 
  1578.     if ((*obj.include)[10]) { 
  1579.       if (before) s << obj.delem;
  1580.       s << obj.manip << obj.obj->##I11;
  1581.       before = true; 
  1582.      } 
  1583.     if ((*obj.include)[11]) { 
  1584.       if (before) s << obj.delem;
  1585.       s << obj.manip << obj.obj->##I12;
  1586.       before = true; 
  1587.      } 
  1588.     if ((*obj.include)[12]) { 
  1589.       if (before) s << obj.delem;
  1590.       s << obj.manip << obj.obj->##I13;
  1591.       before = true; 
  1592.      } 
  1593.     if ((*obj.include)[13]) { 
  1594.       if (before) s << obj.delem;
  1595.       s << obj.manip << obj.obj->##I14;
  1596.       before = true; 
  1597.      } 
  1598.     if ((*obj.include)[14]) { 
  1599.       if (before) s << obj.delem;
  1600.       s << obj.manip << obj.obj->##I15;
  1601.       before = true; 
  1602.      } 
  1603.     if ((*obj.include)[15]) { 
  1604.       if (before) s << obj.delem;
  1605.       s << obj.manip << obj.obj->##I16;
  1606.       before = true; 
  1607.      } 
  1608.     if ((*obj.include)[16]) { 
  1609.       if (before) s << obj.delem;
  1610.       s << obj.manip << obj.obj->##I17;
  1611.       before = true; 
  1612.      } 
  1613.     if ((*obj.include)[17]) { 
  1614.       if (before) s << obj.delem;
  1615.       s << obj.manip << obj.obj->##I18;
  1616.      } 
  1617.     return s; 
  1618.   } 
  1619.   template <class Manip>
  1620.   ostream& operator << (ostream& s, const NAME##_cus_field_list<Manip>& obj) { 
  1621.     bool before = false; 
  1622.     if ((*obj.include)[0]) { 
  1623.       s << obj.manip << obj.obj->names[0];
  1624.       before = true; 
  1625.      } 
  1626.     if ((*obj.include)[1]) { 
  1627.       if (before) s << obj.delem;
  1628.       s << obj.manip << obj.obj->names[1];
  1629.       before = true; 
  1630.      } 
  1631.     if ((*obj.include)[2]) { 
  1632.       if (before) s << obj.delem;
  1633.       s << obj.manip << obj.obj->names[2];
  1634.       before = true; 
  1635.      } 
  1636.     if ((*obj.include)[3]) { 
  1637.       if (before) s << obj.delem;
  1638.       s << obj.manip << obj.obj->names[3];
  1639.       before = true; 
  1640.      } 
  1641.     if ((*obj.include)[4]) { 
  1642.       if (before) s << obj.delem;
  1643.       s << obj.manip << obj.obj->names[4];
  1644.       before = true; 
  1645.      } 
  1646.     if ((*obj.include)[5]) { 
  1647.       if (before) s << obj.delem;
  1648.       s << obj.manip << obj.obj->names[5];
  1649.       before = true; 
  1650.      } 
  1651.     if ((*obj.include)[6]) { 
  1652.       if (before) s << obj.delem;
  1653.       s << obj.manip << obj.obj->names[6];
  1654.       before = true; 
  1655.      } 
  1656.     if ((*obj.include)[7]) { 
  1657.       if (before) s << obj.delem;
  1658.       s << obj.manip << obj.obj->names[7];
  1659.       before = true; 
  1660.      } 
  1661.     if ((*obj.include)[8]) { 
  1662.       if (before) s << obj.delem;
  1663.       s << obj.manip << obj.obj->names[8];
  1664.       before = true; 
  1665.      } 
  1666.     if ((*obj.include)[9]) { 
  1667.       if (before) s << obj.delem;
  1668.       s << obj.manip << obj.obj->names[9];
  1669.       before = true; 
  1670.      } 
  1671.     if ((*obj.include)[10]) { 
  1672.       if (before) s << obj.delem;
  1673.       s << obj.manip << obj.obj->names[10];
  1674.       before = true; 
  1675.      } 
  1676.     if ((*obj.include)[11]) { 
  1677.       if (before) s << obj.delem;
  1678.       s << obj.manip << obj.obj->names[11];
  1679.       before = true; 
  1680.      } 
  1681.     if ((*obj.include)[12]) { 
  1682.       if (before) s << obj.delem;
  1683.       s << obj.manip << obj.obj->names[12];
  1684.       before = true; 
  1685.      } 
  1686.     if ((*obj.include)[13]) { 
  1687.       if (before) s << obj.delem;
  1688.       s << obj.manip << obj.obj->names[13];
  1689.       before = true; 
  1690.      } 
  1691.     if ((*obj.include)[14]) { 
  1692.       if (before) s << obj.delem;
  1693.       s << obj.manip << obj.obj->names[14];
  1694.       before = true; 
  1695.      } 
  1696.     if ((*obj.include)[15]) { 
  1697.       if (before) s << obj.delem;
  1698.       s << obj.manip << obj.obj->names[15];
  1699.       before = true; 
  1700.      } 
  1701.     if ((*obj.include)[16]) { 
  1702.       if (before) s << obj.delem;
  1703.       s << obj.manip << obj.obj->names[16];
  1704.       before = true; 
  1705.      } 
  1706.     if ((*obj.include)[17]) { 
  1707.       if (before) s << obj.delem;
  1708.       s << obj.manip << obj.obj->names[17];
  1709.      } 
  1710.     return s; 
  1711.   } 
  1712.   template <class Manip>
  1713.   ostream& operator << (ostream& s, const NAME##_cus_equal_list<Manip>& obj) { 
  1714.     bool before = false; 
  1715.     if ((*obj.include)[0]) { 
  1716.       s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1;
  1717.       before = true; 
  1718.      } 
  1719.     if ((*obj.include)[1]) { 
  1720.       if (before) s << obj.delem;
  1721.       s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2;
  1722.       before = true; 
  1723.      } 
  1724.     if ((*obj.include)[2]) { 
  1725.       if (before) s << obj.delem;
  1726.       s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3;
  1727.       before = true; 
  1728.      } 
  1729.     if ((*obj.include)[3]) { 
  1730.       if (before) s << obj.delem;
  1731.       s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4;
  1732.       before = true; 
  1733.      } 
  1734.     if ((*obj.include)[4]) { 
  1735.       if (before) s << obj.delem;
  1736.       s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5;
  1737.       before = true; 
  1738.      } 
  1739.     if ((*obj.include)[5]) { 
  1740.       if (before) s << obj.delem;
  1741.       s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6;
  1742.       before = true; 
  1743.      } 
  1744.     if ((*obj.include)[6]) { 
  1745.       if (before) s << obj.delem;
  1746.       s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7;
  1747.       before = true; 
  1748.      } 
  1749.     if ((*obj.include)[7]) { 
  1750.       if (before) s << obj.delem;
  1751.       s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8;
  1752.       before = true; 
  1753.      } 
  1754.     if ((*obj.include)[8]) { 
  1755.       if (before) s << obj.delem;
  1756.       s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9;
  1757.       before = true; 
  1758.      } 
  1759.     if ((*obj.include)[9]) { 
  1760.       if (before) s << obj.delem;
  1761.       s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10;
  1762.       before = true; 
  1763.      } 
  1764.     if ((*obj.include)[10]) { 
  1765.       if (before) s << obj.delem;
  1766.       s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11;
  1767.       before = true; 
  1768.      } 
  1769.     if ((*obj.include)[11]) { 
  1770.       if (before) s << obj.delem;
  1771.       s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12;
  1772.       before = true; 
  1773.      } 
  1774.     if ((*obj.include)[12]) { 
  1775.       if (before) s << obj.delem;
  1776.       s << obj.obj->names[12] << obj.comp << obj.manip << obj.obj->##I13;
  1777.       before = true; 
  1778.      } 
  1779.     if ((*obj.include)[13]) { 
  1780.       if (before) s << obj.delem;
  1781.       s << obj.obj->names[13] << obj.comp << obj.manip << obj.obj->##I14;
  1782.       before = true; 
  1783.      } 
  1784.     if ((*obj.include)[14]) { 
  1785.       if (before) s << obj.delem;
  1786.       s << obj.obj->names[14] << obj.comp << obj.manip << obj.obj->##I15;
  1787.       before = true; 
  1788.      } 
  1789.     if ((*obj.include)[15]) { 
  1790.       if (before) s << obj.delem;
  1791.       s << obj.obj->names[15] << obj.comp << obj.manip << obj.obj->##I16;
  1792.       before = true; 
  1793.      } 
  1794.     if ((*obj.include)[16]) { 
  1795.       if (before) s << obj.delem;
  1796.       s << obj.obj->names[16] << obj.comp << obj.manip << obj.obj->##I17;
  1797.       before = true; 
  1798.      } 
  1799.     if ((*obj.include)[17]) { 
  1800.       if (before) s << obj.delem;
  1801.       s << obj.obj->names[17] << obj.comp << obj.manip << obj.obj->##I18;
  1802.      } 
  1803.     return s; 
  1804.   } 
  1805.   template <class Manip>
  1806.   inline NAME##_value_list<Manip> NAME##::value_list(cchar *d, Manip m) const { 
  1807.     return NAME##_value_list<Manip> (this, d, m); 
  1808.   } 
  1809.   template <class Manip>
  1810.   inline NAME##_field_list<Manip> NAME##::field_list(cchar *d, Manip m) const { 
  1811.     return NAME##_field_list<Manip> (this, d, m); 
  1812.   } 
  1813.   template <class Manip>
  1814.   inline NAME##_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m) const { 
  1815.     return NAME##_equal_list<Manip> (this, d, c, m); 
  1816.   } 
  1817.   template <class Manip>
  1818.   inline NAME##_cus_value_list<Manip> NAME##::value_list(cchar *d, Manip m,
  1819.        bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18) const {
  1820.     return NAME##_cus_value_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18); 
  1821.   } 
  1822.   template <class Manip>
  1823.   inline NAME##_cus_field_list<Manip> NAME##::field_list(cchar *d, Manip m,
  1824.  bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18) const { 
  1825.     return NAME##_cus_field_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18); 
  1826.   } 
  1827.   template <class Manip>
  1828.   inline NAME##_cus_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m,
  1829.  bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18) const { 
  1830.     return NAME##_cus_equal_list<Manip> (this, d, c, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18); 
  1831.   } 
  1832.   template <class Manip>
  1833.   inline NAME##_cus_value_list<Manip> NAME##::value_list(cchar *d, Manip m,
  1834.        ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18) const { 
  1835.     return NAME##_cus_value_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18); 
  1836.   } 
  1837.   template <class Manip>
  1838.   inline NAME##_cus_field_list<Manip> NAME##::field_list(cchar *d, Manip m,
  1839.  ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18) const {
  1840.     return NAME##_cus_field_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18); 
  1841.   } 
  1842.   template <class Manip>
  1843.   inline NAME##_cus_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m, 
  1844.  ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18) const { 
  1845.     return NAME##_cus_equal_list<Manip> (this, d, c, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18); 
  1846.   } 
  1847.   template <class Manip>
  1848.   inline NAME##_cus_value_list<Manip> 
  1849.   NAME##::value_list(cchar *d, Manip m, sql_cmp_type sc) const {
  1850.     sql_compare_type_def_##CMP (NAME, value, NUM);
  1851.   }
  1852.   template <class Manip>
  1853.   inline NAME##_cus_field_list<Manip> 
  1854.   NAME##::field_list(cchar *d, Manip m, sql_cmp_type sc) const {
  1855.     sql_compare_type_def_##CMP (NAME, field, NUM);
  1856.   }
  1857.   template <class Manip>
  1858.   inline NAME##_cus_equal_list<Manip> 
  1859.   NAME##::equal_list(cchar *d, cchar *c, Manip m, sql_cmp_type sc) const {
  1860.     sql_compare_type_defe_##CMP (NAME, equal, NUM);
  1861.   }
  1862.   template <sql_dummy_type dummy> 
  1863.   void populate_##NAME (NAME *s, const MysqlRow &row) { 
  1864.     s->##I1 = row[ O1 ];
  1865.     s->##I2 = row[ O2 ];
  1866.     s->##I3 = row[ O3 ];
  1867.     s->##I4 = row[ O4 ];
  1868.     s->##I5 = row[ O5 ];
  1869.     s->##I6 = row[ O6 ];
  1870.     s->##I7 = row[ O7 ];
  1871.     s->##I8 = row[ O8 ];
  1872.     s->##I9 = row[ O9 ];
  1873.     s->##I10 = row[ O10 ];
  1874.     s->##I11 = row[ O11 ];
  1875.     s->##I12 = row[ O12 ];
  1876.     s->##I13 = row[ O13 ];
  1877.     s->##I14 = row[ O14 ];
  1878.     s->##I15 = row[ O15 ];
  1879.     s->##I16 = row[ O16 ];
  1880.     s->##I17 = row[ O17 ];
  1881.     s->##I18 = row[ O18 ];
  1882.   } 
  1883.   inline NAME##::##NAME (const MysqlRow &row) 
  1884.                                         {populate_##NAME##<sql_dummy>(this, row);}
  1885.   inline void NAME##::set (const MysqlRow &row)
  1886.                                         {populate_##NAME##<sql_dummy>(this, row);}
  1887.   sql_COMPARE__##CMP##(NAME, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, 0, 0, 0, 0, 0, 0, 0, 0 )
  1888. #define sql_create_basic_18(NAME, CMP, CONTR, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18) 
  1889.   sql_create_basic_c_order_18(NAME, CMP, CONTR, T1, I1, 0, T2, I2, 1, T3, I3, 2, T4, I4, 3, T5, I5, 4, T6, I6, 5, T7, I7, 6, T8, I8, 7, T9, I9, 8, T10, I10, 9, T11, I11, 10, T12, I12, 11, T13, I13, 12, T14, I14, 13, T15, I15, 14, T16, I16, 15, T17, I17, 16, T18, I18, 17)
  1890. #define sql_create_18(NAME, CMP, CONTR, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18) 
  1891.   sql_create_complete_18(NAME, CMP, CONTR, T1, I1, #I1, 0, T2, I2, #I2, 1, T3, I3, #I3, 2, T4, I4, #I4, 3, T5, I5, #I5, 4, T6, I6, #I6, 5, T7, I7, #I7, 6, T8, I8, #I8, 7, T9, I9, #I9, 8, T10, I10, #I10, 9, T11, I11, #I11, 10, T12, I12, #I12, 11, T13, I13, #I13, 12, T14, I14, #I14, 13, T15, I15, #I15, 14, T16, I16, #I16, 15, T17, I17, #I17, 16, T18, I18, #I18, 17) 
  1892. #define sql_create_c_order_18(NAME, CMP, CONTR, T1, I1, O1, T2, I2, O2, T3, I3, O3, T4, I4, O4, T5, I5, O5, T6, I6, O6, T7, I7, O7, T8, I8, O8, T9, I9, O9, T10, I10, O10, T11, I11, O11, T12, I12, O12, T13, I13, O13, T14, I14, O14, T15, I15, O15, T16, I16, O16, T17, I17, O17, T18, I18, O18) 
  1893.   sql_create_complete_18(NAME, CMP, CONTR, T1, I1, #I1, O1, T2, I2, #I2, O2, T3, I3, #I3, O3, T4, I4, #I4, O4, T5, I5, #I5, O5, T6, I6, #I6, O6, T7, I7, #I7, O7, T8, I8, #I8, O8, T9, I9, #I9, O9, T10, I10, #I10, O10, T11, I11, #I11, O11, T12, I12, #I12, O12, T13, I13, #I13, O13, T14, I14, #I14, O14, T15, I15, #I15, O15, T16, I16, #I16, O16, T17, I17, #I17, O17, T18, I18, #I18, O18)
  1894. #define sql_create_c_names_18(NAME, CMP, CONTR, T1, I1, N1, T2, I2, N2, T3, I3, N3, T4, I4, N4, T5, I5, N5, T6, I6, N6, T7, I7, N7, T8, I8, N8, T9, I9, N9, T10, I10, N10, T11, I11, N11, T12, I12, N12, T13, I13, N13, T14, I14, N14, T15, I15, N15, T16, I16, N16, T17, I17, N17, T18, I18, N18) 
  1895.   sql_create_complete_18(NAME, CMP, CONTR, T1, I1, N1, 0, T2, I2, N2, 1, T3, I3, N3, 2, T4, I4, N4, 3, T5, I5, N5, 4, T6, I6, N6, 5, T7, I7, N7, 6, T8, I8, N8, 7, T9, I9, N9, 8, T10, I10, N10, 9, T11, I11, N11, 10, T12, I12, N12, 11, T13, I13, N13, 12, T14, I14, N14, 13, T15, I15, N15, 14, T16, I16, N16, 15, T17, I17, N17, 16, T18, I18, N18, 17)
  1896. // ---------------------------------------------------
  1897. //                  End Create 18
  1898. // ---------------------------------------------------
  1899. // ---------------------------------------------------
  1900. //                  Begin Create 19
  1901. // ---------------------------------------------------
  1902. #define sql_create_basic_c_order_19(NAME, CMP, CONTR, T1, I1, O1, T2, I2, O2, T3, I3, O3, T4, I4, O4, T5, I5, O5, T6, I6, O6, T7, I7, O7, T8, I8, O8, T9, I9, O9, T10, I10, O10, T11, I11, O11, T12, I12, O12, T13, I13, O13, T14, I14, O14, T15, I15, O15, T16, I16, O16, T17, I17, O17, T18, I18, O18, T19, I19, O19)
  1903.   struct NAME; 
  1904.   template <sql_dummy_type dummy> int sql_compare_##NAME (const NAME &, const NAME &);
  1905.   struct NAME { 
  1906.     T1 I1;
  1907.     T2 I2;
  1908.     T3 I3;
  1909.     T4 I4;
  1910.     T5 I5;
  1911.     T6 I6;
  1912.     T7 I7;
  1913.     T8 I8;
  1914.     T9 I9;
  1915.     T10 I10;
  1916.     T11 I11;
  1917.     T12 I12;
  1918.     T13 I13;
  1919.     T14 I14;
  1920.     T15 I15;
  1921.     T16 I16;
  1922.     T17 I17;
  1923.     T18 I18;
  1924.     T19 I19; 
  1925.     NAME () {} 
  1926.     NAME (const MysqlRow &row);
  1927.     sql_compare_define_##CMP(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  1928.   }; 
  1929.   template <sql_dummy_type dummy> 
  1930.     void populate_##NAME (NAME *s, const MysqlRow &row) { 
  1931.     s->##I1 = row[ O1 ];
  1932.     s->##I2 = row[ O2 ];
  1933.     s->##I3 = row[ O3 ];
  1934.     s->##I4 = row[ O4 ];
  1935.     s->##I5 = row[ O5 ];
  1936.     s->##I6 = row[ O6 ];
  1937.     s->##I7 = row[ O7 ];
  1938.     s->##I8 = row[ O8 ];
  1939.     s->##I9 = row[ O9 ];
  1940.     s->##I10 = row[ O10 ];
  1941.     s->##I11 = row[ O11 ];
  1942.     s->##I12 = row[ O12 ];
  1943.     s->##I13 = row[ O13 ];
  1944.     s->##I14 = row[ O14 ];
  1945.     s->##I15 = row[ O15 ];
  1946.     s->##I16 = row[ O16 ];
  1947.     s->##I17 = row[ O17 ];
  1948.     s->##I18 = row[ O18 ];
  1949.     s->##I19 = row[ O19 ]; 
  1950.   } 
  1951.   inline NAME##::##NAME (const MysqlRow &row) 
  1952.     {populate_##NAME##<sql_dummy>(this, row);} 
  1953.   sql_COMPARE__##CMP##(NAME, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19, 0, 0, 0, 0, 0, 0, 0 )
  1954. #define sql_create_complete_19(NAME, CMP, CONTR, T1, I1, N1, O1, T2, I2, N2, O2, T3, I3, N3, O3, T4, I4, N4, O4, T5, I5, N5, O5, T6, I6, N6, O6, T7, I7, N7, O7, T8, I8, N8, O8, T9, I9, N9, O9, T10, I10, N10, O10, T11, I11, N11, O11, T12, I12, N12, O12, T13, I13, N13, O13, T14, I14, N14, O14, T15, I15, N15, O15, T16, I16, N16, O16, T17, I17, N17, O17, T18, I18, N18, O18, T19, I19, N19, O19) 
  1955.   struct NAME; 
  1956.   enum NAME##_enum { 
  1957.     NAME##_##I1,
  1958.     NAME##_##I2,
  1959.     NAME##_##I3,
  1960.     NAME##_##I4,
  1961.     NAME##_##I5,
  1962.     NAME##_##I6,
  1963.     NAME##_##I7,
  1964.     NAME##_##I8,
  1965.     NAME##_##I9,
  1966.     NAME##_##I10,
  1967.     NAME##_##I11,
  1968.     NAME##_##I12,
  1969.     NAME##_##I13,
  1970.     NAME##_##I14,
  1971.     NAME##_##I15,
  1972.     NAME##_##I16,
  1973.     NAME##_##I17,
  1974.     NAME##_##I18,
  1975.     NAME##_##I19 
  1976.     ,NAME##_NULL 
  1977.   }; 
  1978.   template <class Manip>
  1979.   class NAME##_value_list { 
  1980.   /*friend ostream& operator << <> (ostream&, const NAME##_value_list&); */
  1981.   public: 
  1982.     const NAME *obj;
  1983.     cchar *delem;
  1984.     Manip manip;
  1985.   public: 
  1986.     NAME##_value_list (const NAME *o, cchar *d, Manip m) 
  1987.       : obj(o), delem(d), manip(m) {} 
  1988.   };
  1989.   template <class Manip>
  1990.   class NAME##_##field_list {
  1991.   /* friend ostream& operator << <> (ostream&, const NAME##_field_list&); */
  1992.   public: 
  1993.     const NAME *obj; 
  1994.     cchar *delem;
  1995.     Manip manip;
  1996.   public: 
  1997.     NAME##_field_list (const NAME *o, cchar *d, Manip m) 
  1998.       : obj(o), delem(d), manip(m) {} 
  1999.   };
  2000.   template <class Manip>
  2001.   class NAME##_equal_list { 
  2002.   /* friend ostream& operator << <> (ostream&, const NAME##_equal_list&); */
  2003.   public: 
  2004.     const NAME *obj;
  2005.     cchar *delem;
  2006.     cchar *comp;
  2007.     Manip manip;
  2008.   public: 
  2009.     NAME##_equal_list (const NAME *o, cchar *d, cchar *c, Manip m) 
  2010.       : obj(o), delem(d), comp(c), manip(m) {}
  2011.   };
  2012.   template <class Manip>
  2013.   class NAME##_cus_value_list {
  2014.   /* friend ostream& operator << <> (ostream&, 
  2015.      const NAME##_cus_value_list<Manip>&); */
  2016.   public:
  2017.     const NAME *obj;
  2018.     cchar *delem;
  2019.     Manip manip;
  2020.     vector<bool> *include;
  2021.     bool del_vector;
  2022.   public: 
  2023.     ~##NAME##_cus_value_list () {if (del_vector) delete include;} 
  2024.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19);
  2025.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19); 
  2026.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m ,vector<bool>)
  2027.       : obj(o), include(i), del_vector(false), delem(d), manip(m) {}
  2028.   };
  2029.   template <class Manip>
  2030.   class NAME##_cus_field_list { 
  2031.   /* friend ostream& operator << <> (ostream&, 
  2032.         const NAME##_cus_field_list<Manip>&); */
  2033.   public:
  2034.     const NAME *obj; 
  2035.     cchar *delem;
  2036.     Manip manip;
  2037.     vector<bool> *include; 
  2038.     bool del_vector; 
  2039.   public: 
  2040.     ~##NAME##_cus_field_list () {if (del_vector) delete include;} 
  2041.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19); 
  2042.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19); 
  2043.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, vector<bool> *i) 
  2044.       : obj(o), include(i), del_vector(false), delem(d), manip(m) {}
  2045.   };
  2046.  template <class Manip>
  2047.  class NAME##_cus_equal_list {
  2048.  /* friend ostream& operator << <> (ostream&, 
  2049.   const NAME##_cus_equal_list<Manip>&); */
  2050.   public:
  2051.     const NAME *obj;
  2052.     vector<bool> *include;
  2053.     bool del_vector;
  2054.     cchar *delem;
  2055.     cchar *comp;
  2056.     Manip manip;
  2057.   public:
  2058.     ~##NAME##_##cus_equal_list () {if (del_vector) delete include;}
  2059.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19); 
  2060.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19); 
  2061.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, vector<bool> *i) 
  2062.       : obj(o), include(i), del_vector(false), delem(d), comp(c), manip(m) {}
  2063.   };
  2064.   template <sql_dummy_type dummy> int sql_compare_##NAME (const NAME &, const NAME &);
  2065.   struct NAME { 
  2066.     T1 I1;
  2067.     T2 I2;
  2068.     T3 I3;
  2069.     T4 I4;
  2070.     T5 I5;
  2071.     T6 I6;
  2072.     T7 I7;
  2073.     T8 I8;
  2074.     T9 I9;
  2075.     T10 I10;
  2076.     T11 I11;
  2077.     T12 I12;
  2078.     T13 I13;
  2079.     T14 I14;
  2080.     T15 I15;
  2081.     T16 I16;
  2082.     T17 I17;
  2083.     T18 I18;
  2084.     T19 I19; 
  2085.     NAME () {} 
  2086.     NAME (const MysqlRow &row);
  2087.     void set (const MysqlRow &row);
  2088.     sql_compare_define_##CMP(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  2089.     sql_construct_define_##CONTR(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0)
  2090.     static char *names[];
  2091.     static char *_table;
  2092.     static char *& table() {return _table;}
  2093.     /* cus_data */
  2094.     NAME##_cus_value_list<quote_type0> value_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false) const {
  2095.       return value_list(",", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2096.     }
  2097.     NAME##_cus_value_list<quote_type0> value_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL) const {
  2098.       return value_list(",", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2099.     }
  2100.     NAME##_cus_value_list<quote_type0> value_list(vector<bool> *i) const {
  2101.       return value_list(",", mysql_quote, i);
  2102.     }
  2103.     NAME##_cus_value_list<quote_type0> value_list(sql_cmp_type sc) const {
  2104.       return value_list(",", mysql_quote, sc);
  2105.     }
  2106.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false) const {
  2107.       return value_list(d, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2108.     }
  2109.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL) const {
  2110.       return value_list(d, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2111.     }
  2112.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, 
  2113. vector<bool> *i) const {
  2114.       return value_list(d, mysql_quote, i);
  2115.     }
  2116.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, 
  2117. sql_cmp_type sc) const {
  2118.       return value_list(d, mysql_quote, sc);
  2119.     }
  2120.     template <class Manip>
  2121.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m,
  2122.   bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false) const; 
  2123.     template <class Manip>
  2124.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m,
  2125.   ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL) const; 
  2126.     template <class Manip>
  2127.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m, 
  2128.   vector<bool> *i) const;
  2129.     template <class Manip>
  2130.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m, 
  2131.   sql_cmp_type sc) const;
  2132.     /* cus field */
  2133.     NAME##_cus_field_list<do_nothing_type0> field_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false) const {
  2134.       return field_list(",", mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2135.     }
  2136.     NAME##_cus_field_list<do_nothing_type0> field_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL) const {
  2137.       return field_list(",", mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2138.     }
  2139.     NAME##_cus_field_list<do_nothing_type0> field_list(vector<bool> *i) const {
  2140.       return field_list(",", mysql_do_nothing, i);
  2141.     }
  2142.     NAME##_cus_field_list<do_nothing_type0> field_list(sql_cmp_type sc) const
  2143.     {
  2144.       return field_list(",", mysql_do_nothing, sc);
  2145.     }
  2146.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  2147.        bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false) const {
  2148.       return field_list(d, mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2149.     }
  2150.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d,
  2151.        ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL) const {
  2152.       return field_list(d, mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2153.     }
  2154.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  2155. vector<bool> *i) const {
  2156.       return field_list(d, mysql_do_nothing, i);
  2157.     }
  2158.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  2159. sql_cmp_type sc) const {
  2160.       return field_list(d, mysql_do_nothing, sc);
  2161.     }
  2162.     template <class Manip>
  2163.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  2164.     bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false) const; 
  2165.     template <class Manip>
  2166.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  2167.     ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL) const; 
  2168.     template <class Manip>
  2169.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  2170.     vector<bool> *i) const;
  2171.     template <class Manip>
  2172.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m, 
  2173.     sql_cmp_type sc) const;
  2174.     /* cus equal */
  2175.     NAME##_cus_equal_list<quote_type0> equal_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false) const {
  2176.       return equal_list(",", " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2177.     }
  2178.     NAME##_cus_equal_list<quote_type0> equal_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL) const {
  2179.       return equal_list(",", " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2180.     }
  2181.     NAME##_cus_equal_list<quote_type0> equal_list(vector<bool> *i) const {
  2182.       return equal_list(",", " = ", mysql_quote, i);
  2183.     }
  2184.     NAME##_cus_equal_list<quote_type0> equal_list(sql_cmp_type sc) const {
  2185.       return equal_list(",", " = ", mysql_quote, sc);
  2186.     }
  2187.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false) const {
  2188.       return equal_list(d, " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2189.     }
  2190.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL) const {
  2191.       return equal_list(d, " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2192.     }
  2193.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, 
  2194. vector<bool> *i) const {
  2195.       return equal_list(d, " = ", mysql_quote, i);
  2196.     }
  2197.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, 
  2198. sql_cmp_type sc) const {
  2199.       return equal_list(d, " = ", mysql_quote, sc);
  2200.     }
  2201.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  2202.                                                 bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false) const {
  2203.       return equal_list(d, c, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2204.     }
  2205.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  2206.                                                 ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL) const {
  2207.       return equal_list(d, c, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19);
  2208.     }
  2209.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  2210. vector<bool> *i) const {
  2211.       return equal_list(d, c, mysql_quote, i);
  2212.     }
  2213.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  2214. sql_cmp_type sc) const {
  2215.       return equal_list(d, c, mysql_quote, sc);
  2216.     }
  2217.     template <class Manip>
  2218.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  2219.     bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false) const; 
  2220.     template <class Manip>
  2221.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  2222.     ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL) const; 
  2223.     template <class Manip>
  2224.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  2225.     vector<bool> *i) const;
  2226.     template <class Manip>
  2227.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  2228.     sql_cmp_type sc) const;
  2229.     NAME##_value_list<quote_type0> value_list() const {
  2230.       return value_list(",", mysql_quote);}
  2231.     NAME##_value_list<quote_type0> value_list(cchar *d) const {
  2232.       return value_list(d, mysql_quote);}
  2233.     template <class Manip> 
  2234.     NAME##_value_list<Manip> value_list(cchar *d, Manip m) const; 
  2235.     NAME##_field_list<do_nothing_type0> field_list() const {
  2236.       return field_list(",", mysql_do_nothing);}
  2237.     NAME##_field_list<do_nothing_type0> field_list(cchar *d) const {
  2238.       return field_list(d, mysql_do_nothing);}
  2239.     template <class Manip>
  2240.     NAME##_field_list<Manip> field_list(cchar *d, Manip m) const; 
  2241.     NAME##_equal_list<quote_type0> equal_list(cchar *d = ",", 
  2242.                                               cchar *c = " = ") const{
  2243.       return equal_list(d, c, mysql_quote);}
  2244.     template <class Manip>
  2245.     NAME##_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m) const; 
  2246.   }; 
  2247.   char *##NAME##::names[] = { 
  2248.     N1 ,
  2249.     N2 ,
  2250.     N3 ,
  2251.     N4 ,
  2252.     N5 ,
  2253.     N6 ,
  2254.     N7 ,
  2255.     N8 ,
  2256.     N9 ,
  2257.     N10 ,
  2258.     N11 ,
  2259.     N12 ,
  2260.     N13 ,
  2261.     N14 ,
  2262.     N15 ,
  2263.     N16 ,
  2264.     N17 ,
  2265.     N18 ,
  2266.     N19  
  2267.   }; 
  2268.   char *##NAME##::_table = #NAME ;  
  2269.   template <class Manip>
  2270.   NAME##_cus_value_list<Manip>::NAME##_cus_value_list
  2271.   (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19) 
  2272.   { 
  2273.     delem = d;
  2274.     manip = m;
  2275.     del_vector = true;
  2276.     obj = o; 
  2277.     include = new vector<bool>(19, false);
  2278.     if (i1) (*include)[0]=true;
  2279.     if (i2) (*include)[1]=true;
  2280.     if (i3) (*include)[2]=true;
  2281.     if (i4) (*include)[3]=true;
  2282.     if (i5) (*include)[4]=true;
  2283.     if (i6) (*include)[5]=true;
  2284.     if (i7) (*include)[6]=true;
  2285.     if (i8) (*include)[7]=true;
  2286.     if (i9) (*include)[8]=true;
  2287.     if (i10) (*include)[9]=true;
  2288.     if (i11) (*include)[10]=true;
  2289.     if (i12) (*include)[11]=true;
  2290.     if (i13) (*include)[12]=true;
  2291.     if (i14) (*include)[13]=true;
  2292.     if (i15) (*include)[14]=true;
  2293.     if (i16) (*include)[15]=true;
  2294.     if (i17) (*include)[16]=true;
  2295.     if (i18) (*include)[17]=true;
  2296.     if (i19) (*include)[18]=true;
  2297.   } 
  2298.   template <class Manip>
  2299.   NAME##_cus_value_list<Manip>::NAME##_cus_value_list
  2300.   (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19) { 
  2301.     delem = d;
  2302.     manip = m;
  2303.     del_vector = true; 
  2304.     obj = o; 
  2305.     include = new vector<bool>(19, false); 
  2306.     if (i1 == NAME##_NULL) return;
  2307.     (*include)[i1]=true;
  2308.     if (i2 == NAME##_NULL) return;
  2309.     (*include)[i2]=true;
  2310.     if (i3 == NAME##_NULL) return;
  2311.     (*include)[i3]=true;
  2312.     if (i4 == NAME##_NULL) return;
  2313.     (*include)[i4]=true;
  2314.     if (i5 == NAME##_NULL) return;
  2315.     (*include)[i5]=true;
  2316.     if (i6 == NAME##_NULL) return;
  2317.     (*include)[i6]=true;
  2318.     if (i7 == NAME##_NULL) return;
  2319.     (*include)[i7]=true;
  2320.     if (i8 == NAME##_NULL) return;
  2321.     (*include)[i8]=true;
  2322.     if (i9 == NAME##_NULL) return;
  2323.     (*include)[i9]=true;
  2324.     if (i10 == NAME##_NULL) return;
  2325.     (*include)[i10]=true;
  2326.     if (i11 == NAME##_NULL) return;
  2327.     (*include)[i11]=true;
  2328.     if (i12 == NAME##_NULL) return;
  2329.     (*include)[i12]=true;
  2330.     if (i13 == NAME##_NULL) return;
  2331.     (*include)[i13]=true;
  2332.     if (i14 == NAME##_NULL) return;
  2333.     (*include)[i14]=true;
  2334.     if (i15 == NAME##_NULL) return;
  2335.     (*include)[i15]=true;
  2336.     if (i16 == NAME##_NULL) return;
  2337.     (*include)[i16]=true;
  2338.     if (i17 == NAME##_NULL) return;
  2339.     (*include)[i17]=true;
  2340.     if (i18 == NAME##_NULL) return;
  2341.     (*include)[i18]=true;
  2342.     if (i19 == NAME##_NULL) return;
  2343.     (*include)[i19]=true;
  2344.   }
  2345.   template <class Manip>
  2346.   NAME##_cus_field_list<Manip>::NAME##_cus_field_list
  2347.   (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19) {
  2348.     delem = d;
  2349.     manip = m;
  2350.     del_vector = true; 
  2351.     obj = o; 
  2352.     include = new vector<bool>(19, false); 
  2353.     if (i1) (*include)[0]=true;
  2354.     if (i2) (*include)[1]=true;
  2355.     if (i3) (*include)[2]=true;
  2356.     if (i4) (*include)[3]=true;
  2357.     if (i5) (*include)[4]=true;
  2358.     if (i6) (*include)[5]=true;
  2359.     if (i7) (*include)[6]=true;
  2360.     if (i8) (*include)[7]=true;
  2361.     if (i9) (*include)[8]=true;
  2362.     if (i10) (*include)[9]=true;
  2363.     if (i11) (*include)[10]=true;
  2364.     if (i12) (*include)[11]=true;
  2365.     if (i13) (*include)[12]=true;
  2366.     if (i14) (*include)[13]=true;
  2367.     if (i15) (*include)[14]=true;
  2368.     if (i16) (*include)[15]=true;
  2369.     if (i17) (*include)[16]=true;
  2370.     if (i18) (*include)[17]=true;
  2371.     if (i19) (*include)[18]=true;
  2372.   } 
  2373.   template <class Manip>
  2374.   NAME##_cus_field_list<Manip>::NAME##_cus_field_list
  2375.   (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19) { 
  2376.     delem = d;
  2377.     manip = m;
  2378.     del_vector = true; 
  2379.     obj = o; 
  2380.     include = new vector<bool>(19, false); 
  2381.     if (i1 == NAME##_NULL) return;
  2382.     (*include)[i1]=true;
  2383.     if (i2 == NAME##_NULL) return;
  2384.     (*include)[i2]=true;
  2385.     if (i3 == NAME##_NULL) return;
  2386.     (*include)[i3]=true;
  2387.     if (i4 == NAME##_NULL) return;
  2388.     (*include)[i4]=true;
  2389.     if (i5 == NAME##_NULL) return;
  2390.     (*include)[i5]=true;
  2391.     if (i6 == NAME##_NULL) return;
  2392.     (*include)[i6]=true;
  2393.     if (i7 == NAME##_NULL) return;
  2394.     (*include)[i7]=true;
  2395.     if (i8 == NAME##_NULL) return;
  2396.     (*include)[i8]=true;
  2397.     if (i9 == NAME##_NULL) return;
  2398.     (*include)[i9]=true;
  2399.     if (i10 == NAME##_NULL) return;
  2400.     (*include)[i10]=true;
  2401.     if (i11 == NAME##_NULL) return;
  2402.     (*include)[i11]=true;
  2403.     if (i12 == NAME##_NULL) return;
  2404.     (*include)[i12]=true;
  2405.     if (i13 == NAME##_NULL) return;
  2406.     (*include)[i13]=true;
  2407.     if (i14 == NAME##_NULL) return;
  2408.     (*include)[i14]=true;
  2409.     if (i15 == NAME##_NULL) return;
  2410.     (*include)[i15]=true;
  2411.     if (i16 == NAME##_NULL) return;
  2412.     (*include)[i16]=true;
  2413.     if (i17 == NAME##_NULL) return;
  2414.     (*include)[i17]=true;
  2415.     if (i18 == NAME##_NULL) return;
  2416.     (*include)[i18]=true;
  2417.     if (i19 == NAME##_NULL) return;
  2418.     (*include)[i19]=true;
  2419.   }
  2420.   template <class Manip>
  2421.   NAME##_cus_equal_list<Manip>::NAME##_cus_equal_list
  2422.   (const NAME *o, cchar *d, cchar *c, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19) { 
  2423.     delem = d;
  2424.     comp = c;
  2425.     manip = m;
  2426.     del_vector = true; 
  2427.     obj = o; 
  2428.     include = new vector<bool>(19, false); 
  2429.     if (i1) (*include)[0]=true;
  2430.     if (i2) (*include)[1]=true;
  2431.     if (i3) (*include)[2]=true;
  2432.     if (i4) (*include)[3]=true;
  2433.     if (i5) (*include)[4]=true;
  2434.     if (i6) (*include)[5]=true;
  2435.     if (i7) (*include)[6]=true;
  2436.     if (i8) (*include)[7]=true;
  2437.     if (i9) (*include)[8]=true;
  2438.     if (i10) (*include)[9]=true;
  2439.     if (i11) (*include)[10]=true;
  2440.     if (i12) (*include)[11]=true;
  2441.     if (i13) (*include)[12]=true;
  2442.     if (i14) (*include)[13]=true;
  2443.     if (i15) (*include)[14]=true;
  2444.     if (i16) (*include)[15]=true;
  2445.     if (i17) (*include)[16]=true;
  2446.     if (i18) (*include)[17]=true;
  2447.     if (i19) (*include)[18]=true;
  2448.   } 
  2449.   template <class Manip>
  2450.   NAME##_cus_equal_list<Manip>::NAME##_cus_equal_list
  2451.   (const NAME *o, cchar *d, cchar *c, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19) { 
  2452.     delem = d;
  2453.     comp = c;
  2454.     manip = m;
  2455.     del_vector = true; 
  2456.     obj = o; 
  2457.     include = new vector<bool>(19, false); 
  2458.     if (i1 == NAME##_NULL) return;
  2459.     (*include)[i1]=true;
  2460.     if (i2 == NAME##_NULL) return;
  2461.     (*include)[i2]=true;
  2462.     if (i3 == NAME##_NULL) return;
  2463.     (*include)[i3]=true;
  2464.     if (i4 == NAME##_NULL) return;
  2465.     (*include)[i4]=true;
  2466.     if (i5 == NAME##_NULL) return;
  2467.     (*include)[i5]=true;
  2468.     if (i6 == NAME##_NULL) return;
  2469.     (*include)[i6]=true;
  2470.     if (i7 == NAME##_NULL) return;
  2471.     (*include)[i7]=true;
  2472.     if (i8 == NAME##_NULL) return;
  2473.     (*include)[i8]=true;
  2474.     if (i9 == NAME##_NULL) return;
  2475.     (*include)[i9]=true;
  2476.     if (i10 == NAME##_NULL) return;
  2477.     (*include)[i10]=true;
  2478.     if (i11 == NAME##_NULL) return;
  2479.     (*include)[i11]=true;
  2480.     if (i12 == NAME##_NULL) return;
  2481.     (*include)[i12]=true;
  2482.     if (i13 == NAME##_NULL) return;
  2483.     (*include)[i13]=true;
  2484.     if (i14 == NAME##_NULL) return;
  2485.     (*include)[i14]=true;
  2486.     if (i15 == NAME##_NULL) return;
  2487.     (*include)[i15]=true;
  2488.     if (i16 == NAME##_NULL) return;
  2489.     (*include)[i16]=true;
  2490.     if (i17 == NAME##_NULL) return;
  2491.     (*include)[i17]=true;
  2492.     if (i18 == NAME##_NULL) return;
  2493.     (*include)[i18]=true;
  2494.     if (i19 == NAME##_NULL) return;
  2495.     (*include)[i19]=true;
  2496.   }
  2497.   template <class Manip>
  2498.   ostream& operator << (ostream& s, const NAME##_value_list<Manip>& obj) { 
  2499.     s << obj.manip << obj.obj->##I1 << obj.delem;
  2500.     s << obj.manip << obj.obj->##I2 << obj.delem;
  2501.     s << obj.manip << obj.obj->##I3 << obj.delem;
  2502.     s << obj.manip << obj.obj->##I4 << obj.delem;
  2503.     s << obj.manip << obj.obj->##I5 << obj.delem;
  2504.     s << obj.manip << obj.obj->##I6 << obj.delem;
  2505.     s << obj.manip << obj.obj->##I7 << obj.delem;
  2506.     s << obj.manip << obj.obj->##I8 << obj.delem;
  2507.     s << obj.manip << obj.obj->##I9 << obj.delem;
  2508.     s << obj.manip << obj.obj->##I10 << obj.delem;
  2509.     s << obj.manip << obj.obj->##I11 << obj.delem;
  2510.     s << obj.manip << obj.obj->##I12 << obj.delem;
  2511.     s << obj.manip << obj.obj->##I13 << obj.delem;
  2512.     s << obj.manip << obj.obj->##I14 << obj.delem;
  2513.     s << obj.manip << obj.obj->##I15 << obj.delem;
  2514.     s << obj.manip << obj.obj->##I16 << obj.delem;
  2515.     s << obj.manip << obj.obj->##I17 << obj.delem;
  2516.     s << obj.manip << obj.obj->##I18 << obj.delem;
  2517.     s << obj.manip << obj.obj->##I19; 
  2518.     return s; 
  2519.   } 
  2520.   template <class Manip>
  2521.   ostream& operator << (ostream& s, const NAME##_field_list<Manip>& obj) { 
  2522.     s << obj.manip << obj.obj->names[0] << obj.delem;
  2523.     s << obj.manip << obj.obj->names[1] << obj.delem;
  2524.     s << obj.manip << obj.obj->names[2] << obj.delem;
  2525.     s << obj.manip << obj.obj->names[3] << obj.delem;
  2526.     s << obj.manip << obj.obj->names[4] << obj.delem;
  2527.     s << obj.manip << obj.obj->names[5] << obj.delem;
  2528.     s << obj.manip << obj.obj->names[6] << obj.delem;
  2529.     s << obj.manip << obj.obj->names[7] << obj.delem;
  2530.     s << obj.manip << obj.obj->names[8] << obj.delem;
  2531.     s << obj.manip << obj.obj->names[9] << obj.delem;
  2532.     s << obj.manip << obj.obj->names[10] << obj.delem;
  2533.     s << obj.manip << obj.obj->names[11] << obj.delem;
  2534.     s << obj.manip << obj.obj->names[12] << obj.delem;
  2535.     s << obj.manip << obj.obj->names[13] << obj.delem;
  2536.     s << obj.manip << obj.obj->names[14] << obj.delem;
  2537.     s << obj.manip << obj.obj->names[15] << obj.delem;
  2538.     s << obj.manip << obj.obj->names[16] << obj.delem;
  2539.     s << obj.manip << obj.obj->names[17] << obj.delem;
  2540.     s << obj.manip << obj.obj->names[18]; 
  2541.     return s; 
  2542.   } 
  2543.   template <class Manip>
  2544.   ostream& operator << (ostream& s, const NAME##_equal_list<Manip>& obj) { 
  2545.     s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1 << obj.delem;
  2546.     s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2 << obj.delem;
  2547.     s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3 << obj.delem;
  2548.     s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4 << obj.delem;
  2549.     s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5 << obj.delem;
  2550.     s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6 << obj.delem;
  2551.     s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7 << obj.delem;
  2552.     s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8 << obj.delem;
  2553.     s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9 << obj.delem;
  2554.     s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10 << obj.delem;
  2555.     s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11 << obj.delem;
  2556.     s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12 << obj.delem;
  2557.     s << obj.obj->names[12] << obj.comp << obj.manip << obj.obj->##I13 << obj.delem;
  2558.     s << obj.obj->names[13] << obj.comp << obj.manip << obj.obj->##I14 << obj.delem;
  2559.     s << obj.obj->names[14] << obj.comp << obj.manip << obj.obj->##I15 << obj.delem;
  2560.     s << obj.obj->names[15] << obj.comp << obj.manip << obj.obj->##I16 << obj.delem;
  2561.     s << obj.obj->names[16] << obj.comp << obj.manip << obj.obj->##I17 << obj.delem;
  2562.     s << obj.obj->names[17] << obj.comp << obj.manip << obj.obj->##I18 << obj.delem;
  2563.     s << obj.obj->names[18] << obj.comp << obj.manip << obj.obj->##I19; 
  2564.     return s; 
  2565.   } 
  2566.   template <class Manip>
  2567.   ostream& operator << (ostream& s, const NAME##_cus_value_list<Manip>& obj) { 
  2568.     bool before = false; 
  2569.     if ((*obj.include)[0]) { 
  2570.       s << obj.manip << obj.obj->##I1;
  2571.       before = true; 
  2572.      } 
  2573.     if ((*obj.include)[1]) { 
  2574.       if (before) s << obj.delem;
  2575.       s << obj.manip << obj.obj->##I2;
  2576.       before = true; 
  2577.      } 
  2578.     if ((*obj.include)[2]) { 
  2579.       if (before) s << obj.delem;
  2580.       s << obj.manip << obj.obj->##I3;
  2581.       before = true; 
  2582.      } 
  2583.     if ((*obj.include)[3]) { 
  2584.       if (before) s << obj.delem;
  2585.       s << obj.manip << obj.obj->##I4;
  2586.       before = true; 
  2587.      } 
  2588.     if ((*obj.include)[4]) { 
  2589.       if (before) s << obj.delem;
  2590.       s << obj.manip << obj.obj->##I5;
  2591.       before = true; 
  2592.      } 
  2593.     if ((*obj.include)[5]) { 
  2594.       if (before) s << obj.delem;
  2595.       s << obj.manip << obj.obj->##I6;
  2596.       before = true; 
  2597.      } 
  2598.     if ((*obj.include)[6]) { 
  2599.       if (before) s << obj.delem;
  2600.       s << obj.manip << obj.obj->##I7;
  2601.       before = true; 
  2602.      } 
  2603.     if ((*obj.include)[7]) { 
  2604.       if (before) s << obj.delem;
  2605.       s << obj.manip << obj.obj->##I8;
  2606.       before = true; 
  2607.      } 
  2608.     if ((*obj.include)[8]) { 
  2609.       if (before) s << obj.delem;
  2610.       s << obj.manip << obj.obj->##I9;
  2611.       before = true; 
  2612.      } 
  2613.     if ((*obj.include)[9]) { 
  2614.       if (before) s << obj.delem;
  2615.       s << obj.manip << obj.obj->##I10;
  2616.       before = true; 
  2617.      } 
  2618.     if ((*obj.include)[10]) { 
  2619.       if (before) s << obj.delem;
  2620.       s << obj.manip << obj.obj->##I11;
  2621.       before = true; 
  2622.      } 
  2623.     if ((*obj.include)[11]) { 
  2624.       if (before) s << obj.delem;
  2625.       s << obj.manip << obj.obj->##I12;
  2626.       before = true; 
  2627.      } 
  2628.     if ((*obj.include)[12]) { 
  2629.       if (before) s << obj.delem;
  2630.       s << obj.manip << obj.obj->##I13;
  2631.       before = true; 
  2632.      } 
  2633.     if ((*obj.include)[13]) { 
  2634.       if (before) s << obj.delem;
  2635.       s << obj.manip << obj.obj->##I14;
  2636.       before = true; 
  2637.      } 
  2638.     if ((*obj.include)[14]) { 
  2639.       if (before) s << obj.delem;
  2640.       s << obj.manip << obj.obj->##I15;
  2641.       before = true; 
  2642.      } 
  2643.     if ((*obj.include)[15]) { 
  2644.       if (before) s << obj.delem;
  2645.       s << obj.manip << obj.obj->##I16;
  2646.       before = true; 
  2647.      } 
  2648.     if ((*obj.include)[16]) { 
  2649.       if (before) s << obj.delem;
  2650.       s << obj.manip << obj.obj->##I17;
  2651.       before = true; 
  2652.      } 
  2653.     if ((*obj.include)[17]) { 
  2654.       if (before) s << obj.delem;
  2655.       s << obj.manip << obj.obj->##I18;
  2656.       before = true; 
  2657.      } 
  2658.     if ((*obj.include)[18]) { 
  2659.       if (before) s << obj.delem;
  2660.       s << obj.manip << obj.obj->##I19;
  2661.      } 
  2662.     return s; 
  2663.   } 
  2664.   template <class Manip>
  2665.   ostream& operator << (ostream& s, const NAME##_cus_field_list<Manip>& obj) { 
  2666.     bool before = false; 
  2667.     if ((*obj.include)[0]) { 
  2668.       s << obj.manip << obj.obj->names[0];
  2669.       before = true; 
  2670.      } 
  2671.     if ((*obj.include)[1]) { 
  2672.       if (before) s << obj.delem;
  2673.       s << obj.manip << obj.obj->names[1];
  2674.       before = true; 
  2675.      } 
  2676.     if ((*obj.include)[2]) { 
  2677.       if (before) s << obj.delem;
  2678.       s << obj.manip << obj.obj->names[2];
  2679.       before = true; 
  2680.      } 
  2681.     if ((*obj.include)[3]) { 
  2682.       if (before) s << obj.delem;
  2683.       s << obj.manip << obj.obj->names[3];
  2684.       before = true; 
  2685.      } 
  2686.     if ((*obj.include)[4]) { 
  2687.       if (before) s << obj.delem;
  2688.       s << obj.manip << obj.obj->names[4];
  2689.       before = true; 
  2690.      } 
  2691.     if ((*obj.include)[5]) { 
  2692.       if (before) s << obj.delem;
  2693.       s << obj.manip << obj.obj->names[5];
  2694.       before = true; 
  2695.      } 
  2696.     if ((*obj.include)[6]) { 
  2697.       if (before) s << obj.delem;
  2698.       s << obj.manip << obj.obj->names[6];
  2699.       before = true; 
  2700.      } 
  2701.     if ((*obj.include)[7]) { 
  2702.       if (before) s << obj.delem;
  2703.       s << obj.manip << obj.obj->names[7];
  2704.       before = true; 
  2705.      } 
  2706.     if ((*obj.include)[8]) { 
  2707.       if (before) s << obj.delem;
  2708.       s << obj.manip << obj.obj->names[8];
  2709.       before = true; 
  2710.      } 
  2711.     if ((*obj.include)[9]) { 
  2712.       if (before) s << obj.delem;
  2713.       s << obj.manip << obj.obj->names[9];
  2714.       before = true; 
  2715.      } 
  2716.     if ((*obj.include)[10]) { 
  2717.       if (before) s << obj.delem;
  2718.       s << obj.manip << obj.obj->names[10];
  2719.       before = true; 
  2720.      } 
  2721.     if ((*obj.include)[11]) { 
  2722.       if (before) s << obj.delem;
  2723.       s << obj.manip << obj.obj->names[11];
  2724.       before = true; 
  2725.      } 
  2726.     if ((*obj.include)[12]) { 
  2727.       if (before) s << obj.delem;
  2728.       s << obj.manip << obj.obj->names[12];
  2729.       before = true; 
  2730.      } 
  2731.     if ((*obj.include)[13]) { 
  2732.       if (before) s << obj.delem;
  2733.       s << obj.manip << obj.obj->names[13];
  2734.       before = true; 
  2735.      } 
  2736.     if ((*obj.include)[14]) { 
  2737.       if (before) s << obj.delem;
  2738.       s << obj.manip << obj.obj->names[14];
  2739.       before = true; 
  2740.      } 
  2741.     if ((*obj.include)[15]) { 
  2742.       if (before) s << obj.delem;
  2743.       s << obj.manip << obj.obj->names[15];
  2744.       before = true; 
  2745.      } 
  2746.     if ((*obj.include)[16]) { 
  2747.       if (before) s << obj.delem;
  2748.       s << obj.manip << obj.obj->names[16];
  2749.       before = true; 
  2750.      } 
  2751.     if ((*obj.include)[17]) { 
  2752.       if (before) s << obj.delem;
  2753.       s << obj.manip << obj.obj->names[17];
  2754.       before = true; 
  2755.      } 
  2756.     if ((*obj.include)[18]) { 
  2757.       if (before) s << obj.delem;
  2758.       s << obj.manip << obj.obj->names[18];
  2759.      } 
  2760.     return s; 
  2761.   } 
  2762.   template <class Manip>
  2763.   ostream& operator << (ostream& s, const NAME##_cus_equal_list<Manip>& obj) { 
  2764.     bool before = false; 
  2765.     if ((*obj.include)[0]) { 
  2766.       s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1;
  2767.       before = true; 
  2768.      } 
  2769.     if ((*obj.include)[1]) { 
  2770.       if (before) s << obj.delem;
  2771.       s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2;
  2772.       before = true; 
  2773.      } 
  2774.     if ((*obj.include)[2]) { 
  2775.       if (before) s << obj.delem;
  2776.       s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3;
  2777.       before = true; 
  2778.      } 
  2779.     if ((*obj.include)[3]) { 
  2780.       if (before) s << obj.delem;
  2781.       s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4;
  2782.       before = true; 
  2783.      } 
  2784.     if ((*obj.include)[4]) { 
  2785.       if (before) s << obj.delem;
  2786.       s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5;
  2787.       before = true; 
  2788.      } 
  2789.     if ((*obj.include)[5]) { 
  2790.       if (before) s << obj.delem;
  2791.       s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6;
  2792.       before = true; 
  2793.      } 
  2794.     if ((*obj.include)[6]) { 
  2795.       if (before) s << obj.delem;
  2796.       s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7;
  2797.       before = true; 
  2798.      } 
  2799.     if ((*obj.include)[7]) { 
  2800.       if (before) s << obj.delem;
  2801.       s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8;
  2802.       before = true; 
  2803.      } 
  2804.     if ((*obj.include)[8]) { 
  2805.       if (before) s << obj.delem;
  2806.       s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9;
  2807.       before = true; 
  2808.      } 
  2809.     if ((*obj.include)[9]) { 
  2810.       if (before) s << obj.delem;
  2811.       s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10;
  2812.       before = true; 
  2813.      } 
  2814.     if ((*obj.include)[10]) { 
  2815.       if (before) s << obj.delem;
  2816.       s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11;
  2817.       before = true; 
  2818.      } 
  2819.     if ((*obj.include)[11]) { 
  2820.       if (before) s << obj.delem;
  2821.       s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12;
  2822.       before = true; 
  2823.      }