diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2012-08-15 11:40:39 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2012-08-15 11:40:39 +0200 |
commit | 396cad633b6f0559a39e5111827f9b1125c67506 (patch) | |
tree | 58a59204e5fe31bf1c66a8db71efa3dc81311290 /odb/relational/mssql/common.hxx | |
parent | 1634bc70227242f12d917e731508a536c890227e (diff) |
Factor out check for SQL Server long data
Diffstat (limited to 'odb/relational/mssql/common.hxx')
-rw-r--r-- | odb/relational/mssql/common.hxx | 47 |
1 files changed, 2 insertions, 45 deletions
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; } |