diff options
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/mxodbc.py | 19 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/pyodbc.py | 2 |
2 files changed, 15 insertions, 6 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/mxodbc.py b/lib/sqlalchemy/dialects/mssql/mxodbc.py index 38d559e2b..73cf1346e 100644 --- a/lib/sqlalchemy/dialects/mssql/mxodbc.py +++ b/lib/sqlalchemy/dialects/mssql/mxodbc.py @@ -7,12 +7,23 @@ 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 MSExecutionContext_mxodbc(MSExecutionContext_pyodbc): + + def post_exec(self): + # snag rowcount before the cursor is closed + if not self.cursor.description: + self._rowcount = self.cursor.rowcount + super(MSExecutionContext_mxodbc, self).post_exec() + + @property + def rowcount(self): + if hasattr(self, '_rowcount'): + return self._rowcount + else: + return self.cursor.rowcount class MSDialect_mxodbc(MxODBCConnector, MSDialect): - # FIXME: yikes, plain rowcount doesn't work ? - supports_sane_rowcount = False #True - supports_sane_multi_rowcount = False execution_ctx_cls = MSExecutionContext_mxodbc diff --git a/lib/sqlalchemy/dialects/mssql/pyodbc.py b/lib/sqlalchemy/dialects/mssql/pyodbc.py index 23ab0320c..a4c7d4bfc 100644 --- a/lib/sqlalchemy/dialects/mssql/pyodbc.py +++ b/lib/sqlalchemy/dialects/mssql/pyodbc.py @@ -50,8 +50,6 @@ class MSExecutionContext_pyodbc(MSExecutionContext): class MSDialect_pyodbc(PyODBCConnector, MSDialect): - supports_sane_rowcount = True - supports_sane_multi_rowcount = False execution_ctx_cls = MSExecutionContext_pyodbc |
