On Jan 16, 2008 8:14 AM, Nader <[EMAIL PROTECTED]> wrote:

>
> Hallo,
>
> I have a customize statement in my model to set some query.
>
>  cursor.execute(""
> SELECT count(*)  FROM ingestQueue
>           WHERE timeOfEntry > (subdate( (SELECT
> max(timeOfLaststatusupdate)
>                                    FROM ingestQueue WHERE status =
> 'done'), interval 1 hour))
>                                    AND status = 'done';
> """)
>
> We can get the result of this statement in "cursor.fetchall()'. Is
> this result a integer because of "SELECT count(*)"?
> Or I have to iterate the "cursor.fetchall()"!
>

For an authoritative answer, consult the Python DB API spec, which defines
what fetchall() returns:

http://www.python.org/dev/peps/pep-0249/

it says: "Fetch all (remaining) rows of a query result, returning them as a
sequence of sequences (e.g. a list of tuples)."

So, fetchall() will be returning a sequence of tuples.  But since you are
selecting COUNT(*) you know you are going to get only one row, with one
value in that row.  So I believe it would be safe to just do a fetchone()
and save yourself one layer of sequencing.  You'll still need to unpack the
count value from the single row tuple.  These things are easy to figure out
with a little experimenting under  "python manage.py shell":

>>> from django.db import connection
>>> cursor = connection.cursor()
>>> cursor.execute("SELECT COUNT(*) From Clues")
1L
>>> fa = cursor.fetchall()
>>> fa
((905815L,),)
>>> cursor.execute("SELECT COUNT(*) From Clues")
1L
>>> fo = cursor.fetchone()
>>> fo
(905815L,)
>>> counta = fa[0][0]
>>> counta
905815L
>>> counto = fo[0]
>>> counto
905815L

Karen

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to