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

MySQL数据库

开发平台:

Visual C++

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