summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects/mssql/mxodbc.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-02-28 22:05:39 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2010-02-28 22:05:39 +0000
commit68f71502c11b456527614b14cd162f50be123eb3 (patch)
treed47e366b26b50811d7d1e6c8d2d9bf831e30a2a7 /lib/sqlalchemy/dialects/mssql/mxodbc.py
parentc6b2319bcc1dc6405d9fe0281bdf5ce1ddb1ac79 (diff)
downloadsqlalchemy-68f71502c11b456527614b14cd162f50be123eb3.tar.gz
mxodbc supports rowcount, just have to snag before the cursor is closed.
Diffstat (limited to 'lib/sqlalchemy/dialects/mssql/mxodbc.py')
-rw-r--r--lib/sqlalchemy/dialects/mssql/mxodbc.py19
1 files changed, 15 insertions, 4 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