Anthony Tuininga wrote:
> Hmm, I've thought about this a bit more. If you look at the module
> contextlib in the Python 2.5 standard library you can see that making
> connections and cursors context managers that simply close themselves
> is redundant. You can do this instead:
> 
> with contextlib.closing(connection.cursor()) as cursor:
>     do_stuff()
> 
> I think it makes more sense to define database connections as context
> managers that deal with transactions since that is the primary purpose
> of a database connection -- not opening and closing itself!

Wha? There are plenty of good DB architectures that don't use
transactions. They still need connections. Let's not conflate the two
any more than the DB-API already does. Note also that, "[conn.rollback]
is optional since not all databases provide transaction support." What
happens to "with conn" (as transaction manager) if the DB has no
transaction support?

+1 for "with connection" implementing close(), and "with
connection.transaction()" implementing start+commit/rollback if the DB
supports it.


Robert Brewer
System Architect
Amor Ministries
[EMAIL PROTECTED]
_______________________________________________
DB-SIG maillist  -  DB-SIG@python.org
http://mail.python.org/mailman/listinfo/db-sig

Reply via email to