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

MySQL数据库

开发平台:

Visual C++

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