SQLite3; weird error

Diez B. Roggisch deets at nospam.web.de
Mon Oct 29 12:44:24 CET 2007


TYR wrote:

> Has anyone else experienced a weird SQLite3 problem?
> 
> Going by the documentation at docs.python.org, the syntax is as
> follows:
> foo = sqlite3.connect(dbname) creates a connection object representing
> the state of dbname and assigns it to variable foo. If dbname doesn't
> exist, a file of that name is created.
> 
> To do anything with it, you then need to create a cursor object by
> calling foo's method cursor (bar = foo.cursor).

is that really from the docs? If yes, they are buggy.

The problem is pretty obvious: foo.cursor is NOT calling a method cursor on
foo. It's a reference to that very method.

So instead write

bar = foo.cursor()

and your done.

> You can now pass an SQL query or command to the DB by calling the
> cursor object's method execute() with the SQL query as a quoted
> statement.
> 
> (bar.execute("SELECT FROM squid WHERE squamous=True")
> 
> And then do other stuff.
> 
> Fine. When I call the cursor object, though, I get an AttributeError;
> ('builtinfunction_or_method object has no attribute 'execute')

Which is a pretty acute description of the error: you are trying to get an
attribute (execute, which you ultimately expect to be a method) from a
method.

Diez



More information about the Python-list mailing list