diff options
author | Boris Kolpackov <boris@codesynthesis.com> | 2013-01-15 12:27:27 +0200 |
---|---|---|
committer | Boris Kolpackov <boris@codesynthesis.com> | 2013-01-15 12:27:27 +0200 |
commit | 79121ca0e7ffdad212513a05fba76c1a19a73df5 (patch) | |
tree | b2c25369dd44d8a931a7c16d8d7093c0a646fc85 /odb/mssql/database.hxx | |
parent | 5e113195591a9f8dccbb8f5f743cdd7776906b08 (diff) |
Add support for setting SQL Server transaction isolation level
Diffstat (limited to 'odb/mssql/database.hxx')
-rw-r--r-- | odb/mssql/database.hxx | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/odb/mssql/database.hxx b/odb/mssql/database.hxx index e73a332..a133634 100644 --- a/odb/mssql/database.hxx +++ b/odb/mssql/database.hxx @@ -40,10 +40,20 @@ namespace odb protocol_np // Named pipes. }; + enum transaction_isolation + { + isolation_read_uncommitted, + isolation_read_committed, // SQL Server default. + isolation_repeatable_read, + isolation_snapshot, + isolation_serializable + }; + class LIBODB_MSSQL_EXPORT database: public odb::database { public: typedef mssql::protocol protocol_type; + typedef mssql::transaction_isolation transaction_isolation_type; // Connect to the specified server using the latest available SQL // Server Native Client ODBC driver by default. If user is empty, @@ -56,6 +66,7 @@ namespace odb const std::string& server, const std::string& driver = "", const std::string& extra_connect_string = "", + transaction_isolation_type = isolation_read_committed, SQLHENV environment = 0, details::transfer_ptr<connection_factory> = details::transfer_ptr<connection_factory> ()); @@ -74,6 +85,7 @@ namespace odb const std::string& instance = "", const std::string& driver = "", const std::string& extra_connect_string = "", + transaction_isolation_type = isolation_read_committed, SQLHENV environment = 0, details::transfer_ptr<connection_factory> = details::transfer_ptr<connection_factory> ()); @@ -88,6 +100,7 @@ namespace odb unsigned int port, const std::string& driver = "", const std::string& extra_connect_string = "", + transaction_isolation_type = isolation_read_committed, SQLHENV environment = 0, details::transfer_ptr<connection_factory> = details::transfer_ptr<connection_factory> ()); @@ -96,6 +109,7 @@ namespace odb // conection string. // database (const std::string& connect_string, + transaction_isolation_type = isolation_read_committed, SQLHENV environment = 0, details::transfer_ptr<connection_factory> = details::transfer_ptr<connection_factory> ()); @@ -119,6 +133,7 @@ namespace odb char* argv[], bool erase = false, const std::string& extra_connect_string = "", + transaction_isolation_type = isolation_read_committed, SQLHENV environment = 0, details::transfer_ptr<connection_factory> = details::transfer_ptr<connection_factory> ()); @@ -408,6 +423,12 @@ namespace odb return extra_connect_string_; } + transaction_isolation_type + transaction_isolation () const + { + return transaction_isolation_; + } + const std::string& connect_string () const { @@ -462,6 +483,7 @@ namespace odb std::string server_; std::string driver_; std::string extra_connect_string_; + transaction_isolation_type transaction_isolation_; std::string connect_string_; auto_handle<SQL_HANDLE_ENV> auto_environment_; |