From 4189e53a881e52de0945375a72b8748143c5bd13 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 4 Feb 2013 19:20:12 +0900 Subject: initial commit --- doc/includes/sqlite3/ctx_manager.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 doc/includes/sqlite3/ctx_manager.py (limited to 'doc/includes/sqlite3/ctx_manager.py') diff --git a/doc/includes/sqlite3/ctx_manager.py b/doc/includes/sqlite3/ctx_manager.py new file mode 100644 index 0000000..2821e8f --- /dev/null +++ b/doc/includes/sqlite3/ctx_manager.py @@ -0,0 +1,19 @@ +from __future__ import with_statement +from pysqlite2 import dbapi2 as sqlite3 + +con = sqlite3.connect(":memory:") +con.execute("create table person (id integer primary key, firstname varchar unique)") + +# Successful, con.commit() is called automatically afterwards +with con: + con.execute("insert into person(firstname) values (?)", ("Joe",)) + +# con.rollback() is called after the with block finishes with an exception, the +# exception is still raised and must be catched +try: + with con: + con.execute("insert into person(firstname) values (?)", ("Joe",)) +except sqlite3.IntegrityError: + print "couldn't add Joe twice" + + -- cgit v1.2.3