Is there a way to creat a func that returns a cursor that can be used?

Chris Angelico rosuav at
Mon Nov 12 12:01:13 CET 2012

On Mon, Nov 12, 2012 at 9:45 PM, Khalid Al-Ghamdi <emailkgnow at> wrote:
> Is there a way to create a func that returns a cursor that can be used to execute sql statements?

Yes, and you're almost there!

> I tried this (after importing sqlite3), but it gave me the error below:
>>>> def connect():
>     return cur
>>>> connect()
> <sqlite3.Cursor object at 0x0119EA20>
>>>> cur.execute("select * from schedule")
> Traceback (most recent call last):
>   File "<pyshell#26>", line 1, in <module>
>     cur.execute("select * from schedule")
> NameError: name 'cur' is not defined

All you need to do is make use of the return value. Try this instead:

cur = connect()

That takes the returned cursor object and binds it to the name 'cur'
in global scope. You can then use 'cur.execute...' and it'll be the
same object.

As a side point, thank you for posting so clearly. It's easy to help
when your code and traceback are all there!


More information about the Python-list mailing list