]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
Catch DBAPIError instead of ProgrammingError for pyodbc fail
authorMike Bayer <mike_mp@zzzcomputing.com>
Fri, 7 Oct 2016 13:16:22 +0000 (09:16 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Fri, 7 Oct 2016 13:18:17 +0000 (09:18 -0400)
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

index 30db94e49dcacc32796686497588f2e7f74b276d..5c6dd4cde253d1bb44f5badf9925e4b36fb8d001 100644 (file)
@@ -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: