diff options
Diffstat (limited to 'odb/relational/mssql')
-rw-r--r-- | odb/relational/mssql/common.cxx | 9 | ||||
-rw-r--r-- | odb/relational/mssql/common.hxx | 6 | ||||
-rw-r--r-- | odb/relational/mssql/header.cxx | 41 | ||||
-rw-r--r-- | odb/relational/mssql/source.cxx | 4 |
4 files changed, 21 insertions, 39 deletions
diff --git a/odb/relational/mssql/common.cxx b/odb/relational/mssql/common.cxx index a97b78d..be35ca9 100644 --- a/odb/relational/mssql/common.cxx +++ b/odb/relational/mssql/common.cxx @@ -184,6 +184,13 @@ namespace relational }; member_image_type:: + member_image_type (base const& x) + : member_base::base (x), // virtual base + base (x) + { + } + + member_image_type:: member_image_type (semantics::type* type, string const& fq_type, string const& key_prefix) @@ -314,6 +321,8 @@ namespace relational type_ = "unsigned char*"; } + entry<member_image_type> member_image_type_; + // // member_database_type // diff --git a/odb/relational/mssql/common.hxx b/odb/relational/mssql/common.hxx index e597d4d..ec99776 100644 --- a/odb/relational/mssql/common.hxx +++ b/odb/relational/mssql/common.hxx @@ -119,12 +119,14 @@ namespace relational } }; - struct member_image_type: member_base + struct member_image_type: relational::member_image_type, + member_base { + member_image_type (base const&); member_image_type (semantics::type* type = 0, string const& fq_type = string (), string const& key_prefix = string ()); - string + virtual string image_type (semantics::data_member&); virtual void diff --git a/odb/relational/mssql/header.cxx b/odb/relational/mssql/header.cxx index ff16950..aa0e751 100644 --- a/odb/relational/mssql/header.cxx +++ b/odb/relational/mssql/header.cxx @@ -149,39 +149,14 @@ namespace relational }; entry<image_type> image_type_; - struct image_member: relational::image_member, member_base + struct image_member: relational::image_member_impl<sql_type>, + member_base { image_member (base const& x) - : member_base::base (x), // virtual base - base (x), - member_base (x), - member_image_type_ (base::type_override_, - base::fq_type_override_, - base::key_prefix_) - { - } - - virtual bool - pre (member_info& mi) - { - if (container (mi)) - return false; - - image_type = member_image_type_.image_type (mi.m); - - if (var_override_.empty ()) - os << "// " << mi.m.name () << endl - << "//" << endl; - - return true; - } - - virtual void - traverse_composite (member_info& mi) - { - os << image_type << " " << mi.var << "value;" - << endl; - } + : member_base::base (x), // virtual base + member_base::base_impl (x), // virtual base + base_impl (x), + member_base (x) {} virtual void traverse_integer (member_info& mi) @@ -331,10 +306,6 @@ namespace relational << "SQLLEN " << mi.var << "size_ind;" << endl; } - - private: - string image_type; - member_image_type member_image_type_; }; entry<image_member> image_member_; } diff --git a/odb/relational/mssql/source.cxx b/odb/relational/mssql/source.cxx index 2ce8810..ca36dfb 100644 --- a/odb/relational/mssql/source.cxx +++ b/odb/relational/mssql/source.cxx @@ -607,9 +607,9 @@ namespace relational } virtual void - get_null (member_info& mi) + get_null (string const& var) const { - os << "i." << mi.var << "size_ind == SQL_NULL_DATA"; + os << "i." << var << "size_ind == SQL_NULL_DATA"; } virtual void |