diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-28 22:05:39 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-28 22:05:39 +0000 |
| commit | 68f71502c11b456527614b14cd162f50be123eb3 (patch) | |
| tree | d47e366b26b50811d7d1e6c8d2d9bf831e30a2a7 /lib/sqlalchemy/dialects/mssql/mxodbc.py | |
| parent | c6b2319bcc1dc6405d9fe0281bdf5ce1ddb1ac79 (diff) | |
| download | sqlalchemy-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.py | 19 |
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 |
