From bcb439cac61a5867ab6ec4907bb1214862dcbca5 Mon Sep 17 00:00:00 2001 From: Michael Trier Date: Sat, 27 Feb 2010 02:56:27 +0000 Subject: [PATCH] A few cleanups of the mxodbc dialect. --- lib/sqlalchemy/connectors/mxodbc.py | 19 ++++++------ lib/sqlalchemy/dialects/mssql/mxodbc.py | 41 +++---------------------- 2 files changed, 14 insertions(+), 46 deletions(-) diff --git a/lib/sqlalchemy/connectors/mxodbc.py b/lib/sqlalchemy/connectors/mxodbc.py index c5d055b5aa..99126b9f7d 100644 --- a/lib/sqlalchemy/connectors/mxodbc.py +++ b/lib/sqlalchemy/connectors/mxodbc.py @@ -11,11 +11,12 @@ class MxODBCConnector(Connector): @classmethod def dbapi(cls): - if 'win32' in sys.platform: + platform = sys.platform + if platform == 'win32': from mx.ODBC import Windows as module - elif 'linux' in sys.platform: + elif platform == 'linux': from mx.ODBC import unixODBC as module - elif 'darwin' in sys.platform: + elif platform == 'darwin': from mx.ODBC import iODBC as module else: raise ImportError, "Unrecognized platform for mxODBC import" @@ -27,20 +28,20 @@ class MxODBCConnector(Connector): conn.datetimeformat = self.dbapi.PYDATETIME_DATETIMEFORMAT #conn.bindmethod = self.dbapi.BIND_USING_PYTHONTYPE #conn.bindmethod = self.dbapi.BIND_USING_SQLTYPE - + pool.add_listener({'connect':connect}) def create_connect_args(self, url): """ Return a tuple of *args,**kwargs for creating a connection. - + The mxODBC 3.x connection constructor looks like this: - + connect(dsn, user='', password='', clear_auto_commit=1, errorhandler=None) - + This method translates the values in the provided uri into args and kwargs needed to instantiate an mxODBC Connection. - + The arg 'errorhandler' is not used by SQLAlchemy and will not be populated. """ @@ -48,7 +49,7 @@ class MxODBCConnector(Connector): opts.update(url.query) args = opts['host'], kwargs = {'user':opts['user'], - 'password': opts['password']} + 'password': opts['password']} return args, kwargs def is_disconnect(self, e): diff --git a/lib/sqlalchemy/dialects/mssql/mxodbc.py b/lib/sqlalchemy/dialects/mssql/mxodbc.py index 0047a55fe8..bbaccd3289 100644 --- a/lib/sqlalchemy/dialects/mssql/mxodbc.py +++ b/lib/sqlalchemy/dialects/mssql/mxodbc.py @@ -1,56 +1,23 @@ -from sqlalchemy.dialects.mssql.base import MSExecutionContext, MSDialect -from sqlalchemy.connectors.mxodbc import MxODBCConnector -from sqlalchemy import types as sqltypes import re import sys -from sqlalchemy.dialects.mssql.pyodbc import MSExecutionContext_pyodbc - -# The pyodbc execution context seems to work for mxODBC; reuse it here -MSExecutionContext_mxodbc = MSExecutionContext_pyodbc - - -class MSDialect_mxodbc(MxODBCConnector, MSDialect): - supports_sane_rowcount = True - supports_sane_multi_rowcount = False - - execution_ctx_cls = MSExecutionContext_mxodbc - - - def __init__(self, description_encoding='latin-1', **params): - super(MSDialect_mxodbc, self).__init__(**params) - self.description_encoding = description_encoding - - def initialize(self, connection): - super(MSDialect_mxodbc, self).initialize(connection) - dbapi_con = connection.connection - -dialect = MSDialect_mxodbc -from sqlalchemy.dialects.mssql.base import MSExecutionContext, MSDialect -from sqlalchemy.connectors.mxodbc import MxODBCConnector from sqlalchemy import types as sqltypes -import re -import sys - +from sqlalchemy.connectors.mxodbc import MxODBCConnector +from sqlalchemy.dialects.mssql.base import MSDialect from sqlalchemy.dialects.mssql.pyodbc import MSExecutionContext_pyodbc # The pyodbc execution context seems to work for mxODBC; reuse it here MSExecutionContext_mxodbc = MSExecutionContext_pyodbc - class MSDialect_mxodbc(MxODBCConnector, MSDialect): supports_sane_rowcount = True supports_sane_multi_rowcount = False execution_ctx_cls = MSExecutionContext_mxodbc - def __init__(self, description_encoding='latin-1', **params): super(MSDialect_mxodbc, self).__init__(**params) self.description_encoding = description_encoding - - def initialize(self, connection): - super(MSDialect_mxodbc, self).initialize(connection) - dbapi_con = connection.connection - + dialect = MSDialect_mxodbc + -- 2.47.3