From 804ff38b37ecfdb514a684fe160ccc3b1cd9e2fc Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Fri, 7 Oct 2016 09:16:22 -0400 Subject: [PATCH] Catch DBAPIError instead of ProgrammingError for pyodbc fail This is part of release 1.1.1 but the broken version was unreleased in 1.0.16. Change-Id: Ide9e916d02fbbef549aa2838d1402c2b091e701d Fixes: #3820 (cherry picked from commit ae9300cac0ec398f92d9e523273403126a709134) --- lib/sqlalchemy/dialects/mssql/pyodbc.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/sqlalchemy/dialects/mssql/pyodbc.py b/lib/sqlalchemy/dialects/mssql/pyodbc.py index 30db94e49d..5c6dd4cde2 100644 --- a/lib/sqlalchemy/dialects/mssql/pyodbc.py +++ b/lib/sqlalchemy/dialects/mssql/pyodbc.py @@ -273,9 +273,10 @@ class MSDialect_pyodbc(PyODBCConnector, MSDialect): def _get_server_version_info(self, connection): try: raw = connection.scalar("SELECT SERVERPROPERTY('ProductVersion')") - except exc.ProgrammingError: + except exc.DBAPIError: # SQL Server docs indicate this function isn't present prior to - # 2008 + # 2008; additionally, unknown combinations of pyodbc aren't + # able to run this query. return super(MSDialect_pyodbc, self).\ _get_server_version_info(connection) else: -- 2.47.3