custom-macros.hh
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1348k
源码类别:

模拟服务器

开发平台:

C/C++

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