diff options
Diffstat (limited to 'odb/relational/mssql')
-rw-r--r-- | odb/relational/mssql/header.cxx | 6 | ||||
-rw-r--r-- | odb/relational/mssql/source.cxx | 12 |
2 files changed, 14 insertions, 4 deletions
diff --git a/odb/relational/mssql/header.cxx b/odb/relational/mssql/header.cxx index 3bc2cbd..ff16950 100644 --- a/odb/relational/mssql/header.cxx +++ b/odb/relational/mssql/header.cxx @@ -53,6 +53,12 @@ namespace relational os << "static const bool rowversion = " << rv << ";" << endl; + + // Disable bulk update if we have ROWVERSION since we don't + // yet support batch extraction of the version. + // + if (rv && c.count ("bulk-update")) + c.remove ("bulk-update"); } virtual void diff --git a/odb/relational/mssql/source.cxx b/odb/relational/mssql/source.cxx index ffcfa3c..2ce8810 100644 --- a/odb/relational/mssql/source.cxx +++ b/odb/relational/mssql/source.cxx @@ -1118,21 +1118,25 @@ namespace relational } virtual string - optimistic_version_init (semantics::data_member& m) + optimistic_version_init (semantics::data_member& m, bool index) { sql_type t (parse_sql_type (column_type (m), m)); return t.type != sql_type::ROWVERSION ? "1" - : "version (sts.id_image ())"; + : (index + ? "version (sts.id_image (i))" + : "version (sts.id_image ())"); } virtual string - optimistic_version_increment (semantics::data_member& m) + optimistic_version_increment (semantics::data_member& m, bool index) { sql_type t (parse_sql_type (column_type (m), m)); return t.type != sql_type::ROWVERSION ? "1" - : "version (sts.id_image ())"; + : (index + ? "version (sts.id_image (i))" + : "version (sts.id_image ())"); } virtual bool |