Hi all

I am using a few DB_API adaptors - ceODBC for Sql Server, psycopg2 for PostgreSQL, and sqlite3 for sqlite3.

They all offer the feature that if a cursor executes a SELECT, the cursor returns an iterator which can be used to fetch one row at a time. I have been using this feature for a while and it seems like a 'good thing'.

Now I am not so sure. I am using a connection pool to maintain connections to the database. A principle I am following is that a connection must be returned quickly, so that it is available for reuse.

I have been happily returning the connection, but keeping the cursor open while processing the rows selected. I now realise that this is dangerous. Therefore I have changed my system to execute fetchall() on the cursor before returning the connection. This obviously loses the benefit of the iterator.

I would appreciate confirmation that my thinking is correct on this issue. Or is there any way that I can have my cake and eat it?

Thanks

Frank Millman


--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to