Skip to content

Commit 00d32b8

Browse files
committed
Verify connection before retrieving the database version
1 parent e44bf0d commit 00d32b8

File tree

3 files changed

+20
-6
lines changed

3 files changed

+20
-6
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## Unreleased
2+
3+
#### Fixed
4+
5+
- [#1364](https://github.com/rails-sqlserver/activerecord-sqlserver-adapter/pull/1364) Verify connection before retrieving the database version.
6+
17
## v7.2.7
28

39
#### Changed

lib/active_record/connection_adapters/sqlserver_adapter.rb

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -490,19 +490,19 @@ def initialize_dateformatter
490490
end
491491

492492
def version_year
493-
@version_year ||= begin
494-
if sqlserver_version =~ /vNext/
493+
@version_year ||=
494+
if /vNext/.match?(sqlserver_version)
495495
2016
496496
else
497497
/SQL Server (\d+)/.match(sqlserver_version).to_a.last.to_s.to_i
498498
end
499-
rescue StandardError
500-
2016
501-
end
502499
end
503500

504501
def sqlserver_version
505-
@sqlserver_version ||= _raw_select("SELECT @@version", @raw_connection).first.first.to_s
502+
@sqlserver_version ||= begin
503+
verify!
504+
_raw_select("SELECT @@version", @raw_connection).first.first.to_s
505+
end
506506
end
507507

508508
private

test/cases/helper_sqlserver.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,14 @@
1515
require "support/query_assertions"
1616
require "mocha/minitest"
1717

18+
Minitest.after_run do
19+
puts "\n\n"
20+
puts "=" * 80
21+
puts ActiveRecord::Base.lease_connection.send(:sqlserver_version)
22+
puts "\nSQL Server Version Year: #{ActiveRecord::Base.lease_connection.get_database_version}"
23+
puts "=" * 80
24+
end
25+
1826
module ActiveSupport
1927
class TestCase < ::Minitest::Test
2028
include ARTest::SQLServer::CoerceableTest

0 commit comments

Comments
 (0)