From 14ed6555aa2b7815ac4942777ba768d02338d419 Mon Sep 17 00:00:00 2001 From: Philip Jenvey Date: Fri, 24 Jul 2009 04:12:10 +0000 Subject: [PATCH] grab lastrowid on a different cursor so we don't munge the original's state --- lib/sqlalchemy/dialects/mysql/pyodbc.py | 7 +++++-- lib/sqlalchemy/dialects/mysql/zxjdbc.py | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/lib/sqlalchemy/dialects/mysql/pyodbc.py b/lib/sqlalchemy/dialects/mysql/pyodbc.py index de419fbd89..4896173e45 100644 --- a/lib/sqlalchemy/dialects/mysql/pyodbc.py +++ b/lib/sqlalchemy/dialects/mysql/pyodbc.py @@ -6,8 +6,11 @@ import re class MySQL_pyodbcExecutionContext(MySQLExecutionContext): def _lastrowid(self, cursor): + cursor = self.create_cursor() cursor.execute("SELECT LAST_INSERT_ID()") - return cursor.fetchone()[0] + lastrowid = cursor.fetchone()[0] + cursor.close() + return lastrowid class MySQL_pyodbc(PyODBCConnector, MySQLDialect): supports_unicode_statements = False @@ -47,4 +50,4 @@ class MySQL_pyodbc(PyODBCConnector, MySQLDialect): else: return None -dialect = MySQL_pyodbc \ No newline at end of file +dialect = MySQL_pyodbc diff --git a/lib/sqlalchemy/dialects/mysql/zxjdbc.py b/lib/sqlalchemy/dialects/mysql/zxjdbc.py index c7ebfc85a7..09e09afec5 100644 --- a/lib/sqlalchemy/dialects/mysql/zxjdbc.py +++ b/lib/sqlalchemy/dialects/mysql/zxjdbc.py @@ -8,8 +8,11 @@ class MySQL_jdbcExecutionContext(MySQLExecutionContext): return cursor.lastrowid def _lastrowid(self, cursor): + cursor = self.create_cursor() cursor.execute("SELECT LAST_INSERT_ID()") - return cursor.fetchone()[0] + lastrowid = cursor.fetchone()[0] + cursor.close() + return lastrowid class MySQL_jdbc(ZxJDBCConnector, MySQLDialect): execution_ctx_cls = MySQL_jdbcExecutionContext @@ -61,4 +64,4 @@ class MySQL_jdbc(ZxJDBCConnector, MySQLDialect): version.append(n) return tuple(version) -dialect = MySQL_jdbc \ No newline at end of file +dialect = MySQL_jdbc -- 2.47.3