diff --git a/lib/active_record/connection_adapters/sqlserver/database_statements.rb b/lib/active_record/connection_adapters/sqlserver/database_statements.rb index aecf55ba2..5a18df620 100644 --- a/lib/active_record/connection_adapters/sqlserver/database_statements.rb +++ b/lib/active_record/connection_adapters/sqlserver/database_statements.rb @@ -464,7 +464,7 @@ def finish_statement_handle(handle) end def ensure_established_connection! - raise TinyTds::Error, 'SQL Server client is not connected' if @connection.nil? || !@connection.active? + raise TinyTds::Error, 'SQL Server client is not connected' unless @connection yield end diff --git a/lib/active_record/connection_adapters/sqlserver_adapter.rb b/lib/active_record/connection_adapters/sqlserver_adapter.rb index 9a94f40c9..acf41e9af 100644 --- a/lib/active_record/connection_adapters/sqlserver_adapter.rb +++ b/lib/active_record/connection_adapters/sqlserver_adapter.rb @@ -375,7 +375,7 @@ def initialize_type_map(m = type_map) def translate_exception(e, message:, sql:, binds:) case message - when /SQL Server client is not connected/ + when /(SQL Server client is not connected) | (failed to execute statement)/i ConnectionNotEstablished.new(message) when /(cannot insert duplicate key .* with unique index) | (violation of unique key constraint)/i RecordNotUnique.new(message, sql: sql, binds: binds)