summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/dialects
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2010-02-28 23:51:54 +0000
committerMike Bayer <mike_mp@zzzcomputing.com>2010-02-28 23:51:54 +0000
commita76927f584dab481383592645a2a471fed37ecf9 (patch)
tree1303912df863199b07bdbcf4a5ffd1abf63701d6 /lib/sqlalchemy/dialects
parentc366b7ec4fded0c8baabcdc6e6f15ecd81a4bf00 (diff)
downloadsqlalchemy-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.py6
-rw-r--r--lib/sqlalchemy/dialects/mssql/mxodbc.py14
-rw-r--r--lib/sqlalchemy/dialects/oracle/cx_oracle.py2
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,