[Tutor] Python sqlite with implicit cursor open and close

Joel Goldstick joel.goldstick at gmail.com
Fri May 18 14:40:43 CEST 2012

On Fri, May 18, 2012 at 5:34 AM, Dinesh B Vadhia
<dineshbvadhia at hotmail.com> wrote:
> In the Python documentation
> (http://docs.python.org/library/sqlite3.html?highlight=sqlite#using-shortcut-methods)
> it says:
> "Using the nonstandard execute(), executemany() and executescript() methods
> of the Connection object, your code can be written more concisely because
> you don’t have to create the (often superfluous) Cursor objects explicitly.
> Instead, the Cursor objects are created implicitly and these shortcut
> methods return the cursor objects. This way, you can execute a SELECT
> statement and iterate over it directly using only a single call on the
> Connection object."
> Here is pseudo-code:
> db = sqlite.connect(path, ...)
> cursor = db.cursor()
> # normal method
> def doDBStuff():
>     cursor = db.cursor()
>     cursor.execute(somestatement) or cursor.executemany(somestatement) or
> cursor.executescript(somestatement)
>     cursor.close()
>     return
> # suggested method
> def doDbStuffCorrectly():
>     cursor.execute(somestatement) or cursor.executemany(somestatement) or
> cursor.executescript(somestatement)
>     return
I think you meant to use conn instead of cursor here?
> Does the implicit method close the cursor?  This would be important in a
> multi-user environment with read/write access.

The document says that these methods return a cursor

If you close the connection I would assume that the cursor would be
closed, since it is a method of the connection object.

But what does it actually mean to close the cursor?  In a muti-user
environment each user would have a different conn object and a
different cursor.
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> To unsubscribe or change subscription options:
> http://mail.python.org/mailman/listinfo/tutor

Joel Goldstick

More information about the Tutor mailing list