summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects
diff options
context:
space:
mode:
Diffstat (limited to 'lib/sqlalchemy/dialects')
-rw-r--r--lib/sqlalchemy/dialects/mssql/mxodbc.py19
-rw-r--r--lib/sqlalchemy/dialects/mssql/pyodbc.py2
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