diff --git a/appveyor.yml b/appveyor.yml index bc3ffa6c9..7b4d943de 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -4,7 +4,11 @@ clone_depth: 5 build: off matrix: fast_finish: true - + allow_failures: + - ruby_version: "25" + - ruby_version: "26" + - ruby_version: "27" + - ruby_version: "27-x64" services: - mssql2014 diff --git a/lib/active_record/connection_adapters/sqlserver/database_statements.rb b/lib/active_record/connection_adapters/sqlserver/database_statements.rb index 68813c489..20e0df011 100644 --- a/lib/active_record/connection_adapters/sqlserver/database_statements.rb +++ b/lib/active_record/connection_adapters/sqlserver/database_statements.rb @@ -350,7 +350,12 @@ def sp_executesql_sql(sql, types, params, name) def raw_connection_do(sql) case @connection_options[:mode] when :dblib - @connection.execute(sql).do + result = @connection.execute(sql) + # If connection fails then TinyTDS returns false instead of an exception (see https://github.com/rails-sqlserver/tiny_tds/issues/464) + if result == false + raise TinyTds::Error, 'TinyTDS execute returned false instead of results' + end + result.do end ensure @update_sql = false