relima
relima

Reputation: 3423

sqlite returning nothing after 2nd cursor.fetchall()

Why do I get nothing when I execute cursor.fetchall() twice after a cursor.execute()? Is there anyway of preventing this from happening? Do I need to store the information on a variable? Is it suppose to work this way?

Upvotes: 1

Views: 1868

Answers (1)

Steven Rumbalski
Steven Rumbalski

Reputation: 45542

fetchall does what it says--it fetches all. There's nothing left after that. To get more results, you'd need to run another query (or the same query again).

From the python db-api 2.0 specification:

cursor.fetchall() 

        Fetch all (remaining) rows of a query result, returning
        them as a sequence of sequences (e.g. a list of tuples).
        Note that the cursor's arraysize attribute can affect the
        performance of this operation.

cursor.fetchone() 

        Fetch the next row of a query result set, returning a
        single sequence, or None when no more data is
        available. [6]

Upvotes: 5

Related Questions