diff options
| author | Brad Allen <bradallen137@gmail.com> | 2010-03-17 16:06:42 -0600 |
|---|---|---|
| committer | Brad Allen <bradallen137@gmail.com> | 2010-03-17 16:06:42 -0600 |
| commit | e6a7f1ce0c5f365997f3d856eeb0259528967c03 (patch) | |
| tree | 50279d7f51809645d80df8bf958779e145633170 /lib/sqlalchemy/connectors/mxodbc.py | |
| parent | 4f1d92f367628f32e60bf5f52c4ead3dd563c678 (diff) | |
| parent | 214ed6239eb187c32e37bb7e3e3ac76555e266aa (diff) | |
| download | sqlalchemy-e6a7f1ce0c5f365997f3d856eeb0259528967c03.tar.gz | |
Merged from main tip, and resolved conflicts in mxodbc dialect and connector.
Diffstat (limited to 'lib/sqlalchemy/connectors/mxodbc.py')
| -rw-r--r-- | lib/sqlalchemy/connectors/mxodbc.py | 35 |
1 files changed, 19 insertions, 16 deletions
diff --git a/lib/sqlalchemy/connectors/mxodbc.py b/lib/sqlalchemy/connectors/mxodbc.py index 0e7bc14c4..66ebfb4b0 100644 --- a/lib/sqlalchemy/connectors/mxodbc.py +++ b/lib/sqlalchemy/connectors/mxodbc.py @@ -50,11 +50,28 @@ class MxODBCConnector(Connector): conn.stringformat = self.dbapi.MIXED_STRINGFORMAT conn.datetimeformat = self.dbapi.PYDATETIME_DATETIMEFORMAT conn.decimalformat = self.dbapi.DECIMAL_DECIMALFORMAT - conn.errorhandler = error_handler + conn.errorhandler = self._error_handler() # Alternatives to experiment with: #conn.bindmethod = self.dbapi.BIND_USING_PYTHONTYPE conn.bindmethod = self.dbapi.BIND_USING_SQLTYPE return connect + + def _error_handler(self): + """Return a handler that adjusts mxODBC's raised Warnings to + emit Python standard warnings. + """ + + from mx.ODBC.Error import Warning as MxOdbcWarning + def error_handler(connection, cursor, errorclass, errorvalue): + + if issubclass(errorclass, MxOdbcWarning): + errorclass.__bases__ = (Warning,) + warnings.warn(message=str(errorvalue), + category=errorclass, + stacklevel=2) + else: + raise errorclass, errorvalue + return error_handler def create_connect_args(self, url): """ Return a tuple of *args,**kwargs for creating a connection. @@ -69,6 +86,7 @@ class MxODBCConnector(Connector): The arg 'errorhandler' is not used by SQLAlchemy and will not be populated. + """ opts = url.translate_connect_args(username='user') opts.update(url.query) @@ -98,21 +116,6 @@ class MxODBCConnector(Connector): return tuple(version) - - -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 - - class MxNumeric(sqltypes.Numeric): """ Handle Numeric types between SQLAlchemy and mxODBC. |
