New submission from Laszlo Nagy <nagy...@gmail.com>: Clarify what isolation_level does, and how to use it, and why connections do not commit/rollback in some cases.
Details here: http://mail.python.org/pipermail/python-list/2010-March/1239374.html I'll paste code for ctx_manager_2.py here. This is a new file, I could not include it as a diff: import sqlite3 class MyConn(sqlite3.Connection): def __enter__(self): self.execute("BEGIN") return self def __exit__(self,exc_type,exc_info,traceback): if exc_type is None: self.execute("COMMIT") else: self.execute("ROLLBACK") conn = sqlite3.connect(':memory:',factory=MyConn) conn.isolation_level = None with conn: conn.execute("create table a ( i integer ) ") conn.execute("insert into a values (1)") try: with conn: conn.execute("insert into a values (2)") conn.execute("savepoint sp1") conn.execute("insert into a values (3)") conn.execute("rollback to sp1") conn.execute("insert into a values (4)") print "Before rollback: 1,2,4" for row in conn.execute("select * from a"): print row[0] # prints 1,2,4 raise Exception except: pass print "After rollback: 1" for row in conn.execute("select * from a"): print row[0] # prints 1 ---------- assignee: georg.brandl components: Documentation files: sqlite3.rst.diff keywords: patch messages: 101090 nosy: georg.brandl, nagylzs severity: normal status: open title: Documentation about sqlite3 isolation_level type: feature request versions: Python 2.6 Added file: http://bugs.python.org/file16554/sqlite3.rst.diff _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue8145> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com