[Zope-DB] return count() from mysql in zope
Dieter Maurer
dieter at handshake.de
Sun Sep 5 14:59:43 EDT 2004
James R. Saker Jr. wrote at 2004-9-4 13:58 -0500:
> ...
>SELECT COUNT(pkID) FROM animals WHERE animalTypeID = 3;
>
>Within Zope, I'm not sure whether to tackle this via DTML or via a
>Python script.
Both will work.
>I've tried dtml-call
Please reread the "dtml-call" description. You miss the essential
use case for "dtml-call" (no return value!).
>and that's not working, as well as a
>few other approaches and clearly am missing something obvious given how
>easy this should be... ideas?
You miss (almost surely) that the result of any "select" Z SQL Method
is a sequence like object -- even when the result consists of a single
row. You have to access this single row explicitly "result[0]".
You further miss that the Z SQL Method wants to make columns accessible
via a name. Thus, each column of your result should have a name.
Use "as" to provide a name for columns resulting from function calls
in your query.
Thus:
Your SQL:
select count(XXX) as count ....
Your DTML:
<dtml-let
result=sql_method
count="result[0]['count']"
...
>
....
</dtml-let>
--
Dieter
More information about the Zope-DB
mailing list