diff options
| author | Brad Allen <bradallen137@gmail.com> | 2010-03-11 16:24:06 -0600 |
|---|---|---|
| committer | Brad Allen <bradallen137@gmail.com> | 2010-03-11 16:24:06 -0600 |
| commit | 96ed4865be2609d1a314d0c6ba9945ca682ef100 (patch) | |
| tree | 2385a3f19104dccb3489d12f302a6910f6b69a35 /lib/sqlalchemy/connectors/mxodbc.py | |
| parent | 630c84fdd73703fb2b22f10a6afccdc7ca6da564 (diff) | |
| download | sqlalchemy-96ed4865be2609d1a314d0c6ba9945ca682ef100.tar.gz | |
Converted mxODBC's raised Warning exceptions into normal Python warnings.
Diffstat (limited to 'lib/sqlalchemy/connectors/mxodbc.py')
| -rw-r--r-- | lib/sqlalchemy/connectors/mxodbc.py | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/sqlalchemy/connectors/mxodbc.py b/lib/sqlalchemy/connectors/mxodbc.py index fd1a69ace..47a5904b8 100644 --- a/lib/sqlalchemy/connectors/mxodbc.py +++ b/lib/sqlalchemy/connectors/mxodbc.py @@ -1,9 +1,11 @@ import sys import re +import warnings from sqlalchemy.connectors import Connector from mx.ODBC import InterfaceError +from mx.ODBC.Error import Warning as MxOdbcWarning class MxODBCConnector(Connector): driver='mxodbc' @@ -31,6 +33,8 @@ class MxODBCConnector(Connector): def connect(conn, rec): conn.stringformat = self.dbapi.MIXED_STRINGFORMAT conn.datetimeformat = self.dbapi.PYDATETIME_DATETIMEFORMAT + conn.errorhandler = error_handler + # Alternatives to experiment with: #conn.bindmethod = self.dbapi.BIND_USING_PYTHONTYPE #conn.bindmethod = self.dbapi.BIND_USING_SQLTYPE @@ -90,3 +94,17 @@ class MxODBCConnector(Connector): cursor.execute(statement, tuple(parameters)) except InterfaceError: cursor.executedirect(statement, tuple(parameters)) + + +def error_handler(connection, cursor, errorclass, errorvalue): + """ + Adjust mxODBC's raised Warnings to emit Python standard warnings. + """ + if issubclass(errorclass, MxOdbcWarning): + errorclass.__bases__ = (Warning,) + warnings.warn(message=str(errorvalue), + category=errorclass, + stacklevel=2) + else: + raise errorclass, errorvalue + |
