diff options
| author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-28 23:51:54 +0000 |
|---|---|---|
| committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-02-28 23:51:54 +0000 |
| commit | a76927f584dab481383592645a2a471fed37ecf9 (patch) | |
| tree | 1303912df863199b07bdbcf4a5ffd1abf63701d6 /lib/sqlalchemy/dialects | |
| parent | c366b7ec4fded0c8baabcdc6e6f15ecd81a4bf00 (diff) | |
| download | sqlalchemy-a76927f584dab481383592645a2a471fed37ecf9.tar.gz | |
- the execution sequence pulls all rowcount/last inserted ID
info from the cursor before commit() is called on the
DBAPI connection in an "autocommit" scenario. This helps
mxodbc with rowcount and is probably a good idea overall.
- cx_oracle wants list(), not tuple(), for empty execute.
- cleaned up plain SQL param handling
Diffstat (limited to 'lib/sqlalchemy/dialects')
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/base.py | 6 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/mssql/mxodbc.py | 14 | ||||
| -rw-r--r-- | lib/sqlalchemy/dialects/oracle/cx_oracle.py | 2 |
3 files changed, 8 insertions, 14 deletions
diff --git a/lib/sqlalchemy/dialects/mssql/base.py b/lib/sqlalchemy/dialects/mssql/base.py index d1ccf44e2..254aa54fd 100644 --- a/lib/sqlalchemy/dialects/mssql/base.py +++ b/lib/sqlalchemy/dialects/mssql/base.py @@ -826,7 +826,11 @@ class MSExecutionContext(default.DefaultExecutionContext): def handle_dbapi_exception(self, e): if self._enable_identity_insert: try: - self.cursor.execute("SET IDENTITY_INSERT %s OFF" % self.dialect.identifier_preparer.format_table(self.compiled.statement.table)) + self.cursor.execute("SET IDENTITY_INSERT %s OFF" % + self.dialect.\ + identifier_preparer.\ + format_table(self.compiled.statement.table) + ) except: pass diff --git a/lib/sqlalchemy/dialects/mssql/mxodbc.py b/lib/sqlalchemy/dialects/mssql/mxodbc.py index 73cf1346e..85c0ac6ac 100644 --- a/lib/sqlalchemy/dialects/mssql/mxodbc.py +++ b/lib/sqlalchemy/dialects/mssql/mxodbc.py @@ -9,19 +9,7 @@ from sqlalchemy.dialects.mssql.pyodbc import MSExecutionContext_pyodbc # The pyodbc execution context seems to work for mxODBC; reuse it here 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 + pass class MSDialect_mxodbc(MxODBCConnector, MSDialect): diff --git a/lib/sqlalchemy/dialects/oracle/cx_oracle.py b/lib/sqlalchemy/dialects/oracle/cx_oracle.py index 854eb875a..47909f8d1 100644 --- a/lib/sqlalchemy/dialects/oracle/cx_oracle.py +++ b/lib/sqlalchemy/dialects/oracle/cx_oracle.py @@ -307,6 +307,8 @@ class Oracle_cx_oracle(OracleDialect): driver = "cx_oracle" colspecs = colspecs + execute_sequence_format = list + def __init__(self, auto_setinputsizes=True, auto_convert_lobs=True, |
