From 396cad633b6f0559a39e5111827f9b1125c67506 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Wed, 15 Aug 2012 11:40:39 +0200 Subject: Factor out check for SQL Server long data --- odb/relational/mssql/common.hxx | 47 ++--------------------------------------- 1 file changed, 2 insertions(+), 45 deletions(-) (limited to 'odb/relational/mssql/common.hxx') diff --git a/odb/relational/mssql/common.hxx b/odb/relational/mssql/common.hxx index a04c9a3..5191f3d 100644 --- a/odb/relational/mssql/common.hxx +++ b/odb/relational/mssql/common.hxx @@ -275,51 +275,8 @@ namespace relational virtual bool traverse_column (semantics::data_member& m, string const&, bool) { - sql_type const& st (parse_sql_type (column_type (), m)); - - switch (st.type) - { - case sql_type::CHAR: - case sql_type::VARCHAR: - { - // Zero precision means max in VARCHAR(max). - // - if (st.prec == 0 || st.prec > options.mssql_short_limit ()) - r_ = true; - - break; - } - case sql_type::NCHAR: - case sql_type::NVARCHAR: - { - // Zero precision means max in NVARCHAR(max). Note that - // the precision is in 2-byte UCS-2 characters, not bytes. - // - if (st.prec == 0 || st.prec * 2 > options.mssql_short_limit ()) - r_ = true; - - break; - } - case sql_type::BINARY: - case sql_type::VARBINARY: - { - // Zero precision means max in VARCHAR(max). - // - if (st.prec == 0 || st.prec > options.mssql_short_limit ()) - r_ = true; - - break; - } - case sql_type::TEXT: - case sql_type::NTEXT: - case sql_type::IMAGE: - { - r_ = true; - break; - } - default: - break; - } + if (long_data (parse_sql_type (column_type (), m))) + r_ = true; return true; } -- cgit v1.1