@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"
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.
"""
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):
-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
+