summaryrefslogtreecommitdiff
path: root/odb/relational/mssql/common.hxx
diff options
context:
space:
mode:
Diffstat (limited to 'odb/relational/mssql/common.hxx')
-rw-r--r--odb/relational/mssql/common.hxx47
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;
}